ython——杂货铺

三目运算:

>>> 1 if 5>3 else 0
1
>>> 1 if 5<3 else 0
0

深浅拷贝:

一、数字和字符串

对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。

import copy
# ######### 数字、字符串 #########
n1 = 123
# n1 = "i am alex age 10"
print(id(n1))
# ## 赋值 ##
n2 = n1
print(id(n2))
# ## 浅拷贝 ##
n2 = copy.copy(n1)
print(id(n2))
22219144
# ## 深拷贝 ##
n3 = copy.deepcopy(n1)
print(id(n3))
22219144

二、其他基本数据类型

对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

1、赋值

赋值,只是创建一个变量,该变量指向原来内存地址,如:

n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}
n2 = n1

2、浅拷贝

浅拷贝,在内存中只额外创建第一层数据

import copy

n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}

n3 = copy.copy(n1)

3、深拷贝

深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)

import copy

n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}

n4 = copy.deepcopy(n1)

函数扩展:发送邮件实例

def emil(p):
    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr

    msg = MIMEText(‘邮件内容‘, ‘plain‘, ‘utf-8‘)  # From 后面的邮箱地址一定要跟发送邮箱地址相同,不然会认证失败
    msg[‘From‘] = formataddr(["武沛齐",‘[email protected]‘])
    msg[‘To‘] = formataddr(["走人",‘[email protected]‘])
    msg[‘Subject‘] = "主题"

    server = smtplib.SMTP("smtp.126.com", 25)
    server.login("[email protected]", "邮箱密码")
    server.sendmail(‘[email protected]‘, [p,], msg.as_string())
    server.quit

email("[email protected]")

加密(hashlib)

import hashlib
# 设置自己的加密字符串,防止他人撞库破解
hash = hashlib.md5(bytes(‘sfa‘,encoding=‘utf-8‘))
# 设置加密的密码
hash.update(bytes(‘123‘,encoding="utf-8"))
print(hash.hexdigest())
# b72a6beb24eef36c247274014dd4ade3

 实例:登录密码加密保存

enumrate

>>> for i,j in enumerate([1,2,3]):
 print i,j

0 1
1 2
2 3
>>> for i,j in enumerate({‘a‘:1,‘b‘:2}):
 print i,j
 #字典默认遍历key
0 a
1 b

li = [‘冰箱‘,‘彩电‘,‘洗衣机‘]
# 可以指定序号从什么开始计数
for index,i in enumerate(li,1):
    print(index,i)
# 1 冰箱
# 2 彩电
# 3 洗衣机
# 虽然显示是从1开始,但系统内还是以0开始计数的

range,xrange

>>> range(1,5) #代表从1到5(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) #代表从1到5,间隔2(不包含5)
[1, 3]
>>> range(5) #代表从0到5(不包含5)
[0, 1, 2, 3, 4]

python2中:

range——获取指定范围内的数,且立刻在内存中生成

xrange——获取指定范围内的数,但只有在for循环调用的时候才在内存中生成,节省内存

python3中:

舍弃了xrange,python3中的range相当于Python2中的xrange。

内置函数:

print(__name__)  #本文件被执行时输出__main__,否则输出模块名

print(__doc__)  #输出 py 文件的注释

print(__file__)   # 输出自己文件的路径
#可以配合常用os操作完成系统路径的修改:
p1 = os.path.dirname(__file__)
p2 = "lib"
my_dir = os.path.join(p1, p2)
sys.path.append(my_dir)

print(__package__)  # 输出当前.py所在文件夹,用.划分

小知识点

  • 对于字符串,执行一个功能,生成一个新内容,原来的内容不变。
  • 对于list、tuple、dict,执行一个功能,自身进行变化。
时间: 2025-01-14 23:34:34

ython——杂货铺的相关文章

转载:算法杂货铺——分类算法之决策树(Decision tree)

作者:张洋 算法杂货铺——分类算法之决策树(Decision tree) 2010-09-19 16:30 by T2噬菌体, 44346 阅读, 29 评论, 收藏, 编辑 3.1.摘要 在前面两篇文章中,分别介绍和讨论了朴素贝叶斯分类与贝叶斯网络两种分类算法.这两种算法都以贝叶斯定理为基础,可以对分类及决策问题进行概率推断.在这一篇文章中,将讨论另一种被广泛使用的分类算法——决策树(decision tree).相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际

