数据类型:列表及其应用
三元运算:存变量的时候有增加了一个判断条件
格式:d=a if a<b else c
字符串转二进制:
msg="今天天气如何"
print(msg.encode(encoding="utf-8"))
二进制转字符串:
print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))
列表
names=["li","guo","wang","zheng","zhong"]
print(names[1],names[2]) #['li','guo']
print(names[1:3]) #切片:起始位置1,结束位置2; 顾头不顾尾#['li','guo']
print(names[-1]) #取最后一个,“-”从右往左数#['zhong']
print(names[-2:]) #['zheng','zhong']
print(names[:2]) #['li','guo']
print(names[0:5:2]) #步长切片:隔一个输出#[‘li ,'wang','zhong']
列表的追加:
names.appand("huang") #插入最后面,一次只能插入一个
names.appand(1,"huang")#插入第二位
列表的修改:
names[2]="xie" #覆盖第3位
列表的删除:
names.remove("guo")
del names[1] #=names.pop(1)
names.pop() #默认删除最后一个
names.clear #清空
列表的查找:
names.index("zhong") #返回5
names.count("zhong") #chazhao"zhong"有几个
names.reverse() #反转
name.sort() #排序 按照ascall码顺序0
names.extend(names2) #names2并到names
浅COPY的3种方法。用处:创建联合账号,name3修改了,name2和4会同时修改
1:names2=names.copy() #浅copy,只copy第一层数据和指针地址,不copy指针所指的内容
2:names3=names[:] #完全切片浅copy,
3:names4=list(names) #浅copy
列表的嵌套
import copy
names2=names.deepcopy(names) #深copy,copy指针所指的内存数据
names=["li","guo","wang",["jack","peter"]"zheng","zhong"] #嵌套的列表被当做一个元素,是一个独立的内存指针
names[3][0]=rose #jack被改为rose
列表的循环
for i in names:
print(i)
元组tuple(只读列表)
与列表相同,但经过创建后不可再修改,只能查询。
names=("li","guo","wang","zheng","zhong")
习题:购物小程序
product_list=[['iphone',5999],
['huawei',6999],
['xiaomi',2999],
['oppo',5999],
['vivo',5999],
['jinli',899]]
shopping_list=[]
deposit=input("input your deposit:")
if deposit.isdigit(): #确定输入为整形
deposit=int(deposit)
while True:
for index,item in enumerate(product_list): #enumerate效率较高,全打印,index逐个打印
#print(product_list.index(item),item) #打印时显示下标方法1
print(index,item)
user_choice=input("您需要购买什么:")
if user_choice.isdigit():
user_choice=int(user_choice)
if user_choice<len(product_list) and user_choice>=0:
p_item=product_list[user_choice]
if p_item[1]<=deposit:#买的起
shopping_list.append(p_item)
deposit-=p_item[1]
print("Added \033[32;1m%s\033[0m into shopping cart,your surrent balance is \033[20;1m%s\033[0m" %(p_item,deposit))
else:
print("您的余额\033[41;1m%s\033[0m 已不足支付该商品" %deposit)
else:
print("您所输入的商品不存在,请重新输入")
elif user_choice=='q':
print("您已成功购买如下商品:")
for p in shopping_list: #排列输出,固定用法
print(p)
print("您当前的余额为\033[20;1m%s\033[0m" %deposit)
print("exit...")
break
else:
print("输入的数据无效")
break
else:
print("输入的数据无效")

浙公网安备 33010602011771号