三目运算:

>>> 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(["武沛齐",'wptawy@126.com'])
msg['To'] = formataddr(["走人",'424662508@qq.com'])
msg['Subject'] = "主题" server = smtplib.SMTP("smtp.126.com", 25)
server.login("wptawy@126.com", "邮箱密码")
server.sendmail('wptawy@126.com', [p,], msg.as_string())
server.quit email("244591052@qq.com")

加密(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,执行一个功能,自身进行变化。

ython——杂货铺的更多相关文章

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

    算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) 0.写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比 ...

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

    Python开发[第五篇]:Python基础之杂货铺   字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进 ...

  3. python 杂货铺

    python 杂货铺之不知道的python操作 1.交互模式下的神奇的_ windos中cmd交互模式中下(python2,python3),最近一个表达式的值赋给变量 _.这样我们就可以把它当作一个 ...

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

    https://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 0.写在前面的话 我个人一直很喜欢算 ...

  5. Python特技杂货铺

    Python3特技杂货铺 Python3实现汉字简体和繁体相互转换 Python3中通过fake_useragent生成随机UserAgent 修改线上配置文件 PyCharm中项目上传到GitHub ...

  6. 【python】-- 基于Django的杂货铺

    Django的杂货铺 此篇文章保存基于Django而实现的各种小功能示例 1.验证码 + Session 这个是在前端图片验证码的生成,再配合Session进行后端校验的功能示例 import ran ...

  7. uvm_misc——杂货铺(miscellaneous)

    uvm_misc 是个很有意思的文件夹,本质上就是个UVM的杂货铺,包含一些很重要的class, task, function, 但不知道给归类到哪儿,所以,uvm_misc就很好地承担了这个任务,几 ...

  8. 【转】算法杂货铺——k均值聚类(K-means)

    k均值聚类(K-means) 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时 ...

  9. Python学习【第十篇】基础之杂货铺

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 百分号方式: ...

随机推荐

  1. [已读]JavaScript DOM编程艺术

    看到过很多人将它作为推荐入门书籍,当时我刚看完ppk和javascript精粹,于是看到这本就觉得很一般了.怎么说,它适合基础.

  2. 1049 - Deg-route

    http://www.ifrog.cc/acm/problem/1049 这些数学题我一般都是找规律的.. 先暴力模拟了前面的那些,然后发现(x, y) = (x, y - 1) + (x - 1, ...

  3. HTML 5的革新——语义化标签(二)

    HTML 5的革新之一:语义化标签二文本元素标签.分组元素标签. HTML 5的革新——语义化标签(一)中介绍了一些HTML5新加的一些节元素,一张页面中结构元素构成网页大体,但是也需要其他内容来填充 ...

  4. 前端之CSS列表及背景类属性

    一.列表类属性: 1.列表符号样式: list-style-type:disc(实心圆)|circle(空心圆)|square(实心方块)|decimal(数字)|none(去掉列表符号样式); 2. ...

  5. Android 滑动RecyclerView时隐藏部分控件

    在使用RecyclerView控件时,上下拖动控件时的时候,需要实时的隐藏与显示部分控件,已到达很好的用户体验.   原理很简单,当RecyclerView拖动至最上层时显示控件,当RecyclerV ...

  6. linux服务器上的jenkins远程触发构建windows server 2012服务器上的jenkins任务

    本文来自:https://blog.csdn.net/huashao0602/article/details/53318295  非常感谢原博主,亲测可行,这是我做CI持续集成试过的第6套方案了! 背 ...

  7. github入门之配置github本地仓库--2

    *前期准备工作 创建github账户 github地址 1.设置SSH_Key ssh-keygen -t rsa -C "你的邮箱" 2.查看秘钥 cat ~/.ssh/id_r ...

  8. 自己开发的在线视频下载工具,基于Java多线程

    比如这个在线视频: 我们可以正常播放,但是找不到下载按钮. 打开Chrome开发者工具,在Network标签页里能看到很多网络传输请求: 随便看一个请求的响应,发现类型为video,大小为500多k. ...

  9. 动态规划初步--最长上升子序列(LIS)

    一.问题 有一个长为n的数列 a0,a1,a2...,an-1a.请求出这个序列中最长的上升子序列的长度和对应的子序列.上升子序列指的是对任意的i < j都满足ai < aj的子序列. 二 ...

  10. Webpack2 视频教程

      原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」.Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本 ...