首页 > 编程语言 >实验3 控制语句与组合数据类型应用编程

实验3 控制语句与组合数据类型应用编程

时间:2023-04-22 14:58:22浏览次数:31  
标签:语句 count pro 编程 数据类型 cart products print id

实验任务1

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:范围是0—100,可以取到100

问题2:范围是0到4,不能取到5

            范围是1到4,不能取到5

问题3:不一定是5,line8是集合,集合中不能有两个相同元素,若随机生成的5个数字中有任意两个相同,那么集合中元素个数就会少于5个,即len(s1)可能会小于5 

问题4:一定是5,line12到14运用了while循环,需要s2中元素个数大于等于5才能跳出循环,因此最后得到的s2一定包含5个元素,即len(s2)等于5

实验任务2:

task2_1.py

实验源码:

lst = [55, 92, 88, 79, 96]
i = 0
while i < len(lst):
    print(lst[i], end = ' ')
    i += 1
print()
for i in range(len(lst)):
    print(lst[i], end = ' ')
print()
for i in lst:
    print(i , end = ' ')
print()

运行测试截图:

 

task2_2.py

实验源码:

book_info = {'isbn': '978-7-5356-8297-0',
             '书名': '白鲸记',
             '作者': '克里斯多夫.夏布特',
             '译者': '高文婧',
             '出版社': '湖南美术出版社',
             '售价':82
             }
for key, value in book_info.items():
     print(f'{key}: {value}')
print()
for item in book_info.items():
     print(f'{item[0]}: {item[1]}')
print()
for value in book_info.values():
     print(value, end = ' ')
print()
for key in book_info.keys():
     print(book_info[key], end = ' ')

运行测试截图:

 

task2_3.py

实验源码:

book_infos = [{'书名': '昨日的世界', '作者': '斯蒂芬.茨威格'},
              {'书名': '局外人', '作者': '阿尔贝.加缪'},
              {'书名': '设计中的设计', '作者': '原研哉'},
              {'书名': '万历十五年', '作者': '黄仁宇'},
              {'书名': '刀锋', '作者': '毛姆'}
             ]
for i in range(len(book_infos)):
    book = list(book_infos[i].values())
    print(f'{i+1}.《{book[0]}》,{book[1]}')

运行测试截图:

 

实验任务3:

task3.py

实验源码:

zen = '''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!
'''
zen = zen.lower()
letter_sum = dict()
for i in range(97,97+26):
    letter = chr(i)
    sum1 = zen.count(letter)
    letter_sum[letter]=sum1
letter_sum = sorted(letter_sum.items(),key=lambda x:x[1],reverse = True)
for key, value in dict(letter_sum).items():
     print(f'{key}: {value}')

运行测试截图:

 

实验任务4:

task4.py

实验源码:

code_majors = {'8326':'地信类','8329':'计算机类','8330':'气科类','8336':'防灾工程','8345':'海洋科学','8382':'气象工程'}
print('{:-^50}'.format('专业代号信息'))
for key,value in code_majors.items():
    print(f'{key}:{value}')
print('{:-^50}'.format('学生专业查询'))
while True:
    num = input('请输入学号:')
    if num == '#':
        print('查询结束')
        break
    keys = list(code_majors.keys())
    if num[4:8] in keys:
        print(f'专业是:{code_majors[num[4:8]]}')
    else:print('不在这些专业里')

运行测试截图:

 

实验任务5:

task5.py

实验源码:

import random
print('猜猜2023年5月哪一天会是你的lucky day','\U0001F609')
lkd = random.randint(1,31)
day = int(input('你有三次机会,猜吧(1~31):'))
count = 1
if day == lkd:
    print('哇,猜中了','\U0001F923')
else:
    while count < 3 :
        count += 1
        if not(1<=day<=31):
            print('地球上没有这一天啦,你是外星人吗')
            day = int(input('再猜(1~31):'))
        elif day < lkd:
            print('猜早了,你的luck day还没到呢')
            day = int(input('再猜(1~31):'))
        elif day > lkd:
            print('猜晚了,你的luck day已经过了')
            day = int(input('再猜(1~31):'))
        else:
            print('哇,猜中了','\U0001F923')
            count += 1
            break
if count == 3 and lkd != day:
    print('哇哦,次数用光了.')
    print(f'偷偷告诉你,5月你的lucky day是{lkd}号.good luck\U0001F60A')
elif count == 3 and lkd == day:
    print('哇,猜中了', '\U0001F923')

运行测试截图:

 

 

 实验任务6:

task5.py

实验源码:

