首页 > 其他分享 >实验3

实验3

时间:2023-04-24 23:46:13浏览次数:24  
标签:count product cart products print 实验 id

实验3.1:

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) 生成的随机整数范围是?能否取到100?  [0,100],能取到100。  

问题2:利用 list(range(5)) 生成的有序序列范围是?是否包括5?  [0,4],不包括5

             利用 list(range(1,5)) 生成的有序序列范围是?是否包括5?  [1,4],不包括5

问题3:使用line8代码生成的集合s1,len(s1)一定是5吗?如果不是,请解释原因。  len(s1)不一定是5,如果集合中有数重复,集合会清洗重复的数,只保留一个,所以可能小于5

问题4:使用line12-14生成的集合s2,len(s2)一定是5吗?如果不是,请解释原因。  len(s1)一定是5。

 

实验3.2.1

# 列表遍历
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()

实验3.2.2

# 字典遍历
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 = ' ')

实验3.2.3

book_infos = [{'书名': '昨日的世界', '作者': '斯蒂芬.茨威格'},
{'书名': '局外人', '作者': '阿尔贝.加缪'},
{'书名': '设计中的设计', '作者': '原研哉'},
{'书名': '万历十五年', '作者': '黄仁宇'},
{'书名': '刀锋', '作者': '毛姆'}
]

for i, book in enumerate(book_infos):
    print(f'{i + 1}. 《{book["书名"]}》,{book["作者"]}')

