while循环的运用

时间:2022-12-13 11:55:24
# 7-1 汽车租赁 :编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如“Let me see if I can find you a Subaru”。

car = input('Hello, What is car would you want to rent: ')
print('Let me see if I can find you a ' + car)


# 7-2 餐馆订位 :编写一个程序,询问用户有多少人用餐。如果超过8人,就打印一条消息,指出没有空桌;否则指出有空桌。

import re
people = input('How many people will come for dinner:')
'''利用正则表达式提取people里的数字'''
number = re.sub('\D','',people)
print(number)

if int(number) <= 8:
print('Lucky! There have only a table for you.')
else:
print("It's very sorry, we don't have free table.")

#7-3 10的整数倍 :让用户输入一个数字,并指出这个数字是否是10的整数倍。

number = input('请输入一个数字:')
if int(number) % 10 == 0 :

print('%s是10的整数倍。'%number)
else:
print('%s不是10的整数倍。'%number)
 
# 7-4 比萨配料 :编写一个循环,提示用户输入一系列的比萨配料,并在用户输入'quit' 时结束循环。每当用户输入一种配料后,都打印一条消息,说我们会在比萨
中添加这种配料

pizzas_add = '请输入你要添加的配料:'
pizzas_add += '\n(当你想退出程序时,请输入quit)'
while True:
add = input(pizzas_add)
if add == 'quit':
break

else:
print('非常抱歉,%s暂时没有,下次我们会加入您的这种配料,非常感谢您光顾我们的店。'% add)



 
# 7-5 电影票 :有家电影院根据观众的年龄收取不同的票价:不到3岁的观众免费;3~12岁的观众为10美元;超过12岁的观众为15美元。请编写一个循环,在其中询问用
# 户的年龄,并指出其票价。


import re
ages = '请输入你的年龄(当你想退出程序时,请输入quit):'

while True:
age = input(ages)
#age_info = re.sub('\D','','age')
if age == 'quit':
break
elif int(age) < 3:
print('不到3岁的观众免费。')
elif int(age) <= 12:
print('3-12岁的观众为10美元。')
else:
print('超过12岁的观众为15美元。')
 
 
# 7-6 三个出口 :以另一种方式完成练习7-4或练习7-5,在程序中采取如下所有做法。
# 在while 循环中使用条件测试来结束循环。
# 使用变量active 来控制循环结束的时机。
# 使用break 语句在用户输入'quit' 时退出循环。



 
ages = '请输入你的年龄(当你想退出程序时,请输入quit):'
#设置一个标志,指出调查是否继续
active = True
while active:
age = input(ages)
#age_info = re.sub('\D','','age')
if age == 'quit':
active = False
elif int(age) < 3:
print('不到3岁的观众免费。')
elif int(age) <= 12:
print('3-12岁的观众为10美元。')
else:
print('超过12岁的观众为15美元。')
 
# 7-8 熟食店 :创建一个名为sandwich_orders 的列表,在其中包含各种三明治的名字;再创建一个名为finished_sandwiches 的空列表。遍历列
# 表sandwich_orders ,对于其中的每种三明治,都打印一条消息,如I made your tuna sandwich ,并将其移到列表finished_sandwiches 。所有三明
# 治都制作好后,打印一条消息,将这些三明治列出来。


 
sandwich_orders = ['tata','apple','berry']
finished_sandwiches = []

for sandwich_order in sandwich_orders:
print('I made your %s sandwich.'% sandwich_order)
finished_sandwiches.append(sandwich_order)

print(','.join(finished_sandwiches))

# join()函数:连接列表里面的所有元素
print('I finished your ' + ','.join(finished_sandwiches) + 'sandwiches')


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


sandwich_orders = ['pastrami','tata','apple','pastrami','berry','bacon','pastrami']
finished_sandwiches = []
print('The pastrami sandwich is sell out.')

while 'pastrami' in sandwich_orders:

sandwich_orders.remove('pastrami')
for sandwich_order in sandwich_orders:
finished_sandwiches.append(sandwich_order)

print('We only have ' + ','.join(finished_sandwiches) + ' sandwiches.')


 
# 7-10 梦想的度假胜地 :编写一个程序,调查用户梦想的度假胜地。使用类似于“If you could visit one place in the world, where would you go?”的提示,并编写一个打印调查
# 结果的代码块。


responses = {}

#设置一个标志,指出调查是否继续。
polling_active = True

while polling_active:
#提示输入被调查者的名字和答案
name = input('\nWhat is your name?')
response = input('If you could visit one place in the world, where would you go?')

#将答案存储在字典里
responses[name] = response

#看看是否还有人要参与调查
repeat = input('Would you like to let another person respond?(yes/no)')
if repeat == 'no':
polling_active = False

#调查结束,显示结果
print('\n--- Poll Results---')
for name,response in responses.items():
print(name + ',would like to go to ' + response + '.')