1.is和==的区别

1)==比较的是左右两边的值,无论是字符串、数字、列表,元组、若两边的值相等,则返回True

a = "zdz"b= "zdz"

print(a==b)

输出:

True

View Code

②列表:若两个列表元素相同,则返回True 若不相同,返回False

li = [1,2,4]

li_2= [1,2,4]print(li==li_2)

输出:

True

View Code

2) is 是比较:比较的是内存地址

补充:id是python中的内置函数,用来打印对象内存地址

a = "zdz"

print(id(a))

输出:1673496780448

View Code

①字符串

str_1 = "zdz"str_2= "zdz"

print(str_1 isstr_2)

输出:

True

View Code

②数字

num1 = 10num2= 10

print(num1 isnum2)

输出:

True

View Code

③列表

list_1 = [1,2,3]

list_2= [1,2,3]print(list_1 islist_2)

输出:

False

View Code

④元组

tup_1 = (1,2,3)

tup_2= (1,2,3)print(tup_1 istup_2)

输出:

False

View Code

⑤字典

dic_1 = {'1':"zdz",'2':"zzm"}

dic_2= {'1':"zdz",'2':"zzm"}print(dic_1 isdic_2 )

输出:

False

View Code

总结:

1)==比较左右两边的值

2)is 比较的是内存地址,通过id()内置函数比较

一个py文件中所有相同的字符串,一般都是使用一样的内存地址

2.小数据池

只适用于数字和字符串,在小数据池中的数据内存地址相同(在终端测试正常,在pycharm会改变这个规则)

①数字小数据池范围:-5~256

②字符串小数据池范围:字符产中如果有特殊字符(空格、加减乘除等),内存地址就不一样(终端测试正常,pycharm中会改变该规则)

#字符串中单个*20以为的内存地址一样;单个*21以上内存地址不一致

a = 'a' * 20b= 'a' * 20

print(a isb)

输出:

True==================================a= 'a' * 21b= 'a' * 21

print(a isb)

输出:

False

View Code

3.编码和解码

1)常见编码

①ascii码:不支持中文,支持英文,数字,字母,符号;8位,即一个字节

②GBK码:支持中文,英文,数字,符号;英文和中文都占16位,即2个字节

③unicode:万国码:支持中文,英文,数字,符号;英文和中文都占32位,即4字节

④utf-8长度可变的外国码:最少用8位,英文占8位,中文占24位,即3个字节

注:python2的默认编码为ascii;python3的默认编码为utf-8;python3中,在程序运行阶段,使用的是unicode编码(即unicode是一个桥梁);unicode是不可以做文件传输和存储的;所有的传输和存储都是使用bytes;pycharm存储的时候默认使用的是utf-8

2)编码(encode):即拿到明文编码后对应的字节

s = "lpl"

print(s.encode('utf-8')) #指定要编码成什么样的编码类型

输出:

b'lpl'

View Code

#中文

s = "吃了吗"

print(s.encode('utf-8')) #指定要编码成什么样的编码类型

输出:

b'\xe5\x90\x83\xe4\xba\x86\xe5\x90\x97' #一个字三个字节(文件存储时,存在硬盘中的就是类似这样的数据)

View Code

2)解码(decode):用什么编码方式编码,就要用什么编码方式解码,否则解码报错或者解码后的字符乱码;即将编码后的字节编码成对应的明文

s = "吃了"s1= s.encode('utf-8')print(s1)print(s1.decode("gbk"))print(s1.decode("utf-8"))

输出:

b'\xe5\x90\x83\xe4\xba\x86'鍚冧簡

吃了

View Code

编码和解码的本质:通过unicode这个桥梁,进行编码和解码

4.练习

1)好声音大赛评委打分时,可以进行输入,假设有10个评委,让10个评委进行打分,要求,分树必须大于5分,小于10分

i =1

while i <= 10:

score= input("请%d号评委打分:"%i)if int(score) > 5 and int(score) < 10:print("分数合理")else:print("分数不合理")continuei= i + 1输出:

请1号评委打分:1分数不合理

请1号评委打分:8

View Code

2)电影投票:程序先给出一个目前正在上映的电影列表,由用户给每一个电影打分,最终将该用户投票信息公布出来lst=['烈日灼心','美国往事','西西里的美丽传说','憨豆先生'],最终结果如下:{'烈日灼心':88,'美国往事':85,'西西里的美丽传说':90,'憨豆先生':89}

lst=['烈日灼心','美国往事','西西里的美丽传说','憨豆先生']

dic={}for i inlst:

score= input("请给%s打分:" %i)

dic[i]=scoreprint(dic)

输出:

请给烈日灼心打分:88请给美国往事打分:85请给西西里的美丽传说打分:90请给憨豆先生打分:89{'美国往事': '85', '西西里的美丽传说': '90', '烈日灼心': '88', '憨豆先生': '89'}

View Code

3)念数字:给出一个字典,在字典中表示2每个数字的发音,包括相关符号,然后由用户输入一个数字,让程序读出相应的读音(不需要语音输出,单纯的打印即可)

dic ={'-':"fu",'1':"yi",'2':"er",'3':"san",'4':"si",'5':"wu",'6':"liu",'7':"qi",'8':"ba",'9':"jiu"}

num= input("请输入一个数字:")for i innum:print(dic[i],end=" ") #用空格分割每一个元素

else:print() #换行

print("输入完毕")

输出:

请输入一个数字:127yi er qi

输入完毕

View Code

4)现有主播的收益信息,按照要求,完成相应操作:

zhubo = {'卢本伟':122000,'冯提莫':189999,'PDD':'200000','老贼':188888}

①计算主播的平均收益

zhubo = {'卢本伟':122000,'冯提莫':189999,'PDD':200000,'老贼':188888}

sum=0for value inzhubo.values():

sum= sum +valueprint(sum/len(zhubo)) #计算平均值

输出:175221.75

View Code

②干掉收益小于平均值的主播

zhubo = {'卢本伟':122000,'冯提莫':189999,'PDD':200000,'老贼':188888}

sum=0for value inzhubo.values():

sum= sum +valueprint(sum/len(zhubo)) #计算平均值

avg= sum/len(zhubo)#循环的时候记录要删除的key#注:字典循环的时候,不允许修改被迭代的元素,所以先将key放入到列表中

lst =[]for k,v inzhubo.items():if v

lst.append(k)#列表保存要删除的key

for i inlst:

zhubo.pop(i)print(zhubo)

输出:175221.75{'老贼': 188888, '冯提莫': 189999, 'PDD': 200000}

View Code

③干掉卢本伟

zhubo.pop('卢本伟')

总结:

1)==比较左右两边的值

2)is比较的是内存地址,通过id()内置函数比较

一个py文件中所有相同的字符串,一般都是使用一样的内存地址

