Python编程:从入门到实践——用户输入和while循环(第七章+课后答案)

这篇博客探讨了Python编程中用户输入和while循环的使用。通过多个示例,解释了如何利用input()函数获取用户输入,以及如何根据用户输入进行条件判断和循环控制。示例包括汽车租赁、餐馆订位、数字判断、比萨配料、电影票价格计算等场景,展示了如何在循环中使用条件测试、break和continue语句。最后,还展示了如何创建无限循环和处理列表数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对应书目:Python编程:从入门到实践

用户输入和while循环(第七章)

要理解新的编程概念,最佳的方法是尝试在程序中使用它们

  1. 函数 input() 接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做
  2. 使用函数 input() 时,Python 将用户输入解读为字符串
  3. 不带参数就直接输入,带参数就是显示一下信息再输入

动手试一试

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")
  1. continue 返回到循环开头
  2. break 不再执行余下代码,直接退出循环
  3. 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)

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值