解忧杂货铺----读后感

解忧杂货铺何以解忧,书中讲了五个故事,看似离散实际关联;第一章答案在牛奶箱里;第二章,深夜的口琴声;第三章,在思域的车里等到天亮;第四章,听着披头士默祷;第五章,来自天上的祈祷. 故事围绕熊治老爷子的杂货铺展开,一间杂货铺,三十三年时间相连,九月十三日关闭,从1979-2012年;也许冥冥中自有天意,也许一切是天注定,将过去同现实相联系,解忧的同时引发对故事的思考. 月兔的来信,梦想与恋人究竟该选择哪一个?恋人的坚持,自己内心世界的想法.是坚持训练还是陪伴恋人,在三个少年给出了明确的指引信息之后

算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) 0.写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比的美感.而每次将学过的算法应用到实际中,并解决了实际问题后,那种快感更是我在其它地方体会不到的. 一直想写关于算法的博文,也曾写过零散的两篇,但也许是相比于工程性文章来说太小众,并没有引起大家的兴趣.最近面临毕业找工作,为了能给自己增加筹码,决定再次复习算法方面的知识,我决定趁这个机会,写一系列关于

3星|《好奇心杂货铺:《经济学人》的万物解释》:租金管制是经济学家争议最小的问题之一

好奇心杂货铺:<经济学人>的万物解释 可信.有趣的万物解释,英文版的十万个为什么,2013年以来<经济学人>“解释者”栏目的选集,内容涉及科技.社会.经济.娱乐等多领域. 基本风格是一个有趣的问题和简短的回答.回答中常常引用较宏观的统计数据.虽然沿用<经济学人>的做法,每篇文章都不署作者名,但是书后给出了长长的“贡献者”名单.可以认为<经济学人>找了些专家来写这些文章. 缺点是篇幅太简短,不够深入.另外一个大问题是内容主要针对英语世界的读者,重点是美国读者,

ython模块 (psutil)

psutil psutil是Python中一个系统信息检索模块,可以获取(系统.CPU.内存.网络.磁盘)等信息,可以应用于系统的监控.健康状态检查,等同于shell中的ps.free.top.df功能的合集 CPU   psutil.cpu_count psutil.cpu_percent psutil.cpu_times psutil.cpu_times_percent 内存信息 psutil.virtual_memory psutil.swap_memory 磁盘信息 psutil.dis

Python开发【第五篇】:Python基础之杂货铺

字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator

ython 学习笔记(一)语句,变量,函数

今天抽时间看了一下python.感觉很好,它与编译性语言不同.c,c++,java,c# 等都是编译性语言,也就是需要先进行编译,然后 在链接,才生成二进制可运行文件(java,C#除外,需要虚拟机才可以运行),但是也需要编译. python 是一种典型的解释性语言.他的最大的特点就是类似于脚本语言,例如:Shell编程,js,等,不需要编译. 今天学得知识为python的基本语法:包括:语句,定义变量,定义函数.下面进行对所学习的内容进行一下总结,以便以后能够温故 而知新 . 语句: 首先介绍

第十篇:杂货铺

一.内置函数 2版本内置函数: 3版本的内置函数: 2.我们可以在idle里面使用命令dir(__builtins__)查看Python的所有内置函数 标准类型函数 mp(num1, num2)– num1大于num2结果为正值– num1小于num2结果为负值– num1等于num2结果为0? str(num):将num转换成字符串表示格式? type(obj):判断obj类型 数字类型函数? 函数int(),long(),float()和complex() 来将其它数值类型转换为相应的数值类

centos 6.6 下ython 的编译安装和python 编写测试工具Ipython 的编译安装

㈠ Python 和ipython 的依赖包 #yum install -y readline-devel -y #yum groupinstall "development tools" -y ㈡ 安装 Python 2.7 # wget http://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz          # tar -zxvf Python-2.7.10.tgz        # cd Python-2.7.10