datas = {'2049777001': ['篮球', '羽毛球', '美食', '漫画'],
'2049777002': ['音乐', '旅行'],
'2049777003': ['马拉松', '健身', '游戏'],
'2049777004': [],
'2049777005': ['足球', '阅读'],
'2049777006': ['发呆', '闲逛'],
'2049777007': [],
'2049777008': ['书法', '电影'],
'2049777009': ['音乐', '阅读', '电影', '漫画'],
'2049777010': ['数学', '推理', '音乐', '旅行']
}
lst = []
count = dict()
for key in datas.keys():
    for t in datas[key]:
        count[t] = 0
for key in datas.keys():
    for t in datas[key]:
        count[t] +=1
count = sorted(count.items(),key=lambda x:x[1],reverse = True)
for key, value in dict(count).items():
     print(f'{key}: {value}')

运行测试截图:

 

实验任务7:

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],'%-10s'%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

实验源码:

"""
家用电器销售系统
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('{:<10} {:<10} {:<10} {:<10} {:<10}'.format('编号','名称','品牌','价格','库存数量'))
      print('----------------------------------------------------------')
      for i in range(len(products)):
        print('{:<10}'.format(products[i][0]),'{:<10}'.format(products[i][1]),'{:<10}'.format(products[i][2]),'{:<10.2f}'.format(products[i][3]),'{:>10}'.format(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('{:<10} {:<10} '.format('编号','购买数量'))
   print('----------------------------------------------------------')
   for i in range(len(products_cart)):
    print('{:10s}'.format(products_cart[i][0]),'{:6d}'.format(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('谢谢您的光临,下次再见!')

 

运行测试截图:

实验任务8:

task8_1.py

实验源码:

print('欢迎使用家用电器销售系统!')
pro=[{'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(pro)):
            print('%-10s'%pro[i]['id'],'%-10s'%pro[i]['name'],'%-10s'%pro[i]['brand'],'%10.2f'%pro[i]['price'],'%10d'%pro[i]['count'])
        print('-----------------------------------------------------------')
    elif option == '2':
        pro_id = input('请输入您要购买的产品编号:')
        while pro_id not in [item['id'] for item in pro]:
            pro_id = input('编号不存在,请重新输入您要购买的产品编号:')
        count=int(input('请输入您要购买的产品数量:'))
        while count > pro[int(pro_id)-1]['count']:
            count=input('数量超出库存。请重新输入您要购买的产品数量:')
        if pro_id not in [item['id'] for item in products_cart]:
            products_cart.append({'id':pro_id,'count':count})
        else:
            for i in range(len(products_cart)):
                if products_cart[i].get('id')==pro_id:
                    products_cart[i]['count']+=count

        for i in range(len(pro)) :
            if pro[i]['id']==pro_id:
                pro[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)):
        pro_index=0
        for j in range(len(pro)):
            if pro[j]['id']==products_cart[i]['id']:
                pro_index=j
                break
        price=pro[pro_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.9
    elif 20000 < amount:
        amount = amount * 0.85
    else:
        amount = amount * 1
    print('购买成功,您需要支付%8.2f元' % amount)
print('谢谢您的光临,下次再见!')

运行测试截图:

 

task8_2.py

实验源码:

print('欢迎使用家用电器销售系统!')
pro=[{'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('{:<10} {:<10} {:<10} {:<10} {:<10}'.format('编号','名称','品牌','价格','库存数量'))
        print('-----------------------------------------------------------')
        for i in range(len(pro)):
            print('{:<10}'.format(pro[i]['id']), '{:<10}'.format(pro[i]['name']), '{:<10}'.format(pro[i]['brand']),'{:<10.2f}'.format(pro[i]['price']),'{:>10}'.format(pro[i]['count']))
        print('-----------------------------------------------------------')
    elif option == '2':
        pro_id = input('请输入您要购买的产品编号:')
        while pro_id not in [item['id'] for item in pro]:
            pro_id = input('编号不存在,请重新输入您要购买的产品编号:')
        count=int(input('请输入您要购买的产品数量:'))
        while count > pro[int(pro_id)-1]['count']:
            count=input('数量超出库存。请重新输入您要购买的产品数量:')
        if pro_id not in [item['id'] for item in products_cart]:
            products_cart.append({'id':pro_id,'count':count})
        else:
            for i in range(len(products_cart)):
                if products_cart[i].get('id')==pro_id:
                    products_cart[i]['count']+=count

        for i in range(len(pro)) :
            if pro[i]['id']==pro_id:
                pro[i]['count']-=count
    else:
        print('购物车信息如下:')
        print('************************************')
        print('{:<10} {:<10} '.format('编号','购买数量'))
        print('------------------------------------')
        for i in range(len(products_cart)):
            print('{:10s}'.format(products_cart[i]['id']),'{:6d}'.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)):
        pro_index=0
        for j in range(len(pro)):
            if pro[j]['id']==products_cart[i]['id']:
                pro_index=j
                break
        price=pro[pro_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.9
    elif 20000 < amount:
        amount = amount * 0.85
    else:
        amount = amount * 1
    print('购买成功,您需要支付%8.2f元' % amount)
print('谢谢您的光临,下次再见!')

 

运行测试截图:

 

标签:语句,count,pro,编程,数据类型,cart,products,print,id
From: https://www.cnblogs.com/sxy59e/p/17332640.html

相关文章

  • C语言和C++的switch语句用法
    C语言和C++的switch语句用法是相似的,但在一些细节上有所不同。在C语言中,switch语句的用法如下:switch(expression){  caseconstant1:    //dosomething    break;  caseconstant2:    //dosomething    break;  //...  ......
  • lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
    一、lua变量【全局变量和局部变量和表中的域】Lua变量有三种类型:全局变量和局部变量和表中的域。▪全局变量:默认情况下,Lua中所有的变量都是全局变量。▪局部变量:使用local显式声明在函数内的变量,以及函数的参数,都是局部变量。在函数外即使用local去声明,它的作用域也是当前的整......
  • C ++各个数据类型的输入输出
    C++中各个数据类型的输入输出主要使用iostream库和格式化输入输出函数printf、scanf等,下面是各个数据类型的输入输出方式:1.整型:使用cin和cout进行输入输出,或者使用scanf和printf进行输入输出。intn;cin>>n;cout<<n<<endl;scanf("%d",&n);printf("%d\n",n);2.浮点型:使......
  • 试验任务3 控制语句与组合数据类型应用编程
    1.试验任务11importrandom23print('用列表存储随机整数:')4lst=[random.randint(0,100)foriinrange(5)]5print(lst)67print('\n拥集合存储随机整数:')8s1={random.randint(0,100)foriinrange(5)}9print(s1)1011print('\n用集......
  • 04-目录---Linux编程
    第01章:Linux常用命令vim的使用:链接vimrc:链接shell命令行操作:链接hitory历史命令:链接安装较新vim:链接安装plug-vim:链接安装更新的cmake:链接安装更新的gcc:链接安装python3.8:链接第02章:Linux编译调试基础makefile:链接gdb调试:链接库的制作:链接第03章:标准IOfopen与fclos......
  • C 语言各个数据类型的输入输出
    -1.整型(int)的输入输出: 输入: ```cintnum;printf("请输入一个整数:\n");scanf("%d",&num);//注意取地址符&``` 输出: ```cintnum=123;printf("这个数字是%d。\n",num);``` 2.浮点型(float和double)的输入输出: 输入: ```cfloatnum1;doubl......
  • 加密与解密x64逆向——变量、if和switch、循环语句
    数据结构主要是对局部变量,全局变量,数组等的识别。1.局部变量局部变量是函数内定义的变量,存放的内存区域称之为栈区。生命周期就是从函数进入到返回释放。函数在入口处申请了预留栈空间和局部变量空间,也就是subrsp,30h。局部变量空间在高地址。在应用程序被编译成release版本......
  • 2023.4.21编程一小时打卡
    一、问题描述: 定义时钟类,单目运算符前置++和后置++重载的成员函数:以时钟类的对象为操作数。对于前置单目运算符,重载函数没有参数,对于后置单目运算符,重载函数有一个int型参数。二、解题思路: 首先定义一个时钟类作为基类,再定义重载运算符的成员函数,最后在主函数中实现时钟类的......
  • shell 脚本编程进阶之函数
    一、定义函数1、语法#语法一:func_name(){...函数体...}#语法二:functionfunc_name{...函数体...}#语法三:functionfunc_name(){...函数体...} 在函数中定义本地变量,local name=NAME2、查看定义的函数#查看当前已定义的函数名declare-F#查看当前已定义的函数定义declare-f#......
  • 04 数据类型
    04数据类型创建表的时候,我们在类型这里给出了不同的选项,比如有int,varchar。数据类型不同,储存的内容也不相同。下面来看看MySQL的数据类型介绍数据类型分类整数类型:BIT、BOOL、TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT浮点数类型:FLOAT、DOUBLE、DECIMAL字符串......