task1.py
import random print('用列表存储随机整数: ') lst = [random.randint(0, 100) for i in range(5)] print(lst) print('\n用集合存储随机整数: ') s1 = {random.randint(0, 100) for i in range(5)} print(s1) print('\n用集合存储随机整数: ') s2 = set() while len(s2) < 5: s2.add(random.randint(0, 100)) print(s2)
问题1: random.randint(0,100) 生成的随机整数范围是0到100(包括0和100)。
问题2: 利用 list(range(5)) 生成的有序序列范围是0到4(包括0,但不包括5)。
利用list(range(1,5))生成的有序序列范围是1到4(包括1,但不包括5)。
问题3: 使用line8代码生成的集合s1,len(s1)不一定是5。由于集合的特性,集合中的元素不允许重复,因此在生成集合时,如果生成的随机数中有重复的,则实际上只会有少于5个元素的集合。
问题4: 使用line12-14生成的集合s2,len(s2)不一定是5。由于集合的特性,集合中的元素不允许重复,因此在生成集合时,如果生成的随机数中有重复的,则实际上只会有少于5个元素的集合。由于集合的无序性,也不能保证生成的集合中的元素顺序是按照生成顺序排列的。
task2_1.py
# 列表遍历 lst = [55, 92, 88, 79, 96] # 遍历方式1: 使用while + 索引 i = 0 while i < len(lst): print(lst[i], end = ' ') i += 1 print() # 遍历方式2:使用for + 索引 for i in range(len(lst)): print(lst[i], end = ' ') print() # 遍历方式3: 使用for...in for i in lst: print(i , end = ' ') print()
task2_2.py
# 字典遍历 book_info = {'isbn': '978-7-5356-8297-0', '书名': '白鲸记', '作者': '克里斯多夫.夏布特', '译者': '高文婧', '出版社': '湖南美术出版社', '售价': 82 } # 遍历key-value对:实现方式1 for key, value in book_info.items(): print(f'{key}: {value}') print() # 遍历key-value对:实现方式2 for item in book_info.items(): print(f'{item[0]}: {item[1]}') print() # 遍历值:实现方式1 for value in book_info.values(): print(value, end = ' ') print() # 遍历值: 实现方式2 for key in book_info.keys(): print(book_info[key], end = ' ')
task2_3.py
book_infos = [{'书名': '昨日的世界', '作者': '斯蒂芬.茨威格'}, {'书名': '局外人', '作者': '阿尔贝.加缪'}, {'书名': '设计中的设计', '作者': '原研哉'}, {'书名': '万历十五年', '作者': '黄仁宇'}, {'书名': '刀锋', '作者': '毛姆'} ] for i, book_info in enumerate(book_infos): title = book_info['书名'] author = book_info['作者'] print(f"{i+1}.《{title}》,{author}")
task3.py
text = """The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated.""" text = text.lower() # 转换为小写字母形式 freq_dict = {} # 创建一个空字典来存储字母出现的频率 for char in text: if char.isalpha(): if char in freq_dict: freq_dict[char] += 1 else: freq_dict[char] = 1 # 使用sorted()函数和lambda表达式将freq_dict按照值进行排序,从而实现降序输出 for char, freq in sorted(freq_dict.items(), key=lambda x: x[1], reverse=True): print(f"{char}: {freq}")
task4.py
# 创建字典code_majors code_majors = { '8326': '地信类', '8329': '计算机类', '8330': '气科类', '8336': '防灾工程', '8345': '海洋科学', '8382': '气象工程' } # 打印专业代号信息标题行 print('{:-^50}'.format('专业代号信息')) # 遍历字典code_majors输出专业代号和专业名称 for code, major in code_majors.items(): print('{:<10}:{:>10}'.format(code, major)) # 打印学生专业查询标题行 print('{:-^50}'.format('学生专业查询')) while True: # 从键盘输入学生学号 stu_id = input('请输入学号:') # 判断输入是否为#,如果是则结束循环 if stu_id == '#': print('查询结束...') break # 获取专业代码 code = stu_id[4:8] # 判断专业代码是否在字典中 if code in code_majors: major = code_majors[code] print('专业是:{}'.format(major)) else: print('不在这些专业中...')
task5.py
import random lucky_day = random.randint(1, 31) print("猜猜2023年5月哪一天会是你的lucky day😉") print("你有三次机会,猜吧(1~31):") for i in range(3): guess = int(input()) if guess == lucky_day: print("哇,猜中了🤣") break elif guess > 31 or guess < 1: print("地球上没有这一天啦,你是外星人吗" " 再猜(1~31):") elif guess > lucky_day: print("猜晚啦,你的lucky day已经过去了" " 再猜(1~31):") else: print("猜早啦,你的lucky day还没到呢" " 再猜(1~31):") if guess != lucky_day: print("哇哦,次数用光啦.") print(f"偷偷告诉你,5月你的lucky day是{lucky_day}号. Good luck😊")
task6.py
datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'], '2049777002': ['音乐', '旅行'], '2049777003': ['马拉松', '健身', '游戏'], '2049777004': [], '2049777005': ['足球', '阅读'], '2049777006': ['发呆', '闲逛'], '2049777007': [], '2049777008': ['书法', '电影'], '2049777009': ['音乐', '阅读', '电影', '漫画'], '2049777010': ['数学', '推理', '音乐', '旅行']} # 清洗数据,去掉空列表 datas = {k: v for k, v in datas.items() if v} # 统计所有兴趣爱好的出现次数 interest_counts = {} for interests in datas.values(): for interest in interests: interest_counts[interest] = interest_counts.get(interest, 0) + 1 # 按照出现次数由高到低排列 sorted_interest_counts = sorted(interest_counts.items(), key=lambda x: x[1], reverse=True) # 打印结果 for interest, count in sorted_interest_counts: print(interest + ':', count)
task7_1.py
""" 家用电器销售系统 v1.3 """ # 欢迎信息 print('欢迎使用家用电器销售系统!') # 商品数据初始化 products=[ ['0001', '电视机', '海尔', 5999.00, 20], ['0002', '冰箱', '西门子', 6998.00, 15], ['0003', '洗衣机', '小天鹅', 1999.00, 10], ['0004', '空调', '格力', 3900.00, 0], ['0005', '热水器', '格力', 688.00, 30], ['0006', '笔记本', '联想', 5699.00, 10], ['0007', '微波炉', '苏泊尔', 480.00, 33], ['0008', '投影仪', '松下', 1250.00, 12], ['0009', '吸尘器', '飞利浦', 999.00, 9], ] # 初始化用户购物车 products_cart=[] option=input('请选择您的操作:1-查看商品;2-购物;3-查看购物车;其他-结账') while option in['1', '2', '3']: if option=='1': # 产品信息列表 print('产品和价格信息如下:') print('***************************************') print('%-10s' %'编号', '%-10s' %'名称', '%-10s' %'品牌', '%-10s' %'价格', '%-10s' %'库存数量') print('---------------------------------------') for i in range(len(products)): print('%-10s' %products[i][0], '%-10s' %products[i][1], '%-10s' %products[i][2], '%10.2f' %products[i][3], '%10d' %products[i][4]) print('---------------------------------------') elif option=='2': product_id=input('请输入您要购买的产品编号:') while product_id not in [item[0] for item in products]: product_id-input('编号不存在,请重新输入您要购买的产品编号:') count=int(input('请输入您要购买的产品数量:')) while count>products[int(product_id)-1][4]: count=int(input('数量超出库存,请重新输入您要购买的产品数量:')) # 将所购买商品加入购物车 if product_id not in [item[0] for item in products_cart]: products_cart.append([product_id, count]) else: for i in range(len(products_cart)): if products_cart[i][0]==product_id: products_cart[i][1]+=count # 更新商品列表 for i in range(len(products)): if products[i][0]==product_id: products[i][4]-=count else: print('购物车信息如下:') print('**********************************') print('%-10s' %'编号', '%-10s' %'购买数量') print('---------------------------------') for i in range(len(products_cart)): print('%-10s' %products_cart[i][0], '%6d' %products_cart[i][1]) print('---------------------------------') option=input('操作成功!请选择您的操作:1-查看商品;2-购物;3-查看购物车;其他-结账') # 计算金额 if len(products_cart)>0: amount=0 for i in range(len(products_cart)): product_index=0 for j in range(len(products)): if products[j][0]==products_cart[i][0]: product_index=j break price=products[product_index][3] count=products_cart[i][1] amount+=price*count if 5000<amount <=10000: amount=amount*0.95 elif 10000<amount <=20000: amount=amount*0.90 elif amount>20000: amount=amount*0.85 else: amount=amount*1 print('购买成功,您需要支付%8.2f元' %amount) # 退出系统 print('谢谢您的光临,下次再见!')
task7_2.py
# 商品数据初始化 products = [ ['0001', '电视机', '海尔', 5999.00, 20], ['0002', '冰箱', '西门子', 6998.00, 15], ['0003', '洗衣机', '小天鹅', 1999.00, 10], ['0004', '空调', '格力', 3900.00, 0], ['0005', '热水器', '格力', 688.00, 30], ['0006', '笔记本', '联想', 5699.00, 10], ['0007', '微波炉', '苏泊尔', 480.00, 33], ['0008', '投影仪', '松下', 1250.00, 12], ['0009', '吸尘器', '飞利浦', 999.00, 9], ] # 初始化用户购物车 products_cart = [] # 输出欢迎信息 print('欢迎使用家用电器销售系统!\n') option = input('请选择您的操作:1-查看商品;2-购物;3-查看购物车;其他-结账\n') while option in ['1', '2', '3']: if option == '1': # 产品信息列表 print('产品和价格信息如下:') print('***************************************') print('{:<10}{:<10}{:<10}{:<10}{:<10}'.format('编号', '名称', '品牌', '价格', '库存数量')) print('---------------------------------------') for product in products: print('{:<10}{:<10}{:<10}{:>10.2f}{:>10d}'.format(*product)) print('---------------------------------------') elif option == '2': product_id = input('请输入您要购买的产品编号:') while product_id not in [item[0] for item in products]: product_id = input('编号不存在,请重新输入您要购买的产品编号:') count = int(input('请输入您要购买的产品数量:')) while count > products[int(product_id)-1][4]: count = int(input('数量超出库存,请重新输入您要购买的产品数量:')) # 将所购买商品加入购物车 if product_id not in [item[0] for item in products_cart]: products_cart.append([product_id, count]) else: for i in range(len(products_cart)): if products_cart[i][0] == product_id: products_cart[i][1] += count # 更新商品列表 for i in range(len(products)): if products[i][0] == product_id: products[i][4] -= count else: print('购物车信息如下:') print('**********************************') print('{:<10}{:<10}'.format('编号', '购买数量')) print('---------------------------------') for cart in products_cart: print('{:<10}{:>6d}'.format(*cart)) print('---------------------------------') option = input('操作成功!请选择您的操作:1-查看商品;2-购物;3-查看购物车;其他-结账\n') if len(products_cart)>0: amount=0 for i in range(len(products_cart)): product_index=0 for j in range(len(products)): if products[j][0]==products_cart[i][0]: product_index=j break price=products[product_index][3] count=products_cart[i][1] amount+=price*count if 5000<amount <=10000: amount=amount*0.95 elif 10000<amount <=20000: amount=amount*0.90 elif amount>20000: amount=amount*0.85 else: amount=amount*1 print('购买成功,您需要支付%8.2f元' %amount) print('谢谢您的光临,下次再见!')
task8_1.py
""" 家用电器销售系统 v1.4 """ # 欢迎信息 print('欢迎使用家用电器销售系统!') # 商品数据初始化 products=[ {'id': '0001', 'name': '电视机', 'brand': '海尔', 'price': 5999.00, 'count': 20}, {'id': '0002', 'name': '冰箱', 'brand': '西门子', 'price': 6998.00, 'count': 15}, {'id': '0003', 'name': '洗衣机', 'brand': '小天鹅', 'price': 1999.00, 'count': 10}, {'id': '0004', 'name': '空调', 'brand': '格力', 'price': 3900.00, 'count': 0}, {'id': '0005', 'name': '热水器', 'brand': '格力', 'price': 688.00, 'count': 30}, {'id': '0006', 'name': '笔记本', 'brand': '联想', 'price': 5699.00, 'count': 10}, {'id': '0007', 'name': '微波炉', 'brand': '苏泊尔', 'price': 480.00, 'count': 33}, {'id': '0008', 'name': '投影仪', 'brand': '松下', 'price': 1250.00, 'count': 12}, {'id': '0009', 'name': '吸尘器', 'brand': '飞利浦', 'price': 999.00, 'count': 9}, ] # 初始化用户购物车 products_cart=[] option=input('请选择您的操作:1-查看商品;2-购物;3-查看购物车;其他-结账') while option in ['1', '2', '3',]: if option=='1': # 产品信息列表 print('产品和价格信息如下:') print('***********************************************') print('%-10s' %'编号', '%-10s' %'名称', '%-10s' %'品牌', '%-10s' %'价格', '%-10s' %'库存数量') print('-----------------------------------------------') for i in range(len(products)): print('%-10s' %products[i]['id'], '%-10s' %products[i]['name'], '%-10s' %products[i]['brand'], '%10.2f' %products[i]['price'], '%10d' %products[i]['count']) print('-----------------------------------------------') elif option=='2': product_id=input('请输入您要购买的产品编号:') while product_id not in [item['id']for item in products]: product_id=input('编号不存在,请重新输入您要购买的产品编号:') count=int(input('请输入您要购买的产品数量:')) while count>products[int(product_id)-1]['count']: count=int(input('数量超过库存,请重新输入您要购买的产品数量:')) # 将所有购买商品加入购物车 if product_id not in [item['id'] for item in products_cart]: products_cart.append({'id':product_id, 'count': count}) else: for i in range(len(products_cart)): if products_cart[i].get('id')==product_id: products_cart[i]['count']+=count # 更新商品列表 for i in range(len(products)): if products[i]['id']==product_id: products[i]['count']-=count else: print('购物车信息如下:') print('***************************************') print('%-10s' %'编号', '%-10s' %'购买数量') print('-------------------------------------') for i in range(len(products_cart)): print('%-10s' %products_cart[i]['id'], '%6d' %products_cart[i]['count']) print('-------------------------------------') option=input('操作成功!请选择您的操作:1-查看商品;2-购物;3-查看购物车;其他-结账') # 计算金额 if len(products_cart)>0: amount=0 for i in range(len(products_cart)): product_index=0 for j in range(len(products)): if products[j]['id']==products_cart[i]['id']: product_index=j break price=products[product_index]['price'] count=products_cart[i]['count'] amount+=price*count if 5000<amount<=10000: amount=amount*0.95 elif 10000<amount<=20000: amount=amount*0.90 elif amount>20000: amount=amount*0.85 else: amount=amount*1 print('购买成功,您需要支付%8.2f元' %amount) #退出系统 print('谢谢您的光临,下次再见!')
task8_2.py
#欢迎信息 print('欢迎使用家用电器销售系统!') #商品数据初始化 products=[ {'id':'0001','name':'电视机','brand':'海尔','price':5999.00,'count':20}, {'id':'0002','name':'冰箱','brand':'西门子','price':6998.00,'count':15}, {'id':'0003','name':'洗衣机','brand':'小天鹅','price':1999.00,'count':10}, {'id':'0004','name':'空调','brand':'格力','price':3900.00,'count':0}, {'id':'0005','name':'热水器','brand':'格力','price':688.00,'count':30}, {'id':'0006','name':'笔记本','brand':'联想','price':5699.00,'count':10}, {'id':'0007','name':'微波炉','brand':'苏泊尔','price':480.00,'count':33}, {'id':'0008','name':'投影仪','brand':'松下','price':1250.00,'count':12}, {'id':'0009','name':'吸尘器','brand':'飞利浦','price':999.00,'count':9}, ] #初始化用户购物车 products_cart = [] option = input('请选择您的操作:1-查看商品;2-购物;3—查看购物车;其他-结账') while option in['1','2','3']: if option == '1': #产品信息列表 print('产品和价格信息如下:') print('************************************************') print(print('{:<10}'.format('编号'),'{:<10}'.format('名称'),'{:<10}'.format('品牌'),'{:<10}'.format('价格'),'{:<10}'.format('库存数量'))) print('-------------------------------------------------') for i in range(len(products)): print('{:<10}'.format(products[i]['id']),'{:<10}'.format(products[i]['name']),'{:<10}'.format (products[i]['brand']), '{:<10}'.format(products[i]['price']), '{:<10}'.format(products[i]['count'])) print('-------------------------------------------------') elif option == '2': product_id = input('请输入您要购买的产品编号:') while product_id not in [item['id'] for item in products]: product_id = input('编号不存在,请重新输入您要购买的产品编号:') count = int(input('请输入您要购买的产品数量:')) while count>products[int(product_id)-1]['count']: count=int(input('数量超出库存,请重新输入您要购买的产品数量:')) #将所购买的商品加入购物车 if product_id not in [item['id'] for item in products_cart]: products_cart.append({'id':product_id,'count':count}) else: for i in range(len(products_cart)): if products_cart[i].get('id') == product_id: products_cart[i]['count']+=count #更新商品列表 for i in range(len(products)): if products[i]['id'] == product_id: products[i]['count'] -= count else: print('购物车信息如下:') print('*************************************') print('{:<10}'.format('编号'),'{:<10}'.format('购买数量')) print('-------------------------------------') for i in range(len(products_cart)): print('{:<10}'.format(products_cart[i]['id']),'{:<6}'.format(products_cart[i]['count'])) print('-------------------------------------') option = input('操作成功!请选择你的操作:1-查看商品;2-购物;3-查看购物车;其他-结账') #计算金额 if len(products_cart)>0: amount = 0 for i in range(len(products_cart)): product_index = 0 for j in range(len(products)): if products[j]['id'] == products_cart[i]['id']: product_index = j break price = products[product_index]['price'] count = products_cart[i]['count'] amount+=price*count if 5000<amount<=10000: amount = amount * 0.95 elif 10000<amount<=20000: amount = amount * 0.90 elif amount > 20000: amount = amount*0.85 else: amount = amount*1 print('购买成功,您需要支付{:.2f}元'.format(amount)) #退出系统 print('谢谢您的光临,下次再见!')