用户:
无教查看:0 回复:2 评论:0 创建时间:2022-10-25T07:53:45
【作品展示】

【作品介绍】
本节介绍自动售货机操作背后的程序原理,涉及知识点:变量、函数、列表、对应、while…else语句。
【作品源代码】
# 自动售货机
# 本节知识点涉及:变量、函数、列表(元素)、列表操作、对应、while……else循环语句。
# 问题:日常生活中,我们去超时购物,服务员都是反复输入我们购买的商品,直到输入完毕才统一结算。
# 任务:了解自动售货机的操作方法,设计一个自动售货机程序:利用计算机键盘模拟售货机的操作按键,
# 可多次输入购买商品的对应编号进行商品选购,当输入“0”时结束选购,并输出商品的数量和价格。
# 一、分析问题:
# 自动售货机一般是通过数字按键输入商品的编号来选择需要购买的物品。
# 如果我们能让商品和价格也按编号的顺序排列并且保存起来,就可以通过输入编号来选购商品。
# P38 表2-11 商品编号对应商品信息表
# | 商品编号 | 商品名称 | 商品价格/元 |
# | 1 | 矿泉水 | 2 |
# | 2 | 牛奶 | 4 |
# | 3 | 橙汁 | 3 |
# | 4 | 面包 | 3 |
# | 5 | 蛋糕 | 4 |
# 将商品和价格与编号对应起来。不断加购商品,这是一个重复执行的过程,因此需要用新的程序结构来实现这个过程。
# 二、循环结构描述算法
# 实现的程序用自然语言描述
# 1)用户输入商品编号; (可用input()函数,编号是整数,加上 int()进行转换。)
# 2)如果用户输入的编号不为“0”则进入第三步,否则跳到第四步;
# 3)输出当前选购商品价格和名称,计算选购商品的数量和总价,等待用户输入下一件商品的编号;(循环结构)
# 4)选购结束,输出商品的总数和总价。
# 三、应用列表
# 我们先将商品名称和价格按指定的顺序保存起来,可以使用列表来保存一系列数据。
# 先创建列表goods(食物)、price(价格)。列表用中括号括起来,元素间使用逗号隔开。
# 商品列表数据类型是 字符串
goods = ['矿泉水', '牛奶', '橙汁', '面包', '蛋糕']
# 价格列表数据类型是 数值
price = [2, 4, 3, 3, 4]
# 列表的操作说明:P40
# 列表元素的序号 从0开始记。第一个数据序号为0
#print('1', goods[0])
# 上面的选择序号n,输出相关的列表数据要 n-1
#print('2', goods[1])
#print('3', goods[2])
#print('4', goods[3])
#print('5', goods[4])
# print(列表名) 输出列表中所有元素
#print(goods)
# len(列表名) 列表中元素的数量
#print('列表食物所含元素数量:',len(goods))
#print('列表价格所含元素数量:',len(price))
# 以上代码运行完请在行前加上#号。
# 实践:P40
# 1)创建商品列表和价格列表,名称分别为 goods 和 price
# 2)设计选购一个商品的程序,输入商品编号,能输出对应的上面名称和价格。
# 程序如下:(以下四行代码,去掉前面#号,就可以运行。)
#goods = ["矿泉水", "牛奶", "橙汁", "面包", "蛋糕"] # 商品列表数据类型是 字符串
#price = [2, 4, 3, 3, 4] # 价格列表数据类型是 数值
#n = int(input("请输入您要购买的商品编号:1-矿泉水;2-牛奶;3-橙汁;4-面包;5-蛋糕:"))
#print("您选择了", price[n-1],"元的",goods[n-1])
# 探究:为什么goods[n-1]和price[n-1]能获取正确的商品名称和价格呢?
# 答:列表序号从0开始,选购的商品编号要减1,才能获取正确的商品和价格列表序号。print('1', goods[0])表示食物列表的第一个元素:矿泉水
# 四、while循环语句
# Python编程中可以使用while循环语句实现重复执行的效果,即在某个条件成立的情况下,循环执行某段程序(即循环体:选购商品程序第三步)
# 说明:
# 当while后面的条件表达式结果为True,则执行while语句下面缩进的循环体,执行完循环体后,
# 又回到语句while,检测是否成立,如果不成立,结束循环。
# 举例:(以下代码,去掉前面#号可运行)
#i = 0 # 变量i的初始值为0,i相当于一个计算器。
#while i < 6: # 当i的值小于5,循环条件成立,执行循环体。
# i = i+1 # 变量i自加,循环一次,i的值增加1。
# print("OK") # 循环体要缩进4个字符。
#else:
# print('循环次数为',i,'次。')
# 程序运行完,请在上面代码前面重新加上#号。
# 如要无限循环,while后面可以直接写成:True或其他结果永远为True的表达式。P42
# 实践:编写让自动售货机可以选购多个商品的程序。
# 先不考虑循环停止的条件,利用无限循环来实现选购多个商品的功能。
# 程序如下:(以下代码,去掉前面#号,就可以运行。)
#goods = ["矿泉水", "牛奶", "橙汁", "面包", "蛋糕"] # 商品列表数据类型是 字符串
#price = [2, 4, 3, 3, 4] # 价格列表数据类型是 数值
#while True:
# n = int(input("请输入您要购买的商品编号:1-矿泉水;2-牛奶;3-橙汁;4-面包;5-蛋糕:"))
# print("您选择了", price[n-1],"元的",goods[n-1])
# 程序运行完,请在上面代码前面重新加上#号。
# 上面代码会一直重复执行,如果我们希望输入“0”来表示选购商品结束,那么要如何实现呢?
# 设置循环条件:P43
# 在while后面的条件,我们可以设置为“n != 0”,表示如果n不等于0,这个条件成立则显示选购的商品,继续等待输入编号。
# 如果n不等于0,这个条件不成立,则结束循环。
# 程序如下:(以下代码,去掉前面#号,就可以运行。)
#goods = ["矿泉水", "牛奶", "橙汁", "面包", "蛋糕"] # 商品列表数据类型是 字符串
#price = [2, 4, 3, 3, 4] # 价格列表数据类型是 数值
#n = int(input("请输入您要购买的商品编号:1-矿泉水;2-牛奶;3-橙汁;4-面包;5-蛋糕;输入0结束选购:"))
#while n != 0: # 把条件True换成 n != 0
# print("您选择了", price[n-1],"元的",goods[n-1]) # 循环体要缩进4个字符
# n = int(input("请继续输入商品编号:"))
# 程序运行完,请在上面代码前面重新加上#号。
# 完善代码:在结束选购时显示已选购商品的数量和总价。
# 请把以下代码前面的#号去掉,程序可正常运行。
#goods = ["矿泉水", "牛奶", "橙汁", "面包", "蛋糕"] # 商品列表数据类型是 字符串
#price = [2, 4, 3, 3, 4] # 价格列表数据类型是 数值
#s = 0 # 增加变量s,记录购买商品的数量,初始值为0
#t = 0 # 增加变量t,记录购买商品的总价,初始值为0
#n = int(input("请输入您要购买的商品编号:1-矿泉水;2-牛奶;3-橙汁;4-面包;5-蛋糕;输入0结束选购:"))
#while n != 0: # 把条件True换成 n != 0
# s = s+1 # 商品数量循环一次,增加1
# t = t+price[n-1] # 价格每次要增加选购的商品价格
# print("您选择了", price[n-1], "元的", goods[n-1]) # 循环体要缩进4个字符
# n = int(input("请继续输入商品编号:"))
#else: # 使用while……else语句来设置循环结束时要执行的语句
# print('您一共选购了',s,'件商品,共需要支付',t,'元。')
# 程序运行完,请在上面代码前面重新加上#号。
# 总结:
# 本课的内容利用自动售货机的程序,我们知道了循环结构的一般编写方法,设置变量、列表、循环条件,输入输出函数、#号的灵活应用。
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cnimgsrc="http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/6e/panda_thumb.gif"alt="emotion_熊猫"
点赞0
评论