您的位置:首页 > 编程语言 > Python开发

【《Python编程: 从入门到实践》习题答案--第七章:<用户输入和while 循环>】

2018-01-22 14:19 806 查看
#本章节代码中暂不涉及try-catch,所以默认为用户输入的符合所需要的输入类型

# 7-1 汽车租赁 : 编写一个程序, 询问用户要租赁什么样的汽车, 并打印一条消息, 如“Let me see if I can find you a Subaru”。
msg = input('请输入您要租赁的汽车名称:')
print('Let me see if I can find you a ' + msg)

# 7-2 餐馆订位 : 编写一个程序, 询问用户有多少人用餐。 如果超过8人, 就打印一条消息, 指出没有空桌; 否则指出有空桌。
msg = input ('请输入用餐人数:')
if int(msg) > 8:
print('没有空桌')
else :
print('有空桌')

# 7-3 10的整数倍 : 让用户输入一个数字, 并指出这个数字是否是10的整数倍。
msg = input('请输入一个数字,将自动计算是否为10的整数倍:')
if int(msg) % 10 == 0 :
print(msg + '是 10 的整数倍')
else:
print(msg + '不是 10 的整数倍')

# 7-4 比萨配料 : 编写一个循环, 提示用户输入一系列的比萨配料, 并在用户输入'quit' 时结束循环。 每当用户输入一种配料后,
# 都打印一条消息, 说我们会在比萨中添加这种配料。
msg1 = ('请输入一种披萨配料,输入‘quit’后会退出程序,请输入:')
while True:
msg = input(msg1)
if 'quit' in msg:
break
else:
print('我们会在比萨中添加这种配料: ' + msg)
#这个input必须写在循环里,不然会一直输出

# 7-5 电影票 : 有家电影院根据观众的年龄收取不同的票价: 不到3岁的观众免费; 3~12岁的观众为10美元; 超过12岁的观众为15美元。
# 请编写一个循环, 在其中询问用户的年龄, 并指出其票价。
msg = '请输入你的年龄:'
while True:
msg1 = input(msg)
if 'quit' in msg1:
print('已退出')
break
elif int(msg1) <3:
print('免费')
elif 3 <= int(msg1) <12:
print('\$10')
elif int(msg1) >= 12:
print('\$15')

# 7-6 三个出口 : 以另一种方式完成练习7-4或练习7-5, 在程序中采取如下所有做法。
# 在while 循环中使用条件测试来结束循环。
# 使用变量active 来控制循环结束的时机。
# 使用break 语句在用户输入'quit' 时退出循环。
#7-6(1)
msg1 = ('请输入一种披萨配料,输入‘quit’后会退出程序,请输入:')
active1 = True
while active1:
msg = input(msg1)
if 'quit' in msg:
active1 = False
else:
print('我们会在比萨中添加这种配料: ' + msg)

#7-6(2)
ac = True
msg = '请输入你的年龄:'
while ac:
msg1 = input(msg)
if 'quit' in msg1:
print('已退出')
break
elif int(msg1) <3:
print('免费')
elif 3 <= int(msg1) <12:
print('\$10')
elif int(msg1) >= 12:
print('\$15')

# 7-7 无限循环 : 编写一个没完没了的循环, 并运行它(要结束该循环, 可按Ctrl +C, 也可关闭显示输出的窗口) 。
while 1:
print('1')

# 7-8 熟食店 : 创建一个名为sandwich_orders 的列表, 在其中包含各种三明治的名字; 再创建一个名为finished_sandwiches 的空列表。
# 遍历列表sandwich_orders , 对于其中的每种三明治, 都打印一条消息, 如I made your tuna sandwich ,
# 并将其移到列表finished_sandwiches 。 所有三明治都制作好后, 打印一条消息, 将这些三明治列出来。
sandwich_orders = ['s1','s2','s3','s4']
finished_sandwiches = []
act = True
while act:
if int(len(sandwich_orders)) != 0:
cu_sw = sandwich_orders.pop()
finished_sandwiches.insert(0,cu_sw)
else:
act = False
print(finished_sandwiches)

# 7-9 五香烟熏牛肉(pastrami) 卖完了 : 使用为完成练习7-8而创建的列表sandwich_orders ,
# 并确保'pastrami' 在其中至少出现了三次。 在程序开头附近添加这样的代码: 打印一条消息, 指出熟食店的五香烟熏牛肉卖完了;
# 再使用一个while 循环将列表sandwich_orders 中的'pastrami' 都删除。 确认最终的列表finished_sandwiches 中不包含'pastrami' 。
print('熟食店的五香烟熏牛肉卖完了')
sandwich_orders = ['s1','pastram','s2','pastram','s3','pastram','s4']
print(sandwich_orders)
while 'pastram' in sandwich_orders:
sandwich_orders.remove('pastram')
print(sandwich_orders)

# 7-10 梦想的度假胜地 : 编写一个程序, 调查用户梦想的度假胜地。
# 使用类似于“If you could visit one place in the world, where would you go?”的提示, 并编写一个打印调查结果的代码块.
names = '请输入你的姓名:'
places = '请输入你想去的地点:'
dics = {}
ac = True
while ac:
name = input(names)
place = input(places)
dics[name] = place
repeat = input('还有其他人回答吗?(yes/no)')
if repeat == 'no':
ac = False
print(dics)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