python我想对你说_python学习第4天----is和==区别、小数据池、编码解码相关推荐

  1. python我想对你说_python学习第12天----内置函数

    1.内置函数 python解释器提供的,直接可以使用的函数,如print,input等 1)作业域相关 ①globals() 以字典的类型返回全部局部变量 ②locals()   以字典的类型返回当前 ...

  2. python我想对你说_python学习第20天----面向对象复习、__repr__

    1.面向对象 #问题: ①写代码时,什么时候用面向对象:处理比较复杂的角色之间的关系(代码量大,功能多的时候),如复杂的电商程序.公司/学校的人事管理的系统:提高代码的可读性,清晰度(无论是开发者还是 ...

  3. python我想对你说_python学习第6天----文件操作

    1.文件操作 python中通过open()函数打开一个文件,获取到文件句柄,然后通过文件句柄就可进行各种操作(句柄就相当于一个变量),文件句柄是一个可迭代对象 打开文件的操作有:r,w,a,r+,w ...

  4. python我想对你说_python学习第3天-----字典、解构

    1.字典 1)定义:查找速度快,效率高:用{}括起来,内部使用key:value的形式来保存数据:键值对是无序的,不是按照定义的方式保存数据的(类似于json文件), 例如: {'jay':'周杰伦' ...

  5. python我想对你说_python学习22天----模块、包

    1.from ...import  xxx 例: frommy_moudle importlogin 1)from import 的时候发生了什么 ①先找到my_moudle模块 ②开辟一块属于这个模 ...

  6. 【Python21天学习挑战赛】字典 小数据池

    ​ ​ 活动地址:CSDN21天学习挑战赛 ​ 开头一叙: 无论是以后学习需要或者是三年后的工作需要,都需要用到python的工具,也接着这次活动的机会,把python系统的学一遍.跟着大佬,让pyt ...

  7. python拷贝文件函数_python笔记2小数据池,深浅copy,文件操作及函数初级

    小数据池就是在内存中已经开辟了一些特定的数据,经一些变量名直接指向这个内存,多个变量间公用一个内存的数据. int: -5 ~ 256 范围之内 str: 满足一定得规则的字符串. 小数据池: 1,节 ...

  8. python字符串驻留机制_python的内存驻留机制(小数据池)

    python的内存驻留机制,是一种节省内存的方案,它将int, str, bool类型的数据做成小数据池.当程序要创建字符串等对象前会先检查池中是否有满足的字符串. 字符串不超过20个字符且仅包含大小 ...

  9. python使用什么来区分代码块_Python 小数据池、代码块以及代码块缓存机制

    按照惯例,吟诗一首:苏轼<江城子·乙卯正月二十日夜记梦> 十年生死两茫茫,不思量,自难忘.千里孤坟,无处话凄凉. 纵使相逢应不识,尘满面,鬓如霜. 夜来幽梦忽还乡,小轩窗,正梳妆.相顾无言 ...

最新文章

  1. 接入新浪、腾讯微博和人人网的Android客户端实例 接入新浪、腾讯微博和人人网的Android客户端实例...
  2. python线下培训-Python培训线上和线下有什么区别?
  3. 数据归一化matlab及python 实现
  4. 计算机组组内培训记录,计算机教研组活动记录
  5. ubuntu amd64 的锐捷连接解决办法---武汉大学
  6. xg push sdk android,AppCan文档中心-uexXGPush
  7. 【Java必备技能一】支付宝手机网站支付对接
  8. KDD China技术峰会回顾:大牛云集,教你如何基于大数据 手握人工智能未来
  9. javascript 基础案例(循环)
  10. linux shell 加密shc,使用shc工具加密shell脚本详解
  11. android前端开发
  12. 2018安恒杯11月月赛 MISC
  13. Win10下使用nvm安装多个版本node.js
  14. 学以致用——微博文章内容统计分析之一(Excel+GraphLab)
  15. 说说找工作这些事儿(未完)
  16. linux执行sudo报错【/etc/sudo.conf is owned by uid 994, should be 0】
  17. python 实用脚本_python实用脚本红手指导入
  18. 20145212罗天晨 后门原理与实践
  19. Input的常用属性
  20. 服务器做RAID,各个RAID特点

热门文章

  1. php使用smtp.sina.com邮箱发送邮件
  2. 由于虚拟机监控程序未运行,无法启动模拟器
  3. 信用租赁系统搭建-“信用”+“租赁”模式,租赁方式更灵活
  4. 一个实用的工具,查找网站快照含历史版本
  5. iOS开发 精准获取webView内容高度
  6. 网络安全的学习路线是怎么样的?
  7. Hololens官方第三视角技术
  8. vue启动成功,无法访问localhost:8080,以及用ip进行访问———无法显示此页面
  9. 建立一个 git 本地仓库
  10. php中的setinc,thinkphp3.2.0中setInc方法的源码分析