关于召开校第六届美食节活动的预备通知
校园美食节是我校喜迎新年的传统活动,它可以增添校园文化气息,丰富校园生活,搭建施展个性的舞台,让学生在活动中体验生活,在和谐的氛围中收获快乐。预定于12月30日举行,请各班积极筹备,为资助结对学校的困难学生群策群力,共同欢度新年。
校学生会
2022年11月5日
自收到美食节通知后,初三(6)班的同学们积极规划和筹备起来,组织委员小王决定利用所学的Python知识,针对本次美食节活动,制作一个“美食天下”零售系统,帮助班级快速统计价格,提高工作效率。
问题解决(一)——“美食天下”零售系统v1.0:
print("欢迎登录“美食天下”零售系统")
print("三元区商品:棒棒糖、寿司、雪碧、可乐、蛋挞")
number =int(input("请输入你要购买的商品数量:"))
sum= number * 3
print("您一共花费",sum,"元!选择微信还是现金支付?")
print("前五元区商品:雪花酥、酸奶、布丁、养乐多、仙草冻")
number =int(input("请输入你要购买的商品数量:"))
sum= number * 5
print("您一共花费",sum,"元!选择微信还是现金支付?")
print("十元区商品:奶茶、爆米花、三明治、水果沙拉")
number =int(input("请输入你要购买的商品数量:"))
sum= number * 10
print("您一共花费",sum,"元!选择微信还是现金支付?")
(1)同桌小李查看了“美食天下”零售系统v1.0的代码,发现:该程序只采用了
_______结构,它的运行结果存在着很大缺陷,如:无法选择购买具体商品,无法重复选择同价位的其他商品等。
问题解决(二)——“美食天下”零售系统v2.0:
针对v1.0的问题,小李提出了优化意见:分别设置3元区、5元区和10元区的商品列表。用户选择并输入要购买的商品名称和数量,系统通过判断商品所属列表自动计算总价。当用户输入“q”时,退出系统。请你和小王同学一起来完善程序,优化系统。
print("欢迎登录“美食天下”零售系统")
print("三元区商品:棒棒糖、寿司、雪碧、可乐、蛋挞")
list3=["棒棒糖","寿司","雪碧","可乐","蛋挞"]
print("五元区商品:雪花酥、酸奶、布丁、养乐多、仙草冻")
__________①____________
print("十元区商品:奶茶、爆米花、三明治、水果沙拉")
list10=["奶茶","爆米花","三明治","水果沙拉"]
sum=0
goods=input("请输入你要购买的商品名称,输入'q'可退出系统")
while _____②_________:
if goods in list3:
price = 3
elif goods in list5:
price =5
_______③_______:
price =10
number =int(input("请输入你要购买的商品数量:"))
sum=sum+number*price
goods=input("请输入你要购买的商品名称,输入'q'可退出系统")
print("您一共花费",sum,"元!选择微信还是现金支付?")
(2)对照优化意见和代码,将缺失的代码填入下方
①
___________②
___________③
________(3)运行v2.0时,当用户没有选购任何商品而直接退出系统,系统会输出:“您一共花费 0 元!选择微信还是现金支付?”的提示。若要优化输出,给出提示语:“欢迎下次光临!”,我们可将程序的最后一代码修改成
________选项(请选填A或B)。
A.

B.
问题解决(三)——抽奖:
为加强摊位的人气,班级决定开设一个抽奖环节,每位消费的同学可参加1次抽奖。班长小宋估计前来购买商品的同学数为500人,设想的抽奖流程如下:
打印出1——500(
含1和500)中包含3的数字。
a、若数字带3,保持不变,如:35。
b、若带3的数字是质数,则在数字后加上*。如:3*,13*。
c、若数字由多个3是连在一起的,则在数字前加上&,如&233。
d、若数字既由多个3组成,又是质数,则在数字前后分别加上相应的符号。如:&233*。
设计的代码如下:
def prime(n):#判断是否是质数
n=int(n)
for i in range(2,n):
if n%i==0:
return
______①_______
else:
return True
for i in range(1,501):
i=str(i)
if "3" in i:#使用if嵌套语句来实现
________②________:
print("&"+i+"*")
elif "33" in i:
print("&"+i)
elif "3" in i and prime(i):
print(i+"*")
else:
_______③___________
(4)对照流程的描述文字与程序,将缺失的代码填入下方
①
___________②
___________③
________问题解决(四)——奖品:
运行班长的程序,在1——500之间共找到了176个符合要求的数。其中,只带3数字122个,后加*的数字61个,前加&的数字14个,前后分别加&和*的数字5个。班级购买了75%酒精消毒液3900ml后,欲购买分装10ml、30ml和50ml三种容量的瓶子176个。欲将3900ml的消毒液分装进这些瓶中,同时保证10ml瓶子数>30ml瓶子数>50ml瓶子数。请问有多少种购买相应容量瓶子的方案?请完善以下程序,罗列所有的购买方案。分装后,班长会依次发放合适容量的酒精消毒液给对应的获奖同学。
for x in range(1,79):
for y in range(x+1,131):
for z in range(______①______,391):
if _________②_______:
print("50ml:",x,"30ml:",y,"10ml:",z)
(5)根据题意,①处填入的代码可为
_________(6)②处均应选填
( )(单选,填字母)
A.50*x+30*y+z*10==3900
B.50*x+30*y+z*10==3900 and x+y+z==176
C.10*x+30*y+z*50==3900 and x+y+z==176