python note 06 编码方式

1、有如下值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,90,99]
dic = {}
l_high = [] #大于66的所有值列表
l_low = []  #小于66的所有值列表
for i in li:
    if i == 66:continue
    if i > 66:
        l_high.append(i)
    else:
        l_low.append(i)
dic.setdefault('k1',l_high)
dic.setdefault('k2',l_low)
print(dic)
#输出{'k2': [11, 22, 33, 44, 55], 'k1': [77, 88, 90, 99]}

 

2、

输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
要求:1:页面显示 序号 + 商品名称,如:
1 手机
2 电脑

2: 用户输入选择的商品序号,然后打印商品名称
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。

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('请输入数字')

 

3、

#数字,字符串 小数据池
#数字的范围 -5 -- 256
#字符串:1,不能有特殊字符
#       2,s*20 还是同一个地址,s*21以后都是两个地址

s = 'alex'
s1 = b'alex'
print(s,type(s))
print(s1,type(s1))
#输出alex <class 'str'>
#    b'alex' <class 'bytes'>

编码方式(了解)

str 在内存中是用unicode编码。


对于英文:
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。。。。

s1 = 'alex'
# encode 编码,如何将str --> bytes, ()
s11 = s1.encode('utf-8')
s11 = s1.encode('gbk')
print(s11)
#输出b'alex'

 

s2 = '中国'
s22 = s2.encode('utf-8')
print(s22)
#输出b'\xe4\xb8\xad\xe5\x9b\xbd'
s22 = s2.encode('gbk')
print(s22)
#输出b'\xd6\xd0\xb9\xfa'

 

posted @ 2019-03-13 14:23  P-Z-W  阅读(209)  评论(0编辑  收藏  举报