1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain']
1 li=['alex','eric','rain'] 2 v="_".join(li) 3 print(v)
执行结果:
1 alex_eric_rain
2、查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。
li=["alec","aric","Alex","Tony","rain"]
tu=("alec","aric","Alex","Tony","rain")
dic={'k1':"alex",'k2':'aric',"k3":"Alex","k4":"Tony"}
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author: nulige 4 5 li = ["alec", "aric", "Alex", "Tony", "rain"] 6 tu = ("alec", "aric", "Alex", "Tony", "rain") 7 dic = {'k1': "alex", 'k2': 'aric', "k3": "Alex", "k4": "Tony"} 8 9 list1 = list(tu) 10 list2 = list(dic.values()) 11 newlist = li + list1 + list2 12 for i in newlist: 13 ret = i.strip() #i.strip():删除字符串当前行首尾的的空格 14 if (ret.startswith('a') or ret.startswith('A')) and ret.endswith('c'): #startswith查看是否已什么开始,endswith查看是否已什么结尾
15 print(ret)
执行结果:
1 alec 2 aric 3 alec 4 aric 5 aric
3、写代码,有如下列表,按照要求实现每一个功能
li=['alex','eric','rain']
a.计算列表长度并输出
1 li = ['alex', 'eric', 'rain'] 2 v = len(li) 3 print(v)
执行结果:
1 3
b.列表中追加元素“seven”,并输出添加后的列表
1 li = ['alex', 'eric', 'rain'] 2 li.append(str("seven")) 3 print(li)
执行结果:
1 ['alex', 'eric', 'rain', 'seven']
c.请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
1 li = ['alex', 'eric', 'rain'] 2 li.insert(1,"Tony") 3 print(li)
执行结果:
1 ['alex', 'Tony', 'eric', 'rain']
d.请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
1 li = ['alex', 'eric', 'rain'] 2 li[1] = "Kelly" 3 print(li)
执行结果:
1 ['alex', 'Kelly', 'rain']
e.请删除列表中的元素“eric”,并输出修改后的列表
1 li = ['alex', 'eric', 'rain'] 2 li.remove("eric") 3 print(li)
执行结果:
1 ['alex', 'rain']
元素的值和删除元素后的列表 执
1 li = ['alex', 'eric', 'rain'] 2 del li[1] 3 print(li) 4 n1 = li.pop(1) 5 print(n1)
执行结果:
1 ['alex', 'rain'] 2 rain
g.请删除列表中的第3个元素,并输出删除元素后的列表
1 li = ['alex', 'eric', 'rain'] 2 li.pop(2) 3 print(li)
执行结果:
1 ['alex', 'eric']
h.请删除列表中的第2至4个元素,并输出删除元素后的列表
1 li = ['alex', 'eric', 'rain', 'sic'] 2 del li[1:4] 3 print(li)
执行结果:
1 ['alex']
i.请将列表所有的元素反转,并输出反转后的列表
1 li = ['alex', 'eric', 'rain'] 2 li.reverse() 3 print(li)
执行结果:
1 ['rain', 'eric', 'alex']
j.请使用for、len、range输出列表的索引
1 li = ['alex', 'eric', 'rain'] 2 for i in range(len(li)): 3 print(i)
执行结果:
1 0 2 1 3 2
k.请使用enumrate输出列表元素和序号(序号从100开始)
1 li = ['alex', 'eric', 'rain'] 2 for k,v in enumerate(li,100): 3 print(k,v)
执行结果:
1 100 alex 2 101 eric 3 102 rain
l.请使用for循环输出列表的所有元素
1 li = ['alex', 'eric', 'rain'] 2 for ltem in li: 3 print(ltem)
执行结果:
1 alex 2 eric 3 rain
4、写代码,有如下列表,请按照功能要求实现每一个功能
li=["hello",'seven',["mon",["h","kelly"],'all'],123,446]
a.请根据索引输出“Kelly”
1 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446] 2 print(li[2][1][1])
执行结果:
1 kelly
b.请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
1 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446] 2 index = li[2].index("all") 3 li[2][index] = "ALL" 4 print(li)
执行结果:
1 ['hello', 'seven', ['mon', ['h', 'kelly'], 'ALL'], 123, 446]
5、写代码,有如下元组,按照要求实现每一个功能
tu=('alex','eric','rain')
a.计算元组长度并输出
1 tu = ('alex', 'eric', 'rain') 2 n1 = len(tu) 3 print(n1)
执行结果:
1 3
b.获取元组的第2个元素,并输出
1 tu = ('alex', 'eric', 'rain') 2 v = tu[1] 3 print(v)
执行结果:
1 eric
c.获取元组的第1-‐2个元素,并输出
方法一:
1 tu = ('alex', 'eric', 'rain') 2 v = tu[:2] 3 print(v)
执行结果:
1 ('alex', 'eric')
方法二:
1 tu = ('alex', 'eric', 'rain') 2 n1 = tu[1] 3 n2 = tu[2] 4 print(n1 + " " + n2)
执行结果:
1 eric rain
d.请使用for输出元组的元素
1 tu = ('alex', 'eric', 'rain') 2 for i in tu: 3 print(i)
执行结果:
1 alex 2 eric 3 rain
e、请删除列表中的元素"eric",并输出修改后的列表
1 li = ['alex', 'eric', 'rain'] 2 li.remove("eric") 3 print(li)
执行结果:
1 ['alex', 'rain']
f.请使用for、len、range输出元组的索引
1 tu = ('alex', 'eric', 'rain') 2 for i in range(len(tu)): 3 print(i)
执行结果:
1 alex 2 eric 3 rain
g.请使用enumrate输出元祖元素和序号(序号从10开始)
1 tu = ('alex', 'eric', 'rain') 2 for k,v in enumerate(tu,10): 3 print(k,v)
执行结果:
1 10 alex 2 11 eric 3 12 rain
6、有如下变量,请实现要求的功能
tu=("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
a.讲述元祖的特性
答:元组具有列表的全部特性,不同的是,元组的元素不能修改
b.请问tu变量中的第一个元素“alex”是否可被修改?
答:不能
c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
答:列表 ,可以
1 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44]) 2 tu[1][2]["k2"].append("Seven") 3 print(tu)
执行结果:
1 ('alex', [11, 22, {'k3': (11, 22, 33), 'k1': 'v1', 'k2': ['age', 'name', 'Seven']}, 44])
d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
答: 元组,不能
1 tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44]) 2 tu[1][2]["k3"].append("Seven") 3 print(tu)
执行结果:
1 Traceback (most recent call last): 2 File "D:/python/job4.py", line 154, in <module> 3 tu[1][2]["k3"].append("Seven") 4 AttributeError: 'tuple' object has no attribute 'append' #元组不能被修改
7、字典
dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
a.请循环输出所有的key
1 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]} 2 for ltem in dic: 3 print(ltem)
执行结果:
1 k1 2 k2 3 k3
b.请循环输出所有的value
1 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]} 2 for item in dic.values(): 3 print(item)
执行结果:
1 v2 2 v1 3 [11, 22, 33]
c.请循环输出所有的key和value
1 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]} 2 for k,v in dic.items(): 3 print(k,v)
执行结果:
1 k3 [11, 22, 33] 2 k2 v2 3 k1 v1
d.请在字典中添加一个键值对,"k4":"v4",输出添加后的字典
1 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]} 2 dic["k4"] = "v4" 3 print(dic)
执行结果:
1 {'k4': 'v4', 'k3': [11, 22, 33], 'k1': 'v1', 'k2': 'v2'}
e.请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
1 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]} 2 dic["k1"] = "alex" 3 print(dic)
执行结果:
1 {'k2': 'v2', 'k3': [11, 22, 33], 'k1': 'alex'}
f.请在k3对应的值中追加一个元素44,输出修改后的字典
1 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]} 2 dic["k3"].append(44) 3 print(dic)
执行结果:
1 {'k2': 'v2', 'k1': 'v1', 'k3': [11, 22, 33, 44]}
g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
1 dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]} 2 dic["k3"].insert(0,18) 3 print(dic)
执行结果:
1 {'k2': 'v2', 'k3': [18, 11, 22, 33], 'k1': 'v1'}
8、转换
a.将字符串s="alex"转换成列表
1 s = "alex" 2 n1 = list(s) 3 print(n1)
执行结果:
1 ['a', 'l', 'e', 'x']
b.将字符串s="alex"转换成元祖
1 s = "alex" 2 n1 = tuple(s) 3 print(n1)
执行结果:
1 ['a', 'l', 'e', 'x']
b.将列表li=["alex","seven"]转换成元组
1 li = ["alex","seven"] 2 n1 = tuple(li) 3 print(n1)
执行结果:
1 ('alex', 'seven')
c.将元祖tu=('Alex',"seven")转换成列表
1 tu = ('Alex',"seven") 2 n1 = list(tu) 3 print(n1)
执行结果:
1 ('alex', 'seven')
d.将列表li=["alex","seven"]转换成字典且字典的key按照10开始向后递增
1 li = ["alex","seven"] 2 n1 = {} 3 for k,v in enumerate(li,10): 4 n1[k] = v 5 print(n1)
执行结果:
1 {10: 'alex'} 2 {10: 'alex', 11: 'seven'}
9、元素分类
有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
即:{'k1':大于66的所有值,'k2':小于66的所有值}
法一:
1 li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90] 2 li.sort() #排序 3 z = li.index(66) 4 l = len(li) 5 dic = {"k1": li[z + 1:l], "k2": li[0:z]} 6 print(dic)
执行结果:
1 {'k1': [77, 88, 90, 99], 'k2': [11, 22, 33, 44, 55]}
法二:
1 li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90] 2 li.sort() 3 lo = [] 4 lp = [] 5 for i in li: 6 if i < 66: 7 lo.append(i) 8 elif i > 66: 9 lp.append(i) 10 dic = {"k1": lo, "k2": lp} 11 print(dic)
执行结果:
1 {'k1': [11, 22, 33, 44, 55], 'k2': [77, 88, 90, 99]}
10、输出商品列表,用户输入序号,显示用户选中的商品
商品li=["手机","电脑",'鼠标垫','游艇']
a.允许用户添加商品
b.用户输入序号显示内容
1 print("商品列表信息,用户输入序号,显示用户选中的商品") 2 li = ["手机", "电脑", '鼠标垫', '游艇'] 3 for i, v in enumerate(li, 1): 4 print(i, v) 5 x = input("是否添加商品?") 6 if x == "y" or x == "Y" or x == "yes": 7 t = input("请添加商品:") 8 li.append(t) 9 for i, v in enumerate(li, 1): 10 print(i, v) 11 s = input("是否查找商品?") 12 if s == "y" or s == "Y" or s == "yes": 13 y = int(input("请输入查找的序号")) 14 print(li[y -1]) # -1 是取下标,默认是从0开始的,-1就是从1开始
执行结果:
1 商品列表信息,用户输入序号,显示用户选中的商品 2 1 手机 3 2 电脑 4 3 鼠标垫 5 4 游艇 6 是否添加商品?y 7 请添加商品:锅 8 1 手机 9 2 电脑 10 3 鼠标垫 11 4 游艇 12 5 锅 13 是否查找商品?y 14 请输入查找的序号1 15 手机
11、用户交互显示类似省市县N级联动的选择
a.允许用户增加内容
b.允许用户选择查看某一个级别内容
1 #!/usr/bin/env python 2 # -*- coding=utf-8 -*- 3 # Created on: 2016年11月29日 4 # @author: 郑建文 5 # Email: 574601624@qq.com 6 # Version: 1.0 7 8 9 city = {"北京":{"朝阳":["大望路","国贸"], 10 "昌平":["沙河","昌平"]}, 11 "河北":{"张家口":["沙城","宣化"], 12 "石家庄":["某某路","某某街"]} 13 } 14 go = True 15 while go: 16 cc = [] 17 dq = [] 18 print("\33[31;1m一级列表\33[1m".center(40,"=")) 19 for i,v in enumerate(city,1): 20 print(i,v) 21 cc.append(v) 22 print("\33[35;1m插入数据 i 退出按Q\33[1m") 23 u_c1 = str(input(">>>")) 24 if u_c1.isdigit():#进二级之前判断 25 u_c1 = int(u_c1) 26 if u_c1 >0 and u_c1 <=len(cc): 27 while go: 28 print("\33[32;1m二级列表\33[1m".center(40, "=")) 29 for i1,v1 in enumerate(city[cc[u_c1-1]],1): 30 print(i1,v1) 31 dq.append(v1) 32 print("\33[35;1m退出按Q 返回 B\33[1m") 33 u_c2 = input(">>>") 34 if u_c2.isdigit():#进三级之前判断 35 u_c2 = int(u_c2) 36 if u_c2 >0 and u_c2<=len(dq): 37 while go: 38 print("\33[32;1m三级列表\33[1m".center(40, "=")) 39 for s in city[cc[u_c1-1]][dq[u_c2-1]]: 40 print(s) 41 print("\33[35;1m退出按Q 返回 B\33[1m") 42 u_c3 = input(">>>") 43 if u_c3 == "q" or u_c3 == "Q": 44 go = False 45 break 46 if u_c3 == "b" or u_c3 =="B": 47 del dq[:] 48 break 49 else: 50 print("\33[31;1m输入不正确\33[1m") 51 else: 52 print("\33[31;1m输入超出范围!\33[1m") 53 elif u_c2 == "q" or u_c2 == "Q": 54 go = False 55 break 56 elif u_c2 == "b" or u_c2 == "B": 57 del cc[:] 58 del dq[:] 59 break 60 else: 61 print("\33[31;1m输入格式不对!\33[1m") 62 elif u_c1.isalpha(): 63 if u_c1 == "q" or u_c1 == "Q": 64 break 65 elif u_c1 == "i" or u_c1 == "I": 66 print("\33[32;1m添加信息\33[1m".center(40,"=")) 67 ct_name = input("省:") 68 if ct_name == "Q" or ct_name == "q": 69 break 70 else: 71 if city.get(ct_name,0) == 0: 72 city[ct_name] = {} 73 dq_name = input("市:") 74 if dq_name == "Q" or dq_name == "q": 75 break 76 else: 77 if city[ct_name].get(dq_name,0) == 0: 78 city[ct_name][dq_name]=[] 79 while True: 80 print("\33[31;1m循环添加,退出请按Q!\33[1m") 81 s = input("县:") 82 if s == "q" or s == "Q": 83 break 84 else: 85 city[ct_name][dq_name].append(s) 86 else: 87 print("\33[31;1m输入超出范围!\33[1m") 88 else: 89 print("\33[31;1m输入格式不对!\33[1m")
12、列举布尔值是False的所有值
1 None "" () [] {} 0
13︎、有两个列表
l1=[11,22,33]
l2=[22,33,44]
a.获取内容相同的元素列表
1 n1 = [11,22,33] 2 n2 = [22,33,44] 3 for i in n1: 4 if i in n2: 5 print(i)
执行结果:
1 22 2 33
b.获取l1中有,l2中没有的元素列表
1 l1 = [11, 22, 33] 2 l2 = [22, 33, 44] 3 for i in l1: 4 if i not in l2: 5 print(i)
执行结果:
1 44 2 11
c.获取l2中有,l1中没有的元素列表
1 l1 = [11, 22, 33] 2 l2 = [22, 33, 44] 3 for i in l2: 4 if i not in l1: 5 print(i)
执行结果:
1 44
d.获取l1和l2中内容都不同的元素
1 l1 = [11, 22, 33] 2 l2 = [22, 33, 44] 3 for i in l2: 4 if i not in l1: 5 print(i) 6 for v in l1: 7 if v not in l2: 8 print(v)
执行结果:
1 44 2 11
14、利用For循环和range输出
a.For循环从大到小输出1-100
1 for i in range(100,0,-1): 2 print(i)
b.For循环从小到到输出100-1
1 for i in range(1,101): 2 print(i)
c.While循环从大到小输出1-100
1 while True: 2 a = 100 3 for i in range(100): 4 print(a-i) 5 break
d.While循环从小到到输出100-1
1 while True: 2 for i in range(100): 3 print(i+1) 4 break
15、购物车
功能要求:
要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
goods=[
{"name":"电脑","price":1999},
{"name":"鼠标","price":10},
{"name":"游艇","price":20},
{"name":"美女","price":998},
]
代码如下:
方法一:
1 shop_cart = [] 2 goods = [ 3 {"name":"电脑","price":1999}, 4 {"name":"鼠标","price":10}, 5 {"name":"游艇","price":20}, 6 {"name":"美女","price":988}, 7 ] 8 while True: 9 salary = input("请输入用户余额[quit]:") 10 if salary.isdigit(): 11 salary = int(salary) 12 break 13 elif salary == "quit": 14 exit("不想购买") 15 else: 16 print("please the enter number") 17 while True: 18 print("shop list".center(50, '*')) 19 for index,i in enumerate(goods): 20 print(index,i) 21 choose_number = input("请输入购买商品编号[quit]:") 22 if choose_number.isdigit(): 23 choose_number = int(choose_number) 24 product_list = [] 25 if 0 <= choose_number <= len(goods): 26 product_list.append(goods[choose_number]) 27 if salary >= product_list[0]["price"]: 28 shop_cart.append(goods[choose_number]) 29 salary -= product_list[0]['price'] 30 print("当前购买的商品",product_list,"当前用户余额\033[1;31m{salary}\033[0m".format(salary=salary)) 31 else: 32 print("余额不足") 33 else: 34 print("无效的商品编号") 35 elif choose_number.lower() == 'quit': 36 37 print("购买的商品".center(50,"*")) 38 for y in shop_cart: 39 print(y) 40 exit() 41 else: 42 print("无效的输入")
执行结果:
1 请输入用户余额[quit]:2000 2 ********************shop list********************* 3 0 {'name': '电脑', 'price': 1999} 4 1 {'name': '鼠标', 'price': 10} 5 2 {'name': '游艇', 'price': 20} 6 3 {'name': '美女', 'price': 988} 7 请输入购买商品编号[quit]:1 8 当前购买的商品 [{'name': '鼠标', 'price': 10}] 当前用户余额1990 9 ********************shop list********************* 10 0 {'name': '电脑', 'price': 1999} 11 1 {'name': '鼠标', 'price': 10} 12 2 {'name': '游艇', 'price': 20} 13 3 {'name': '美女', 'price': 988} 14 请输入购买商品编号[quit]:2 15 当前购买的商品 [{'name': '游艇', 'price': 20}] 当前用户余额1970 16 ********************shop list********************* 17 0 {'name': '电脑', 'price': 1999} 18 1 {'name': '鼠标', 'price': 10} 19 2 {'name': '游艇', 'price': 20} 20 3 {'name': '美女', 'price': 988} 21 请输入购买商品编号[quit]:3 22 当前购买的商品 [{'name': '美女', 'price': 988}] 当前用户余额982 23 ********************shop list********************* 24 0 {'name': '电脑', 'price': 1999} 25 1 {'name': '鼠标', 'price': 10} 26 2 {'name': '游艇', 'price': 20} 27 3 {'name': '美女', 'price': 988} 28 请输入购买商品编号[quit]:0 29 余额不足 30 ********************shop list********************* 31 0 {'name': '电脑', 'price': 1999} 32 1 {'name': '鼠标', 'price': 10} 33 2 {'name': '游艇', 'price': 20} 34 3 {'name': '美女', 'price': 988} 35 请输入购买商品编号[quit]:quit 36 **********************购买的商品*********************** 37 {'name': '鼠标', 'price': 10} 38 {'name': '游艇', 'price': 20} 39 {'name': '美女', 'price': 988} 40 41 Process finished with exit code 0
方法二:(郑建文版本)
1 #!/usr/bin/env python 2 # -*- coding=utf-8 -*- 3 # Created on: 2016年11月29日 4 # @author: 郑建文 5 # Email: 574601624@qq.com 6 # Version: 1.0 7 ''' 8 要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品, 9 加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 10 11 本程序功能:可以添加购买商品,一起结算,可以查看已结算和没结算的,商品重复的是有数量的 12 ''' 13 goods = [ 14 {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, 15 {"name": "美女", "price": 998}, 16 ] 17 while True: 18 print("\33[31;1m+++++++输入q退出++++++++\33[1m") 19 money = str(input("\33[32;1m请输入初始余额:\33[1m")) 20 if money.isdigit(): 21 money = int(money) 22 go = True 23 break 24 else: 25 if money.lower() == "q": 26 go = False # 用于控制下面程序运行 27 print("再见!") 28 break 29 else: 30 print("输入格式错误") 31 32 buy_car = [] # 购物车 33 while go: 34 #print(buy_car) 35 print("\33[35;1m购物商城\33[1m".center(50, "=")) 36 print("序号|名称|单价") 37 for i, v in enumerate(goods, 1): 38 print(i, v["name"], v["price"]) 39 print("q.退出 o.结算 k.购物车") 40 buy = str(input(">>>")) 41 if buy.isdigit():#购物 42 buy = int(buy) 43 if buy > 0 and buy < len(goods):#是否存在 44 for s in buy_car: 45 if s["name"] == goods[buy-1]["name"] and s['js'] == 0 :#如果存在 46 tem = goods[buy-1] 47 tem["js"] = 0 #结算标示 48 tem["sl"] += 1 #数量 49 print("\33[32;1m添加商品 %s 成功!\33[1m" % (goods[buy - 1]["name"])) 50 buy = 0 51 break 52 if buy:#不存在 53 tem = goods[buy - 1] 54 tem["js"] = 0 # 结算标示 55 tem["sl"] = 1 # 数量 56 buy_car.append(tem) 57 print("\33[32;1m添加商品 %s 成功!\33[1m" % (goods[buy - 1]["name"])) 58 59 else: 60 print("\33[31;1m没有此商品\33[1m") 61 else: 62 if buy.lower() == "q": # 退出 63 break 64 elif buy.lower() == "o": # 结算 65 all_price = 0 66 for i in buy_car:#计算金额 67 if i["js"] == 0: 68 ret = i['price'] * i['sl'] 69 all_price += ret 70 if all_price <= money and all_price >0:#结算 71 for i in buy_car: 72 i['js'] = 1 73 money -= all_price 74 print("结算成功,共消费:%d元,余额为:%d元"%(all_price,money)) 75 elif all_price == 0:#无购物 76 print("\33[31;1m请先购物!\33[1m") 77 else:#金额不足 78 print("\33[31余额不足,请删除一些商品\33[1m") 79 elif buy.lower() == "k": 80 u_js = input("1.结算完毕 2.未结算 \n>>>") 81 if u_js == "1":#已经结算的 82 print("\33[32;1m已结算购物车\33[1m".center(50,"=")) 83 print("序号|名称|数量|单价") 84 for i,v in enumerate(buy_car,1): 85 if v["js"] == 1: 86 print(i,v['name'],v['sl'],v['price']) 87 elif u_js == "2":#没有结算的,可以删除 88 if len(buy_car) > 0: 89 while go: 90 for i, v in enumerate(buy_car,1): 91 if v["js"] == 0: 92 print(i, v["name"], v["price"],v['sl']) 93 u_d = input("\33[31;1m选序号删除,退出q 返回 b\33[1m \n>>>") 94 if u_d.isdigit(): 95 u_d = int(u_d) 96 if u_d > 0 and u_d <= len(buy_car): 97 u_sl = input("请输入数量:") 98 if u_sl.isdigit(): 99 u_sl = int(u_sl) 100 if u_sl < buy_car[u_d]['sl']: 101 buy_car[u_d]['sl'] -= u_sl 102 print("\33[32;1m删除商品成功!\33[1m") 103 elif u_sl == buy_car[u_d]['sl']: 104 del buy_car[u_d-1] 105 print("\33[32;1m删除商品成功!\33[1m") 106 else: 107 print("超出范围或者输入不正确") 108 109 else: 110 if u_d.lower() == "q": 111 go = False 112 print("再见") 113 if u_d.lower() == "b": 114 break 115 else: 116 print("\33[31;1m无商品或还没有结算,请先购买!\33[1m") 117 else: 118 print("\33[31;1m输入格式不对!\33[1m")
16、分页显示内容
a.通过for循环创建301条数据,数据类型不限,如:
alex-‐1alex1@live.compwd1
alex-‐2alex2@live.compwd2
alex-‐3alex3@live.compwd3
...
法一:
1 for i in range(301): 2 a = "alex- - %salex%s@live.com pwd%s"%(i+1,i+1,i+1) 3 print(a)
法二:
1 u = [] 2 for i in range(301): 3 a = "alex{0} alex{0}@live.com pwd{0}".format(i+1) 4 x = [a] 5 u = u + x 6 print(u[0:10])
b.提示用户请输入要查看的页码,当用户输入指定页码,则显示指定数据
注意:
-‐每页显示10条数据
-‐用户输入页码是非十进制数字,则提示输入内容格式错误
1 while True: 2 u = [] 3 for i in range(301): 4 a = "alex{0} alex{0}@live.com pwd{0}".format(i+1) 5 x = [a] 6 u = u + x 7 # print(u[0:10]) 8 s = input("请输入您想查看的页码:") 9 v3 = s.isnumeric() #检测字符串是否只由数字组成,如果字符串中只包含数字字符,则返回 True,否则返回 False 10 if v3 == False : 11 print("输入内容格式错误") 12 13 elif int(s) < 1 or int(s) > 31: 14 print("输入页码错误") 15 16 else: 17 s = int(s) 18 a = (s-1)*10 19 b = s*10 20 j = (u[a:b]) 21 for g in j: 22 print(g) 23 A =input("是否继续查看(y or Y)") 24 if A =="y" or A =="Y": 25 continue 26 else: 27 break
执行结果:
1 请输入您想查看的页码:1 2 alex1 alex1@live.com pwd1 3 alex2 alex2@live.com pwd2 4 alex3 alex3@live.com pwd3 5 alex4 alex4@live.com pwd4 6 alex5 alex5@live.com pwd5 7 alex6 alex6@live.com pwd6 8 alex7 alex7@live.com pwd7 9 alex8 alex8@live.com pwd8 10 alex9 alex9@live.com pwd9 11 alex10 alex10@live.com pwd10 12 是否继续查看(y or Y)y 13 请输入您想查看的页码:2 14 alex11 alex11@live.com pwd11 15 alex12 alex12@live.com pwd12 16 alex13 alex13@live.com pwd13 17 alex14 alex14@live.com pwd14 18 alex15 alex15@live.com pwd15 19 alex16 alex16@live.com pwd16 20 alex17 alex17@live.com pwd17 21 alex18 alex18@live.com pwd18 22 alex19 alex19@live.com pwd19 23 alex20 alex20@live.com pwd20 24 是否继续查看(y or Y)
17、有1、2、3、4、5、6、7、8、8个数字,能组成多少个互不相同且无重复数字的两位数?
法一:
1 count = 0 2 for i in range(1, 9): 3 for x in range(1, 9): 4 if i != x: 5 print(i, x,) 6 count += 1 7 print(count)
执行结果:
1 1 2 2 1 3 3 1 4 4 1 5 5 1 6 6 1 7 7 1 8 8 2 1 9 2 3 10 2 4 11 2 5 12 2 6 13 2 7 14 2 8 15 3 1 16 3 2 17 3 4 18 3 5 19 3 6 20 3 7 21 3 8 22 4 1 23 4 2 24 4 3 25 4 5 26 4 6 27 4 7 28 4 8 29 5 1 30 5 2 31 5 3 32 5 4 33 5 6 34 5 7 35 5 8 36 6 1 37 6 2 38 6 3 39 6 4 40 6 5 41 6 7 42 6 8 43 7 1 44 7 2 45 7 3 46 7 4 47 7 5 48 7 6 49 7 8 50 8 1 51 8 2 52 8 3 53 8 4 54 8 5 55 8 6 56 8 7 57 56