实验3.3

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.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!'''
count = {}
for a in 'abcdefghijklmnopqrstuvwxyz':
    count[a] = 0

for char in text.lower():
    if char.isalpha():
        count[char] += 1

for a, count in sorted(count.items(), key=lambda x: x[1], reverse=True):
    print(a, count)

 

实验4:

code_majors={8326:'地信类',8329:'计算机类',8330:'气科类',8336:'防灾工程',8345:'海洋科学',8382:'气象工程'}
print("专业代号信息".center(50, "-"))
for key, value in code_majors.items():
    print(key, ":", value)
print("学生专业查询".center(50, "-"))

n=input('请输入学号:')
while n!='#':
    if int(n[4:8]) in code_majors:
        print(f'专业是:{code_majors.get(int(n[4:8]))}')
    else:
        print('不在这些专业中...')
    n=input('请输入学号:')
print('查询结束...')

 

 

实验5:

import random
print(f'猜猜那一天会是你的lucky day{chr(0x1f609)}')
lucky_day = random.randint(1, 31)
guess_count = 1
guess = int(input("你有三次机会,猜吧:"))
while guess_count < 3:
    if guess<1 or guess>31:
        print("地球上没有这一天啦,你是外星人吗")

    elif guess < lucky_day:

        print("猜早啦,你的lucky day,还没到呢")
    elif guess> lucky_day:

        print("猜晚了哦,你的lucky day已经过了呢")

    else:
        print(f'哇,猜中了{chr(0x1f923)}')

    guess_count += 1
    guess=eval(input('再猜(1~31):'))

if guess_count == 3:
    print("哇哦,次数用光啦")
    print(f'偷偷告诉你,5月你的lucky day是{lucky_day}号.good luck{chr(0x1f60a)}')

实验6:

datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],
         '2049777002': ['音乐', '旅行'],
         '2049777003': ['马拉松', '健身', '游戏'],
         '2049777004': [],
         '2049777005': ['足球', '阅读'],
         '2049777006': ['发呆', '闲逛'],
         '2049777007': [],
         '2049777008': ['书法', '电影'],
         '2049777009': ['音乐', '阅读', '电影', '漫画'],
         '2049777010': ['数学', '推理', '音乐', '旅行']}

new_datas = [v for k, v in datas.items() if bool(v)]

count_dict = {}
for d in new_datas:
    for i in d:
        if i in count_dict:
            count_dict[i] += 1
        else:
            count_dict[i] = 1

sorted_list = sorted(count_dict.items(), key=lambda x: x[1], reverse=True)
for item in sorted_list:
    print(f"{item[0]}: {item[1]}")

实验3.7.1:

"""
家用电器销售系统
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('谢谢您的光临,下次再见!')

实验3.7.2

"""
家用电器销售系统
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(f"{'编号':<10s}{'名称':<10s}{'品牌':<10s}{'价格':<10s}{'库存数量':<10s}")
        print('--------------------------------------------------------------')
        for i in range(len(products)):
            print(f'{products[i][0]:<10s}{products[i][1]:<10s}{products[i][2]:<10s}{products[i][3]:<15.2f}{products[i][4]:<10d}')
        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(f"{'编号':<10s}{'购买数量':<10s}")
        print('------------------------------')
        for i in range(len(products_cart)):
            print(f'{products_cart[i][0]:<15s}{products_cart[i][1]:<6d}')
        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(f'购买成功,您需要支付{amount:<8.2f}元')

#退出系统
print('谢谢您的光临,下次再见!')

实验8.1

"""
家用电器销售系统
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('谢谢您的光临,下次再见!')

实验3.8.2

"""
家用电器销售系统
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(f"{'编号':<10s}{'名称':<10s}{'品牌':<10s}{'价格':<10s}{'库存数量':<10s}")
        print('--------------------------------------------------------------')
        for i in range(len(products)):
            print(f"{products[i]['id']:<10s}{products[i]['name']:<10s}{products[i]['brand']:<10s}{products[i]['price']:<15.2f}{products[i]['count']:<10d}")
        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(f"{'编号':<15s}{'购买数量':<6s}")
        print('------------------------------')
        for i in range(len(products_cart)):
            print(f"{products_cart[i]['id']:<10s}{products_cart[i]['count']:<6d}")
        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(f'购买成功,您需要支付{amount:<8.2f}元')

#退出系统
print('谢谢您的光临,下次再见!')

 实验总结:

1.列表遍历,熟练运用三种方式遍历列表数据;字典遍历,使用for循环语句

2.对于控制输出格式,还需要加强练习

3.用内置sorted函数,其中key参数指定排序关键字为字典的值,reverse参数设定为True表示降序排序

标签:count,product,cart,products,print,实验,id
From: https://www.cnblogs.com/lsh111111/p/17347788.html

相关文章

  • C语言实验报告范例
    实验报告四一,实验类型:设计型二,实验室:三,指导老师:四,日期:五,实验名称:if分支语句的嵌套六,实验目的:1,学习if嵌套结构,能够用C语言编程解决日常生活的实例2,明确if语句在实现分支结构控制语句方面的特点和优势3,熟练掌握关系运算符、关系表达式、逻辑运算符和逻辑表达式、......
  • 实验一 进程的调度
    对一些函数和知识的解释getpid():返回当前进程的PID(进程编号)pid_tC语言重新定义的数据类型(其实就是int,换了一个名字)用来存储进程的PID。pid_t定义在sys/types.h头文件中fork()函数:用于创建一个新进程作为当前进行的子进程。如果成功创建⼦进程,对于⽗⼦进程fork会返回......
  • 逆向-第三次实验-注册码分析
    本次实验考虑使用到了ida在使用ida时,用ida32而非64,否则无法查看伪代码。打开后看到dialog,即对话框元素函数,很有可能是我们要考虑的地方,点击后F5得到伪代码。 代码INT_PTR__stdcallDialogFunc(HWNDhWnd,UINTa2,WPARAMa3,LPARAMa4){HICONIconA;//eaxUINT......
  • 实验3 控制语句与组合数据类型应用编程
    实验任务一源代码1importrandom23print('用列表存储随机整数:')4lst=[random.randint(0,100)foriinrange(5)]5print(lst)67print('\n用集合存储随机整数:')8s1={random.randint(0,100)foriinrange(5)}9print(s1)1011print('\n用......
  • 实验3 控制语句与组合数据类型应用编程
    task1问题1:可以取到100问题2:范围:0、1、2、3、4,不能取到5;范围:1、2、3、4,不能取到5问题3:一定是5问题4:一定是5task2-3book_infos=[{'书名':'昨日的世界','作者':'斯蒂芬.茨威格'},{'书名':'局外人','作者':'阿尔贝.加缪'......
  • 实验3 控制语句与组合数据类型应用编程
    task1源代码1importrandom23print('用列表存储随机整数:')4lst=[random.randint(0,100)foriinrange(5)]5print(lst)67print('\n用集合存储随机整数:')8s1={random.randint(0,100)foriinrange(5)}9print(s1)1011print('......
  • Java实验七
    1packageJavashiyan7a;2publicclassBikeimplementsVehicle{3@Override4publicvoidstart(){5System.out.println("Bikestart");6}78@Override9publicvoidstop(){10System.out.println......
  • 实验三
    任务一importrandomprint('用列表存储随机整数:')lst=[random.randint(0,100)foriinrange(5)]print(lst)print('\n用集合存储随机整数:')s1={random.randint(0,100)foriinrange(5)}print(s1)print('\n用集合存储随机整数:')s2=set()while......
  • 实验3
    实验3实验任务1task1.pyimportrandomprint('用列表存储随机整数:')lst=[random.randint(0,100)foriinrange(5)]print(lst)print('\n用集合存储随机整数:')s1={random.randint(0,100)foriinrange(5)}print(s1)print('\n用集合存储随机整数:')s2=set()w......
  • 连网技术与网络管理 Cisco packet 实验二
    四种模式用户模式Switch>特权模式Switch#全局配置模式Switch(config)端口模式Switch(config-if)#  这里的if是interface的缩写 模式切换指令打开switch的config的cli之后,默认进入了用户模式,显示未Switch>,类似于cmd命令行输入enable,进入特权模式,显示为Switch# 在......