Python7.2 用户输入和while循环(2)

本文介绍了Python编程中的while循环,包括其基本用法、如何让用户选择退出循环以及在程序中使用标志来控制循环的执行。通过示例代码展示了如何实现一个简单的用户交互程序,让用户输入信息并在输入'quit'时结束程序。

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

7.2while循环简介

for 循环用于针对集合中的每个元素都执行一个代码块,而while 循环则不断运行,直到指定的条件不满足为止。

7.2.1 使用while循环

可使用while循环来数数。例如,下面的while循环从1数到5;

current_number = 0
while current_number <= 5:
    print(current_number)
    current_number += 1

上面的while 循环:只要current_number小于或等于5,就接着运行这个循环。循环中的代码打印current_number的值,再使用current_number += 1(代码:current_number =current_number+ 1的简写)将其值加1.

输出:0

1

2

3

4

5

例如,游戏中使用while循环,确保玩家在想玩时不断运行,并在玩家想退出时停止运行。

7.2.2让用户选择何时退出

    可以使用while循环让程序在用户原意时不断运行,如下面的程序parrot.py所示,我们在其中定义了一个退出值,只要用户输入的不是这个值,程序就接着运行。

prompt = "\nTell me something,and I will repeat it back to you:"
prompt +="\nEnter 'quit' to end the program. "
message = ""
while message != 'quit':
    message = input(prompt)
    print(message)

上文定义了一条提示消息,告诉用户有两个选择:要么输入一条消息,要么输入退出值。接下来,创建变量message,用于记录用户输入的值。我们将变量message的初始值定义为空字符串 “” ,让python首次执行while代码时有可供检查的东西。python首次执行while语句时,需要将message的值与 quit 进行比较,但此时用户还没有提供可比较的东西,python将无法继续运行程序。为解决这个问题,必须给变量message指定初始值。虽然这个初始值只有一个空字符串,但符合要求,能够让python执行while循环所需要的比较。只要message的值不是quit,这个循环就不会停止。

    首次遇到这个循环时,message是一个空字符串,因此python键入该循环。执行到代码行 message = input(prompt)时,python显示提示消息,并等待用户输入。不管用户输入的是什么,都将赋给变量message并打印出来。接下来,python重新检查while语句中的条件。主要用户输入的不是 quit ,python就会再次显示提示消息并等待用户输入。等到用户输入 quit后,python停止执行while循环,整个程序也就到此结束。

输出:

Tell me something,and I will repeat it back to you:
Enter 'quit' to end the program. 554
554

Tell me something,and I will repeat it back to you:
Enter 'quit' to end the program. 558
558

Tell me something,and I will repeat it back to you:
Enter 'quit' to end the program. quit
quit
很容易发现,他将单词 quit 也作为一条消息打印出来了,为修复这种问题,只需要使用一个简单的if 测试:

prompt = "\nTell me something,and I will repeat it back to you:"
prompt +="\nEnter 'quit' to end the program. "
message =""
while message != 'quit':
    message = input(prompt)

    if message !='quit':
        print(message)

这样就会仅在消息不是退出值时才打印他。

7.2.3使用标志

在更复杂的程序中,很多不同的事件会导致程序停止运行。

例如,有多种事件可能导致游戏停止运行,如玩家失去所有的飞船、时间已用完,或者要保护的城市被摧毁。导致程序结束的事件有很多时,如果在一条while语句中检查所有的这些条件,将十分复杂。

在要求很多条件都满足的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量称为标志(flage),可以让程序在ture时继续运行,并在任何事件导致标志的值为false时停止运行。这样,在while语句就只需要检查一个条件:标志的当前值是否为ture,然后将其所有其他测试都放在其他地方,从而让程序更简洁。

下面在前一节的程序中添加一个标志,将其命名为active,用于判断程序是否应继续运行:

prompt = "\nTell me something,and I will repeat it back to you:"
prompt +="\nEnter 'quit' to end the program. "
active = True
while active:
    message = input(prompt)
    if message =='quit':
       active = False
    else:
        print(message)

祝大家一战上岸!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值