#asccii : 8位 1字节 表示一个字符
#unicode 32位 4个字节 表示一个字符
#utf - 8 1个英文 8 位 1个字节
# 欧洲 16 位 两个字节 表示一个字节
# 亚洲 24 位 三个字节 表示一个字节
#gbk 1个英文 8位 1个字节
# 亚洲 16位 两个字节 表示一个字节
# 在循环一个列表时,最好不要有删除列表步骤,删除列表元素会使
# 列表元素中的索引发生变化导致循环时程序发生报错
# 有如下值li= [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
#即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
li = [11,22,33,44,55,66,77,88,99,90]
a=[]
b=[]
c={}
# for i in li:
# if i < 66:
# a.append(i)
# else:
# b.append(i)
#
# c.setdefault('k1', a)
# c.setdefault('k2', b)
# print(c)
'''
4、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑
…
2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
'''
# li = ["手机", "电脑", '鼠标垫', '游艇']
#
#
# while True:
# for i in li:
# print('{}\t{}'.format(li.index(i)+1,i))# \t 空格 format 格式化字符串 {} 表示
# a = input('请输入商品序号:或者输入Q/q退出')
# if a.isdigit():# 判断输入的是否全是数字
# a = int(a)
# if a > 0 and a <len(li):
# print(li[a-1])
# else:
# print('您输入的数字有误!请重新输入')
#
# elif a.upper() == 'Q':
# print('欢迎下次再来!')
# break
# else:
# print('请再次选择')
# flag = True
# while flag:
# li = ["手机", "电脑", "鼠标垫", "游艇"]
# for i in li:
# print('{}\t\t{}'.format(li.index(i) + 1, i))
# num_of_chioce = input('请输入选择的商品序号/输入Q或者q退出程序:')
# if num_of_chioce.isdigit():
# num_of_chioce = int(num_of_chioce)
# if num_of_chioce > 0 and num_of_chioce <= len(li):
# print(li[num_of_chioce - 1])
# else:
# print('请输入有效数字')
# elif num_of_chioce.upper() == 'Q':
# break
# else:
# print('请输入数字')
#数据池
# = 赋值 == 比较值是否相等 is 比较的是内存地址 ID (内容)
# li = [1,2,3] # = 赋值的内存地址一样
#
# li2 = li
# print(id(li))
# print(id(li2))
#数字,字符串 小数据池
#数字的范围 无范围
#字符串:1,不能有特殊字符 待定
# 2,s*20 还是同一个地址,s*21以后都是两个地址
# li = 500
# li2 = 500
# print(id(li))
# print(id(li2))
# i1 = 'a$l'
# i2 = 'a$l'
# print(id(i1),id(i2))
# i1 = 300
# i2 = 300
# print(id(i1),id(i2))
# a = 6
# b = 6
# print(id(a),id(b))
# s = 'alex'
# s1 = b'alex'# 前面加b 转换bytes类型
# print(s,type(s))
# print(s1,type(s1))
# s1 = 'alex'
# encode 编码,如何将str --> bytes, ()
# s2 = '中国'
# print(s2.encode('utf-8'))
# print(s2.encode('gbk'))
'''ascii
A : 00000010 8位 一个字节
unicode A : 00000000 00000001 00000010 00000100 32位 四个字节
中:00000000 00000001 00000010 00000110 32位 四个字节
utf-8 A : 00100000 8位 一个字节
中 : 00000001 00000010 00000110 24位 三个字节
gbk A : 00000110 8位 一个字节
中 : 00000010 00000110 16位 两个字节
1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)
py3:
str 在内存中是用unicode编码。
bytes类型
对于英文:
str :表现形式:s = 'alex'
编码方式: 010101010 unicode
bytes :表现形式:s = b'alex'
编码方式: 000101010 utf-8 gbk。。。。
对于中文:
str :表现形式:s = '中国'
编码方式: 010101010 unicode
bytes :表现形式:s = b'x\e91\e91\e01\e21\e31\e32'
编码方式: 000101010 utf-8 gbk。。。。'''
# s = ' '
# print(s.isspace()) #字符串中只包含空格则返回True
# dic = dict.fromkeys([1,2,3],['春哥','laxe','bg'])#fromkeys 创建一个新字典,以序列 seq 中元素做字典的键,
# # value 为字典所有键对应的初始值, 值只能对应一个单一的一个整体,如单个字符串,单个列表
# print(dic)
dic = dict.fromkeys([1,2,3],[])
print(dic) # {1: [], 2: [], 3: []}
# dic[1].append('袁姐')
# print(dic)
dic[3].extend('二哥hao')
print(dic)