python之路——6

复习


dic['age'] = 21
dic.setfault()

pop
clear
del
popitem()

update

dic.key()value()item()
for k,v in dic.item():
print(k,v)
dic.get(key,None)

学习内容

1. =赋值 ==比较值 is 比较内存地址
2. id() 内存地址
3. 数字,字符串 小数据池
数字的范围: -5 -256 则共用一个内存地址
字符串:1.含有特殊字符,则不共用 2.s*20 为同一地址,s*21以后都是两个地址
剩下的 list dic set tuple 都是不同地址
4. 编码 ASCII码 A=一个字节=8位
unicode A=4个字节=32位
utf-8 A=1个字节=8位
中=3个字节=24位
gbk A=1个字节=8位
中=2个字节=16位
a各个编码之间的二进制,不能互相识别,会产生乱码
b文件的储存,传输,不能是unicode, 一般为utf-8 gbk等

python3中,str 在内存在使用unicode编码
bytes类型
英文:
str : 表现形式 : s= 'alex'
编码方式: unicode
bytes:表现形式 : s= b'alex'
编码方式: utf-8 等
中文:
str : 表现形式 : s= '中国'
编码方式: unicode
bytes:表现形式 : s= b'x\e91\e91\e01\e21\e31\e32'
编码方式: utf-8 等

代码区

1.字典操作练习

dic1 = {'k1': 'v1', 'k2': 'v2', 'k3':[11,22,33]}
for i in dic1.keys():
    print(i)
for i in dic1.values():
    print(i)
for i in dic1.items():
    print(i)
dic1['k4'] = 'v4'
dic1['k1'] = 'alex'
dic1['k3'].append(44)
dic1['k3'].insert(0 , 18)
print(dic1)

2.分别保存<>66的元素到字典

li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
key = {'k1': [], 'k2': []}
for i in li:
    if i > 66:
        key['k1'].append(i)
    elif i < 66:
        key['k2'].append(i)
print(key)

3.输出打印产品列表,用户选择,按q 退出

prod = {1: '手机', 2: '电脑', 3: '鼠标垫', 4: '游艇'}
for k, v in prod.items():
    print('{}\t\t{}'.format(k, v))
while 1:
    num_choice = input('请输入商品序号')
    if num_choice.upper() == 'Q':
        break
    elif num_choice.isdigit():
        num_choice = int(num_choice)
        print(prod.get(num_choice, "查无此货"))
    else:
        print("请输入正确的商品序号")

4.购物车

print('全场十元,欢迎光临')
prod = {1: {'name': '手机', 'price': 10},
        2: {'name': '钱包', 'price': 10},
        3: {'name': '钥匙', 'price': 10}}
for k, v in prod.items():
    print('序号:{}\t商品:{}\t价格:{}'.format(k, v['name'], v['price']))
money = int(input('您的余额为:'))
money1 = money
flag = 1
while flag:
    if int(money) > 0:
        num_choice = input('请输入商品序号')
        if num_choice.upper() == 'Q':
            q = input('确认放弃本次购物请按Y,返回请按N')
            if q.upper() == 'Y':
                flag = 0
                continue
            else:
                continue
        elif num_choice.isdigit():
            num_choice = int(num_choice)
            if num_choice > 0 and num_choice <= len(prod):
                num_buy = input('请输入购买个数')
                if num_buy.isdigit():
                    num_buy = int(num_buy)
                    if money >= prod[num_choice]['price'] * num_buy:
                        money = money - prod[num_choice]['price'] * num_buy
                        print('您已购买{}{}个,余额为:{}'.format(prod[num_choice]['name'], num_buy, money))
                    else:
                        print('余额不足,余额为:{}'.format(money))
                else:
                    print("请输入正确个数")
            else:
                print("请输入正确的商品序号")
        else:
            print("请输入正确的商品序号")
    else:
        print('您的余额不足请及时充费')
        flag = 0
print("此次共消费{},剩余{}".format(money1-money, money))

猜你喜欢

转载自www.cnblogs.com/wan2-0/p/10554762.html