Python全栈学习Day6

昨日内容复习

1

  dic['age'] = 21

2

dic.setdefault()

pop() 有返回值,按key删除,默认返回none
clear()清空字典
del()按key删除无返回值
popitem()随机删除,有返回值,返回元祖

update()把一个字典覆盖到另一个字典

dic.keys()循环打印
dic.values()打印索引值
dic.items()打印键值对
dic.get(key,none)

练习题


将1-5放到一个key,6-10放到另一个key

li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
dic = {'small':[], 'big':[]}
for i in li:
    if i < 6:
        dic['small'].append(i)
    else:
        dic['big'].append(i)
print(dic)

在这里插入图片描述
二 购物车
输入商品列表,用户输入序号,显示用户选中的商品
商品 li = [“手机”, “电脑”, “鼠标垫”, “游艇”]
要求:1,页面显示 序号+商品名称,如
1 手机
2 电脑
……
2,用户输入选择的商品序号,然后打印商品名称
3,如果用户输入的商品序号有错,则提示输入有误,并重新输入
4,用户输入Q或q退出程序

while 1:
    li = ["手机",  "电脑", "鼠标垫", "游艇"]
    for i in li:
        print('{}\t{}'.format(li.index(i)+1, i))
    num_of_choice = input('请输入选择的商品序号:输入Q或q则退出')
    if num_of_choice.isdigit():
        num_of_choice = int(num_of_choice)
        if 0 < num_of_choice <= len(li):
            print(li[num_of_choice-1])
        else:
            print('请输入正确的商品编号!')
    elif num_of_choice.upper() == 'Q':
        break
    else:
        print('请输入正确的商品编号!')

购物车第二版

 # 把货物放在货架上
li = [
    {'name': '苹果', 'price': 10},
    {'name': '西瓜', 'price': 50},
    {'name': '香蕉', 'price': 15},
]
shopping_car = {}
print('欢迎光临')
money = input('你有多少钱?')
if money.isdigit() and int(money) > 0:
    while 1:
        for i, k in enumerate(li):
            print('序号{}, 商品{}, 价格{}'.format(i, k['name'], k['price']))
        choose = input('请输入您要购买的商品序号:')
        if choose.isdigit() and 0 <= 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('请输入正确商品序号')

今日:小知识点总结

一 python2与python3的区别

print方法
python 2 不用加()也可以加()
python 3 必须加()
range
python2中有xrange()插入器
python3中只有range
input
python2 raw_input()
python3 input()

二 = == 与 is

=
赋值
==
比较值是否相等
is
比较内存地址即ID

数字 字符串 小数据池

数字
在-5~256中创建数字至开辟一个空间
字符串
1 含有特殊字符不会公用一个内存
2 str20公用一个地址,str21以后开辟两个地址,str只能一个字符

编码

ASCII
一个字符占八位,一个字节
UNICODE
32位,四个字节
字母: 八位 A:
中文: 24位,三个字节
GBK
字母: 一个字节,八位
中文: 两个字节,十六位
关系
1 各个编码之间的二进制,不能互相识别
2 文件的储存和传输不能是unicode 只能是(utf-8或utf-16或gbk,gb2312,ASCII等)

Python 3

str在内存中使用UNICODE储存的
问题:UNICODE空间大,需转化

bytes类型与str类型

类似字符串,但不是以UNICODE编码(与str区别)
str:
表现形式 s = ‘mashengde’
编码形式;UNICODE
bytes:
表现形式:s = b’mashengde’
编码形式;utf-8或GBK
对于中文
str:
表现形式 s = ‘中国’
编码形式;UNICODE
bytes:
表现形式:s = b’x\e91\e91\e01\e21\31\e32’
编码形式:utf-8
如何将STR转换成Bytes

s1 = 'mashengde'
s2 = s1.encode()
print(type(s2))

中文

s1 = '马圣德'
s2 = s1.encode()
print(s2)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43460813/article/details/85342761
今日推荐