学习如何接受用户输入,例如:假设有人要判断自己是否到了投票的年龄,要编写回答这个问题的程序,就需要知道用户的年龄,这样才能给出答案。因此,这种程序需要让用户输入年龄,再将其与投票年龄进行比较,以判断用户是否到了投票的年龄,再给出答案。为此,我们需要使用函数input()。
1、函数input()的工作原理
函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中,以方便我们使用。
例如,下面的程序让用户输入一些文本,再将这些文本呈现给用户:
函数input()接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做。在这个示例中,Python运行第一行代码时,用户将看到提示 Tell me something ,and I will repeat it back to you:。程序等待用户输入,并在用户按回车键后继续运行。输入存储在变量message中,接下来的print(message)将输入呈现给用户:
- 编写清晰的程序
每当我们使用函数input()时,都应指定清晰而易于明白的提示,准确地指出我们希望用户提供什么样的信息,指出用户输入任何信息的提示都行,如下所示:
有时候,提示可能超过一行,例如,我们可能需要指出获取特定输入的原因。在这种情况下,可能提示存储在一个变量中,再将该变量传递给函数input()。这样,即便提示超过一行,input()语句也非常清晰。
此例创建了一种多行字符串的方式。第一行将消息的前半部分存储在变量prompt中,在第二行中,运算符+=在存储在prompt中的字符串末尾附加一个字符串。
- 使用int()来获取数值输入
使用函数input()时,Python将用户输入解读为字符串。
用户输入的是数字21,但我们请求Python提供变量age的值时,它返回的是‘21’,即用户输入的数值的字符串表示。如果我们只想打印输入,这没有问题,但如果我们试图将输入作为数字使用,就会引发错误:
因为它无法将字符串和整数进行比较,即不能将存储在age中的字符串‘21’与数值18进行比较。为了解决这个问题,可以使用函数int(),他让Python将输入视为数值。函数int()将数字的字符串表示转换为数值表示,如下:
- 求模运算符
处理数值信息时,求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数:
求模运算符不会指出一个数是另一个数的多少倍,而只能指出余数是多少。
如果一个数可被另一个数整除,余数就为0,因此求模运算符将返回0。我们可以利用这一点来判断一个数是奇数还是偶数:
2、while循环简介
for循环用于针对集合中的每个元素的一个代码块,而while循环不断地运行,直到指定的条件不满足为止。
- 使用while循环
我们可以使用while循环来数数,例如,下面的while循环从1数到5:
在第一行,我们将current_number设置为1,从而指定从1开始数。接下来的while循环被设置为:只要current_number小于或等于5,就接着运行这个循环。循环中的代码打印current_number的值,再使用代码current_number+=1(代码current_number=current_number+1)将其值加1。
只要满足条件current_number<=5,Python就接着运行这个循环。由于1小于5,因此Python打印1,并将current_number加1,使其为2;由于2小于5,因此Python打印2,并将current_number加1,使其为3,以此类推。一旦current_number大于5,循环就将停止。整个程序也将到此结束。
我们每天使用的程序很可能就包含while循环。例如,游戏使用while循环,确保在玩家想玩时不断运行,并在玩家想退出时停止运行。
- 让用户选择何时退出
可使用while循环让程序在用户愿意时不断地运行,如下面的程序所示。我们在其中定义了一个退出值,只要用户输入的不是这个值,程序就接着运行。
首先,我们定义了一条提示信息,告诉用户他有两个选择:要么输入一条消息,要么输入退出值(这里为quit)。接下来,我们创建了一个变量message,用于存储用户输入的值。我们将变量message的初始值设置为空字符串‘’,让Python首次执行while代码行时有可供检查的东西。Python首次执行while语句时,需要将message的值与‘quit’进行比较,但此时用户还没有输入。如果没有可供比较的东西,Python将无法继续运行程序。为解决这个问题,我们必须给变量message指定一个初始值。虽然这个初始值只是一个空字符串,但符合要求,让Python能够执行while循环所需的比较。只要message的值不是‘quit’,这个循环就会不断运行。
首次遇到这个循环时,message是一个空字符串,因此Python进入这个循环,执行到代码行message=input(prompt)时,Python显示提示消息,并等待用户的输入。不管用户输入是什么