1,练习题一:以66分割,大于部分一个键值对,小于部分一个键值对

li = [23,78,67,45,34,89,67,78,23,23]
lig = []
lil = []
dic = {}
for i in li:
if i == 66:
continue
elif i > 66:
lig.append(i)
else:
lil.append(i) dic.setdefault("k1",lig)
dic.setdefault("k2",lil)
print(dic.items()) 运行结果:
dict_items([('k1', [78, 67, 89, 67, 78]), ('k2', [23, 45, 34, 23, 23])])

2,练习题二

li = ["apple","pear","peach","watermelon"]
# 页面显示商品名称
for i in li:
print(li.index(i)+1,"\t\t",i) # 用户输入index显示商品名称 while 1:
num = input(">>>").strip() # 这句话注意要写在循环里面
if num.isdigit():
num = int(num)
if num in range(0,len(li)+1):
print(li[num-1])
else:
print("number out of range")
elif num.lower() =="q":
break
else:
print("please input an number")
运行结果:
1 apple
2 pear
3 peach
4 watermelon
>>>5
number out of range
>>>4
watermelon
>>>e
please input an number
>>>q

3,Python2 和Python3的几点小区别:

Python2除了range函数还有个xrange,但是Python3只有range;

Python2的input函数叫做raw_input,Python3叫做input;

Python2的print函数,加括号不叫括号都可以,Python3必须加,另外还有之前讲解的编码区别

4,赋值运算符= 和身份运算符is 前置比较的是值,后者比较的是地址,如果用pycharm 的话,很多都会做优化占用一个地址,如果用console就不是一个了

这个老师也没有总结出来规律知道就好了,数字和字符串,基本上数字-5到256,字符串s*20 还是同一个,s*21就不是了,遇到的时候,还是实际来跑一下,因为没有明显规律

a = "abcdefgh"
b = "abcde"
c = a
print (id(a),id(b),id(c))
print (a == b) #比较的是值
print (a is b) #比较的是地址
print (a == c)
print (a is c) # 由于小资源池的存在,Python为了节省空间自动用一块儿存储空间
a = 20000
b = 20000
c = a
print (id(a),id(b),id(c))
print (a == b)
print (a is b)
print (a == c)
print (a is c) 运行结果:
4460901104 4459766536 4460901104
False
False
True
True
4459708336 4459708336 4459708336
True
True
True
True
li = [1,]
l2 = [1,]
print(li is l2)
print(li == l2) 运行结果:
False
True

5,各个编码之间的二进制文件是不能互相认识的,密码本不同,文件的储存传输不能是unicode,只能是(GBK,GBK2312,UTF-8,UTF-16,ASCII)等也就是bytes类型,他们之间的转化需要通过Unicode,str在内存中是Unicode存储的,不能直接用来存储和传输,必须先转化成bytes类型,pycharm帮我们完成了这个转化的过程,其他的文件需要我们自己手动转化

"""
bytes类型 对于英文:
str :表现形式:s = "lisa"
编码方式:01010100 Unicode
bytes:表现方式:s =b'lisa'
编码方式:s = 10010011 utf-8 gbk...... 对于中文:
str :表现形式:s = "我们"
编码方式:01011110 Unicode
bytes:表现方式:s =b'\xe6\x88\x91\xe4\xbb\xac'
编码方式:s = 10010011 11100101 11100001 utf-8 gbk...... """ s = 'lisa'
s1 = b'lisa' print(s,type(s))
print(s1,type(s1))
print("")
s = '我们'
# s1 = b'我们' #注意这个是错误的 报错:SyntaxError: bytes can only contain ASCII literal characters.
# encode 函数将str转化为bytes,还有decode函数
# 注意两种编码方式占用字节数,以及编码结果
s1 = s.encode("gbk")
print(s1,type(s1))
s1 = s.encode('utf-8')
print(s,type(s))
print(s1,type(s1 运行结果:
lisa <class 'str'>
b'lisa' <class 'bytes'> b'\xce\xd2\xc3\xc7' <class 'bytes'>
我们 <class 'str'>
b'\xe6\x88\x91\xe4\xbb\xac' <class 'bytes'>

最新文章

  1. js多种切换图片
  2. http协议(六)报文首部
  3. tomcat chinese miscode and chinese input in IDEA
  4. Xcode配置.pch文件
  5. MFC LIST 获取行数和列数
  6. 关于Android6.0之后的权限问题
  7. Java学习笔记--“==”与&quot;equals&quot;
  8. [Ext JS 4] 布局之实战一 - 中间区块不会自动伸展 (tab)
  9. Windows Phone开发(10):常用控件(上)
  10. C++ Primer 学习笔记_54_类和数据抽象 --拷贝构造函数、赋值运算符
  11. 安卓http源码查看器详解
  12. MyEclipse简介
  13. eclipse ide for java ee developers与eclipse ide for java developers有什么区别
  14. mybatis属性详解
  15. Ajax异步信息抓取方式
  16. Java多线程:乐观锁、悲观锁、自旋锁
  17. Python3 tkinter基础 Radiobutton 创建三个单选钮
  18. 【IDEA填坑】xml不编译
  19. .NET Entity Framework基本使用方法
  20. LVS 实现负载均衡原理及安装配置详解

热门文章

  1. Android studio 学习资料汇总
  2. Android源码阅读笔记二 消息处理机制
  3. lua -- 所有UI组件的基类
  4. 为11.2.0.2 Grid Infrastructure添加节点
  5. Nginx 1.9+PHP5.6 环境搭建
  6. centos7设置时间和时区
  7. zabbix参考文档
  8. Android ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)
  9. M0 M4关于库函数的讲解(以时钟为例)
  10. redis最大缓存和回收策略