三目运算:

>>> 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 copyn1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}n3 = copy.copy(n1)

3、深拷贝

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

import copyn1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}n4 = copy.deepcopy(n1)

函数扩展:发送邮件实例

def emil(p):import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrmsg = 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.quitemail("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

import hashlibdef md5(arg):hash = hashlib.md5(bytes('licheng', encoding='utf-8'))# 设置加密的密码hash.update(bytes(arg, encoding="utf-8"))return hash.hexdigest()def register(user,pwd):with open("db",'a',encoding="utf-8") as f:temp = user + "|" + md5(pwd)+ "\n"f.write(temp)def login(user,pwd):with open("db","r",encoding="utf-8") as f:for line in f:u, p = line.strip().split("|")if u == user and p == md5(pwd):return Truechoose = input("1.登录\n 2.注册")
if choose == "2":user = input("用户名:")pwd = input("密码:")register(user,pwd)
elif choose == "1":user = input("用户名:")pwd = input("密码:")judge = login(user,pwd)if judge:print("登陆成功")else:print("登录失败")

实例:登录密码加密保存

enumrate

>>> for i,j in enumerate([1,2,3]):print i,j0 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,执行一个功能,自身进行变化。

转载于:https://www.cnblogs.com/LiCheng-/p/6431270.html

python——杂货铺相关推荐

  1. python 列表拼接_【Python杂货铺】速学python基础

    "人生苦短,我学python"是编程届的名言.用python写小脚本的便捷性,让很多其他语言的学习者把python当作辅助语言.拥有了某一个语言的功底,再来学习另外一种语言应该是十 ...

  2. calendar -- 日历相关│Python标准库

    前情提示: 测试代码中,右尖括号(>)表示命令行中输入的命令: 单独一行并以井字符(#)开头的为输出内容: 库的导入仅在本文的第一个测试代码中展现,其他代码块均省略库的导入代码. 系统类型: W ...

  3. fractions -- 分数

    前情提示: 测试代码中,右尖括号(>)表示命令行中输入的命令: 单独一行并以井字符(#)开头的为输出结构: 库的导入仅在本文的第一个测试代码中展现,其他代码块均省略库的导入代码. 系统类型: W ...

  4. 【Python之路】第五篇--Python基础之杂货铺

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

  5. python中tensor与variable_NLP实战篇之tf2中tensor、variable、gradient、ops

    本文是基于tensorflow2.2.0版本,介绍了tf中变量.张量的概念,tf中梯度的计算方式和tensor相关的操作. 实战系列篇章中主要会分享,解决实际问题时的过程.遇到的问题或者使用的工具等等 ...

  6. 如何用Python做三阶拼图?

    作者 | Ahab 来源 | Ahab杂货铺(ID:AhabBin) 今天是年假的最后一天,明天大家就要回到各自的工作岗位上去,公众号从今天开始恢复更新.不知道大家假期过得怎么样,帅张提到假期多关注一 ...

  7. 来自程序员的福利!用Python做一款翻译软件

    来源 | Ahab杂货铺(ID:PythonLearningCamp) 前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫.在学习requests请求的时候做过类 ...

  8. python 均值滤波_Python的一个骚操作

    PS作为世界四大发明之一可以说被广大网友用到了极致,只有你想不到的没有我P不了的,任何正经的图片在都可以变成搞笑图片(比如下图)当然也可以用ps做一点正经的事情. 作为一个爱折腾的程序猿能用代码的解决 ...

  9. Python开发【第一篇】:目录

    本系列博文改编自武沛齐老师的原创博文,主要包含  Python基础.前端开发.Web框架.缓存以及队列等内容 ,用于学习记录成长!!! Python开发[第一篇]:目录 Python开发[第二篇]:初 ...

最新文章

  1. 【前端】20款国外非常漂亮的优秀网站404错误页面HTML模板
  2. VMM2012应用指南之4-向VMM中添加Hyper-V主机与应用服务器
  3. consul agent的一个故障
  4. 动态加载laydate 失效_弹簧的失效分析与预防技术参考
  5. 安卓手机测评_安卓手机8G运存,比不上iPhone 2G?终于知道原因了!
  6. 4.1.6 OS之文件的基本操作原理(创建、删除、打开、关闭、读-写)
  7. c __cplusplus详解
  8. 计算机一级b需要学哪些,希望通过江苏省计算机一级B考试的同学千万要看哦!江苏省计算机一级B理论复习资料(绝密资料)...
  9. Vue3 Composition API(三)——生命周期钩子、Provide函数 和 Inject函数、封装Hook案例、setup顶层编写方式
  10. 小白使用ansible
  11. Spring boot上传文件(图片)到阿里云OSS(直接上传到应用服务器)
  12. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_15-异常处理-异常处理流程...
  13. smith圆图重要性_(完整版)smith史密斯圆图(个人总结),推荐文档
  14. 编程基础知识之浮点型
  15. c语言定时器中断实验报告,单片机实验报告-定时器中断实验.doc
  16. 再谈js拖拽(二)仿iGoogle自定义首页模块拖拽
  17. 机房重构总结之步履蹒跚
  18. 向 3D 城市模型添加外观
  19. oracle11导出导入dmp详解
  20. 360和QQ,拿什么来拯救你?

热门文章

  1. 怎么做网络营销在网站优化中能快速提升搜索引擎信任的方法!
  2. java cmd copy_使用Java中的cmd复制文件的问题
  3. android流量监控步骤_Android流量网络监控设计(超级实用版).doc
  4. android加载时二级联动点击二级联动,Android实现联动下拉框二级地市联动下拉框功能...
  5. php json字符串返回false,php – json_encode()返回false
  6. 共享服务器设置权限修改,共享服务器权限设置
  7. 创建交叉表_【零售】Tableau LOD+表计算做交叉购买分析
  8. 怎么用python爬取整个网站_5分钟学会Python爬取整个网站
  9. python utc时间转换为strftime
  10. CrateDB——全文搜索使用的是lucene,尚不知其底层实现