day7
考试代码题
# # 11. 分别使用while循环,和for循环打印1-2+3-4+5.......+99的结果。(10分) # # # # 答: # # while循环: # count = 1 # sum = 0 # while count < 100: # if count % 2 == 1: # sum += count # else: # sum -= count # count += 1 # print(sum) # # # # for循环: # sum = 0 # for i in range(1,100): # if i % 2 == 1: # sum += i # else: # sum -= i # print(sum) # # # # # # # 12. 使用range打印100,99,98,....1,0(2分) # for i in range(100,-1,-1): # if i == 0: # print(i) # else: # print(i,end=',') # print各种传参 # # # # # # 13. 计算用户输入内容中索引为奇数并且对应的元素为数字的个数(没有则个数为零)(6分) # inp_content = input('>> :') # count = 0 # for i in range(0,len(inp_content),2): # if inp_content[i].isdigit(): # count +=1 # print(count) # # # # # # # # # 14. 补充代码(从已有的代码下面继续写):(6分) # # # # 有如下值li= [11,22,33,44,55,77,88,99,90],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。 # li = [11,22,33,44,55,77,88,99,90] # result = {} # for row in li: # if row > 66: # if 'k1' not in result.keys(): # result['k1'] = [row] # else: # result['k1'].append(row) # if row < 66: # if 'k2' not in result.keys(): # result['k2'] = [row] # else: # result['k2'].append(row) # print(result) # # 15. 查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。(3分) # li = ['taibai ', 'alexC', 'AbC ', 'egon', ' Ritian', ' Wusir', ' aqc'] # l1 = [] # for i in li: # i = i.strip() # if i.upper().startswith('A') and i.endswith('c'): # l1.append(i) # print(l1) # # 16. 实现一个整数加法计算器:(3分) # # # # 如:content = input(‘请输入内容:’) # 如用户输入:5+8+7....(最少输入两个数相加),然后进行分割再进行计算,将最后的计算结果添加到此字典中(替换None): # # # # dic={‘最终计算结果’:None}。 # sum = 0 # while 1 : # content = input('请输入加法公式') # formula = content.replace(' ','').replace('+','') # print(content) # if not formula.isdigit(): # print('输入语法错误,请输入纯加法公式 例:2+3+4') # else: # add_formula = content.replace(' ','').split('+') # break # for i in add_formula: # sum += int(i) # print(sum) # 17. 按要求完成下列转化(如果按照索引去做,只能得4分)。(6分) # 如何把上面的列表转换成下方的列表? # list4 = [ # {"name": "alex", "hobby_list": ["抽烟", "喝酒", "烫头", "Massage"]}, # {"name": "wusir", "hobby_list": ["喊麦", "街舞"]}, # ] # # list3 = [ # {"name": "alex", "hobby": "抽烟"}, # {"name": "alex", "hobby": "喝酒"}, # {"name": "alex", "hobby": "烫头"}, # {"name": "alex", "hobby": "Massage"}, # {"name": "wusir", "hobby": "喊麦"}, # {"name": "wusir", "hobby": "街舞"}, # ] # a = 0 # name = [] # hobby = {} # list4 = {} # for i in range(len(list3)): # if list3[i]['name'] not in name: # name.append(list3[i]['name']) # hobby[list3[i]['name']] =[] # hobby[list3[i]['name']].append(list3[i]['hobby']) # else : # name.append(list3[i]['name']) # hobby[list3[i]['name']].append(list3[i]['hobby']) # print(name) # print(hobby) # for i in name: # list4[i] = hobby[i] # print(list4) # # # # # # # 18. 写程序:模拟公司HR录入员工账号密码的程序。(10分) # # # # (1) 员工的账号密码存储在这种数据类型中: # # user_list = [ # # {'username':'barry','password':'1234'}, # # {'username':'alex','password':'asdf'}, # ] # # (2) 非法字符模板:board = ['张三','李小四','王二麻子'] # # (3) HR输入用户名,密码(可持续输入,如果想终止程序,那就在输入用户名时输入Q或者q退出程序),在Hr输入用户名时,检测此用户名是否有board里面的非法字符,如果有非法字符,则将非法字符替换成同数量的*(如王二麻子替换成****),然后添加到user_list中,如果没有非法字符,则直接添加到user_list中,每次添加成功后,打印出刚添加的用户名,密码。 # user_list = [] # while 1 : # temp_iofo = {} # user_name = input('place input your user name') # if user_name.lower() == 'q': # break # user_password = input('place input your password') # board = ['张三','李小四','王二麻子'] # for i in board: # teg = "*"*len(i) # user_name = user_name.replace(i,teg) # temp_iofo['user_name'] = user_name # temp_iofo['password'] = user_password # user_list.append(temp_iofo) # print('''用户名:{} # 密码:{}'''.format(user_name,user_password)) # print(user_list) # Ps: # # 周末作业。 # # 写一个购物车,写完了的写三级菜单。 # 购物车 # # 功能要求: # # 要求用户输入总资产,例如:2000 # # 显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 # # goods = [{"name": "电脑", "price": 1999}, # # {"name": "鼠标", "price": 10}, # # {"name": "游艇", "price": 20}, # # {"name": "美女", "price": 998}, # # # # # # 升级作业: # # 程序: 三级菜单 # # 要求: # # 打印省、市、县三级菜单 # 可返回上一级 # 可随时退出程序 #
复习
# # 循环结构 # # while # # 语法 # 1 # while 条件 : # 代码块 # 2 # while 条件: # 代码块 # break # 3 # while 条件: # 代码块 # continue # 4 # while 条件: # 代码块 # while 条件: # 代码块 # 5 # tag = True # while tag: # while tag: # 代码块 # while tag: # 代码块 # 一次退出全部循环 # tag = False # break # break # ps 注意 : break 后面不能写代码 容易丢失 # # 字符串精讲 s = '不要让懒惰占据你的大脑,不让要妥协拖跨你的人生。青春就是一张票,能不能赶上时代的快车,你的步伐掌握在你的脚下,good luck' s1 = "Don't let laziness take over your mind and compromise drag you down." # 1 索引切片 print(s[10]) print(s[::-1]) print(s[0::2]) # 2 upper() lower() print(s1.lower()) print(s1.upper()) # 3 tltle() capitalize() swapcase() print(s1.title()) print(s1.capitalize()) print(s1.swapcase()) # 4 replace()可以传入三个参数 old new count print(s.replace(',', '\\', 1)) # 5 split() rsplit() 切割 传入两个参数 print(s.split(',', 2)) # 6 join 连接 可以串联可迭代类型 print('*'.join(s)) # 7 starswith() endswith() print(s1.startswith('D')) print(s.endswith('luck')) # 8 format() 格式化 print('{}\n{}'.format(s, s1)) # 9 len() 计算长度3 print((len(s))) # 10 isdigit() 判断是否是纯数字 isalpha 判断字母 isalnum 判断字母加数字 print('123456'.isdigit()) # ''.isalpha # ''.isalnum # 11 strip() 删除两端特定字符 s2 = s1.strip('.') print(s2) '''ps strip 特别用法 (不会按照顺序来 ,只要字符串中有就会删除前后同时删除) ''' print(s1.strip('D\'tdo.nw')) # 12 for i in *: # for i in s : # print(i) # 13 count 计数 统计特定字符出现的次数 print(s.count('不')) # 14 center() 用原来字符串的值居中以特定字符串补充形成新的固定长度的字符串 默认以空格补充 传入参数 先传入长度 再传特定字符 print('i love you !'.center(120, '*')) # 15 find() 查找返回索引 找不到返回-1 # index() 查找返回索引 找不到报错 # 16 expand() st = "this is\tstring example....wow!!!" print("Original string: " + st) print("Defualt exapanded tab: " + st.expandtabs()) print("Double exapanded tab: " + st.expandtabs(16)) # Original string: this is string example....wow!!! # Defualt exapanded tab: this is string example....wow!!! # Double exapanded tab: this is string example....wow!!!
购物车
# Ps: # # 周末作业。 # # 写一个购物车,写完了的写三级菜单。 # 购物车 # # 功能要求: # # 要求用户输入总资产,例如:2000 # # 显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 # goods = [{"name": "电脑", "price": 1999}, # # {"name": "鼠标", "price": 10}, # # {"name": "游艇", "price": 20}, # # {"name": "美女", "price": 998}, # # ] # money = int(input('请输入总资产')) # tag = True # while tag: # for i in range(0, len(goods)): # print(i, goods[i]['name'], goods[i]['price']) # ser_goods = input('请输入你要购买的商品的编号') # if ser_goods.strip() == 'quit': # break # elif money>= goods[int(ser_goods)]['price']: # money -= goods[int(ser_goods)]['price'] # print('购买成功') # elif money < goods[int(ser_goods)]['price']: # print('余额不足') # cmd = input(''' # 请重新选择输入命令: # "quit" 退出程序 # "continue" 重新选购 # "top-uo" 充值''') # if cmd.strip() == 'quit': # break # elif cmd.strip() == 'continue': # continue # elif cmd == 'top-up': # num = int(input('请输入充值金额')) # money += num # print('充值{}'.format(num)) # select = input(''' # 请选择是否继续购买{}{} # 1 继续购买 # 0 重新选择商品'''.format(goods[int(ser_goods)]['name'],goods[int(ser_goods)]['price'])) # if select =='1': #最终版 goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] money = int(input('请输入总资产')) tag = True while tag: for i in range(0, len(goods)): print(i, goods[i]['name'], goods[i]['price']) ser_goods = input('请输入你要购买的商品的编号(输入quit退出)') if ser_goods.strip() == 'quit': break elif int(ser_goods) > len(goods): print('您选择的商品不存在') continue elif money >= goods[int(ser_goods)]['price']: money -= goods[int(ser_goods)]['price'] print('购买成功') while money < goods[int(ser_goods)]['price']: print('余额不足') cmd = input(''' 请输入命令: "continue" 重新选购 "top-uo" 充值 "quit" 退出程序 ''') if cmd.strip() == 'continue': break elif cmd == 'top-up': num = int(input('请输入充值金额')) money += num print('充值{}'.format(num)) select = input(''' 请选择是否继续购买{}{} 1 继续购买 0 重新选择商品 :'''.format(goods[int(ser_goods)]['name'],goods[int(ser_goods)]['price'])) if select =='1': continue if select == '0': break elif cmd.strip() == 'quit': tag = False break
三级菜单
# Ps: # # 周末作业。 # # 写一个购物车,写完了的写三级菜单。 # 购物车 # # 功能要求: # # 要求用户输入总资产,例如:2000 # # 显示商品列表,让用户根据序号选择商品,加入购物车购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。 # goods = [{"name": "电脑", "price": 1999}, # # {"name": "鼠标", "price": 10}, # # {"name": "游艇", "price": 20}, # # {"name": "美女", "price": 998}, # # ] # money = int(input('请输入总资产')) # tag = True # while tag: # for i in range(0, len(goods)): # print(i, goods[i]['name'], goods[i]['price']) # ser_goods = input('请输入你要购买的商品的编号') # if ser_goods.strip() == 'quit': # break # elif money>= goods[int(ser_goods)]['price']: # money -= goods[int(ser_goods)]['price'] # print('购买成功') # elif money < goods[int(ser_goods)]['price']: # print('余额不足') # cmd = input(''' # 请重新选择输入命令: # "quit" 退出程序 # "continue" 重新选购 # "top-uo" 充值''') # if cmd.strip() == 'quit': # break # elif cmd.strip() == 'continue': # continue # elif cmd == 'top-up': # num = int(input('请输入充值金额')) # money += num # print('充值{}'.format(num)) # select = input(''' # 请选择是否继续购买{}{} # 1 继续购买 # 0 重新选择商品'''.format(goods[int(ser_goods)]['name'],goods[int(ser_goods)]['price'])) # if select =='1': #最终版 goods = [{"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] money = int(input('请输入总资产')) tag = True while tag: for i in range(0, len(goods)): print(i, goods[i]['name'], goods[i]['price']) ser_goods = input('请输入你要购买的商品的编号(输入quit退出)') if ser_goods.strip() == 'quit': break elif int(ser_goods) > len(goods): print('您选择的商品不存在') continue elif money >= goods[int(ser_goods)]['price']: money -= goods[int(ser_goods)]['price'] print('购买成功') while money < goods[int(ser_goods)]['price']: print('余额不足') cmd = input(''' 请输入命令: "continue" 重新选购 "top-uo" 充值 "quit" 退出程序 ''') if cmd.strip() == 'continue': break elif cmd == 'top-up': num = int(input('请输入充值金额')) money += num print('充值{}'.format(num)) select = input(''' 请选择是否继续购买{}{} 1 继续购买 0 重新选择商品 :'''.format(goods[int(ser_goods)]['name'],goods[int(ser_goods)]['price'])) if select =='1': continue if select == '0': break elif cmd.strip() == 'quit': tag = False break
list
# # 列表 # # 是什么 # # 存放多种状态的数据类型 存放: 多个值 任意类型 # # 为什么: # # 可以存放多个值 并且按照索引取出》 # # 怎么用 # list() # # 将可迭代类型,迭代转化为列表 # print(list('adafadada')) # li = "Don't let laziness take over your mind and compromise drag you down".split(' ') # li = ["Don't", 'let', 'laziness', 'take', 'over', 'your', 'mind', 'and', 'compromise', 'drag', 'you', 'over', 'over', # 'down'] # # print(li) # # 语法(必须掌握) # var = 1 # # 索引 切片 同字符串 # print(li[-1]) # # 添加 append() insert() # li.append('.') # """注意li.append()没有返回值 不会返回一个新的列表而是直接操作之前的列表.所以不能赋值给其他变量""" # print(li.append(0)) # 错误 # print(li) # # None # # ["Don't", 'let', 'laziness', 'take', 'over', 'your', 'mind', 'and', 'compromise', 'drag', 'you', 'down', '.'] # # # insert() 按照索引添加 必须传入两个参数 # li.insert(0, 'i love you ') # print(li) # # # 删除 del list[0] 按照索引删除 .remove() 按照内容删除 .pop() 按照内容删除有返回值 默认删除最后一个 # del li[0] # print(li) # li.remove('let') # print(li) # item = li.pop() # print(item) # # 查找 inde() 返回索引 # con = li.index('over', 3) # print(con, type(con)) # # # 长度 len() # print(len(li)) # # in not in 身份运算 # print("Don't" in li) # # 循环 for item in li: # # ps : for in : 循环中也可以跟break跳出 continue 跳过 else : (跟while一样) # # for item in li: # print(item) # li = "Don't let laziness take over your mind and compromise drag you down".split(' ') # li = ["Don't", 'let', 'laziness', 'take', 'over', 'your', 'mind', 'and', 'compromise', 'drag', 'you', 'over', # 'over', 'down'] # # clear 清空列表: # # copy 复制列表 # l1 = li.copy() # li.clear() # print(li) # print(l1) # # # count 统计 # num = [1, 2, 1, 3, 1, 4, 1, 5, 1, ].count(1) # print(l1.count(1)) # print(num) # print([1, 2, 1, 3, 1, 4, 1, 5, 1, ].count(1)) # # expend 迭代添加 # l2 = [] # l2.extend("Don't let laziness take over your mind and compromise drag you down") # print(l2) # # sort 排序 # l2.sort() # print(l2) # l2.sort(reverse=True) # print(l2) # # reverse 反序 # l1.reverse() # print(l1) # # # 1. 有列表data=['alex',49,[1900,3,18]],分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量 # # # # 2. 用列表模拟队列 # # # # 3. 用列表模拟堆栈 # # # # 4. 有如下列表,请按照年龄排序(涉及到匿名函数) # l = [ # {'name': 'alex', 'age': 84}, # {'name': 'oldboy', 'age': 73}, # {'name': 'egon', 'age': 18}, # ] # data=['alex',49,[1900,3,18]] # name = data[0] # age = data[1] # born = data[2] """队列""" # li =[] # li.append(1) # print(li) # li.append(2) # print(li) # li.append(3) # print(li) # li.append(4) # print(li) # item = li.pop(0) # print(li) # print(item) # item = li.pop(0) # print(li) # print(item) # item = li.pop(0) # print(li) # print(item) # item = li.pop(0) # print(li) # print(item) """栈""" # li =[] # li.append(1) # print(li) # li.append(2) # print(li) # li.append(3) # print(li) # li.append(4) # print(li) # item = li.pop() # print(li) # print(item) # item = li.pop() # print(li) # print(item) # item = li.pop() # print(li) # print(item) # item = li.pop() # print(li) # print(item) # 简单购物车,要求如下: # 实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入则要求用户重新输入 msg_dic = { 'apple': 10, 'tesla': 100000, 'mac': 3000, 'lenovo': 30000, 'chicken': 10, } good_list = [] while 1: for item,value in msg_dic.items(): print(item,value) good = input('请输入你想要购买的商品名称') if good == 'q': break elif good == 'l': print(good_list) elif good not in msg_dic.keys(): print('输入错误') continue else: num = int(input('请输入你想要的购买的数量')) good_list.append({'name':good,'price':value,'number':num})