对应书目:Python编程:从入门到实践
用户输入和while循环(第七章)
要理解新的编程概念,最佳的方法是尝试在程序中使用它们
- 函数 input() 接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做
- 使用函数 input() 时,Python 将用户输入解读为字符串
- 不带参数就直接输入,带参数就是显示一下信息再输入
动手试一试
7-1 汽车租赁:编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如“Let me see if I can find you a Subaru”
message = input("Let me see if I can find you a ")
print(message)
7-2 餐馆订位:编写一个程序,询问用户有多少人用餐。如果超过 8 人,就打印一条消息,指出没有空桌;否则指出有空桌
message = input("How many people are having dinner:")
num = int(message)
if num > 8:
print("No vacant seats")
else:
print("Free seats")
7-3 10 的整数倍:让用户输入一个数字,并指出这个数字是否是 10 的整数倍
message = input("Please enter any number:")
num = int(message)
if num % 10 == 0:
print("It's a multiple of 10")
else:
print("It's not a multiple of 10")
- continue 返回到循环开头
- break 不再执行余下代码,直接退出循环
- Ctrl + C 退出无限循环
动手试一试
7-4 比萨配料:编写一个循环,提示用户输入一系列的比萨配料,并在用户输入'quit'时结束循环。每当用户输入一种配料后,都打印一条消息,说我们会在比萨中添加这种配料
flag = True
while flag:
message = input("Please enter pizza ingredients")
if message == 'quit':
break
print("We add this ingredient to pizza, " + message)
flag = True
while flag:
message = input("Please enter pizza ingredients")
if message == 'quit':
flag = False
else:
print("We add this ingredient to pizza, " + message)
message = ""
while message != 'quit':
message = input("Please enter pizza ingredients")
if message != 'quit':
print("We add this ingredient to pizza, " + message)
7-5 电影票:有家电影院根据观众的年龄收取不同的票价:不到 3 岁的观众免费;3~12 岁的观众为 10 美元;超过 12 岁的观众为 15 美元。请编写一个循环,在其中询问用户的年龄,并指出其票价
message = ""
while message != 'quit':
message = input("How old are you? ")
if message != 'quit':
if int(message) < 3:
print("free:" + message)
elif int(message) < 12:
print("10 dollars:" + message)
else:
print("15 dollars:" + message)
else:
exit(0)
7-6 三个出口:以另一种方式完成练习 7-4 或练习 7-5,在程序中采取如下所有做法
在 while 循环中使用条件测试来结束循环
使用变量 active 来控制循环结束的时机
使用 break 语句在用户输入'quit'时退出循环
message = ""
while message != 'quit':
message = input("How old are you? ")
if message != 'quit':
if int(message) < 3:
print("free:" + message)
elif int(message) < 12:
print("10 dollars:" + message)
else:
print("15 dollars:" + message)
else:
exit(0)
active = True
while active:
message = input("How old are you? ")
if message == 'quit':
break
if int(message) < 3:
print("free:" + message)
elif int(message) < 12:
print("10 dollars:" + message)
else:
print("15 dollars:" + message)
active = True
while active:
message = input("How old are you? ")
if message == 'quit':
active = False
else:
if int(message) < 3:
print("free:" + message)
elif int(message) < 12:
print("10 dollars:" + message)
else:
print("15 dollars:" + message)
7-7 无限循环:编写一个没完没了的循环,并运行它(要结束该循环,可按 Ctrl +C,也可关闭显示输出的窗口)
x = 1
while x <= 5:
print(x)
动手试一试
7-8 熟食店:创建一个名为 sandwich_orders 的列表,在其中包含各种三明治的名字;再创建一个名为 finished_sandwiches 的空列表。遍历列表 sandwich_orders,对于其中的每种三明治,都打印一条消息,如 I made your tuna sandwich,并将其移到列表finished_sandwiches。所有三明治都制作好后,打印一条消息,将这些三明治列出来
sandwich_orders = ['aaa','bbb','ccc']
finished_sandwiches = []
while sandwich_orders:
food = sandwich_orders.pop()
print("I made you " + food + " sandwich")
finished_sandwiches.append(food)
print("OK")
for finish in finished_sandwiches:
print(finish.title())
7-9 五香烟熏牛肉( pastrami)卖完了:使用为完成练习 7-8 而创建的列表 sandwich_orders,并确保'pastrami'在其中至少出现了三次。在程序开头附近添加这样的代码:打印一条消息,指出熟食店的五香烟熏牛肉卖完了;再使用一个 while 循环将列表 sandwich_orders 中的'pastrami'都删除。确认最终的列表 finished_sandwiches 中不包含'pastrami'
sandwich_orders = ['pastrami','pastrami','aaa','bbb','pastrami','ccc','pastrami']
print("The pastrami beef is sold out")
while 'pastrami' in sandwich_orders:
sandwich_orders.remove('pastrami')
finished_sandwiches = []
while sandwich_orders:
food = sandwich_orders.pop()
print("I made you " + food + " sandwich")
finished_sandwiches.append(food)
print("OK!")
for finish in finished_sandwiches:
print(finish.title())
7-10 梦想的度假胜地:编写一个程序,调查用户梦想的度假胜地。使用类似于“If you could visit one place in the world, where would you go?”的提示,并编写一个打印调查结果的代码块
while True:
message = input("If you could visit one place in the world, where would you go?")
if message == 'quit':
break
print(message)