#编码方式转换
print(bytes('你好',encoding='GBK')) #unicode转换成'GBK' bytes
#b'\xc4\xe3\xba\xc3'
print(bytes('你好',encoding='GBK').decode('GBK')) #再转换成unicode
#你好
print(bytes('你好',encoding='utf-8')) #unicode转换成'utf-8' bytes
#b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(bytes('你好',encoding='utf-8').decode('utf-8')) #'utf-8'转换成unicode
#你好
![](https://img2018.cnblogs.com/blog/1482698/201809/1482698-20180917210619707-267528710.jpg)
#encode 编码,如何将Unicode str-->bytes
s1 = 'alex'
s11 = s1.encode('utf-8')
print(s11) #b'alex'
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'
#购物车程序
li = [ #商品列表
{'name':'苹果','price':10},
{'name':'香蕉','price':20},
{'name':'西瓜','price':30},
]
print('欢迎光临本店')
shopping_car = {} #购物车
money = input('让我看看你的钱:')
flag = True
if money.isdigit() and int(money)>0: #输入的为数字且大于0
while flag:
for i,k in enumerate(li): #枚举
print('序号: {}, 商品: {}, 价格: {}'.format(i,k['name'],k['price']))
choose = input('请输入您要购买的商品序号:')
if choose.isdigit() and int(choose) < len(li): #序号为数字且在列表内
num = input('请输入您要购买的数量:')
if num.isdigit(): #输入的数量为数字
if int(money) >= li[int(choose)]['price']*int(num): #现金>=单价*数量
money = int(money) - li[int(choose)]['price']*int(num) #金额 = 金额-单价*数量
if li[int(choose)]['name'] in shopping_car: #序号在购物车内
shopping_car[li[int(choose)]['name']] = shopping_car[li[int(choose)]['name']] + int(num) #购物车数量=购物车数量+购买数量
else:
shopping_car[li[int(choose)]['name']] = int(num) #购物车数量赋值
print('购物车中的商品有 {},您的余额为{}'.format(shopping_car,money))
else:
print('你的资金不足!不能购买')
break
else:
print('你输入了为存在的序号')
else:
print('你的钱不合法,不能购买商品!')