一、input()函数的工作原理
input()函数让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其赋给一个变量,以便使用。
python
message=input('Please input your name')
print(message)
input()函数接受一个参数,即要向用户显示的提示(prompt),让用户知道该输入什么样的信息。

每当使用input()函数时,都应指定清晰易懂的提示,准确地指出希望用户提供什么样的信息------能指出用户应该输入什么信息的任何提示都行。
1、使用int()来获取数值输入
在使用input()函数时,Python会将用户输入解读为字符串。请看下面让用户输入整数年龄的解释器会话:
python
>>> age=input("How old are you?")
How old are you?24
>>> age
'24'
Python返回的是'21'------用户输入的数值的字符串表示。当试图将该输入用于数值比较时,Python会报错。为了解决这个这个问题,可使用函数int()将输入的字符串转换为数值,确保能成功地执行比较操作:
python
>>> age
'24'
>>> age=int(age)
>>> age>=18
True
2、求模运算符
在处理数值信息时,求模运算符(%)是个很有用的工具,它将两个数相除并返回余数:
python
>>> 4%3
1
>>> 5%3
2
>>> 6%3
0
二、while循环
for循环用于针对集合中的每个元素执行一个代码块,而while循环则不断地运行,直到指定的条件不再满足为止。
1、使用while循环
可以使用while循环来数数。例如,下面的while循环从1数到5:
python
number=1
while number<=5:
print(number)
number=number+1
只要满足number<=5,Python就会接着运行这个循环。一旦number大于5,循环就将停止,整个程序也将结束:
可以在程序中定义一个退出值,只要用户输入的不是这个值,程序就将一直运行:
python
message="Tell me something,and i will repeat it."
message += "Enter 'q' to quit"
sentence=""
while sentence!="q":
sentence=input(message)
print(sentence)
首先,定义一条提示消息,告诉用户有两个选择:要么输入一条消息,要么输入退出值(这里为'q')。然后,,创建sentence,用于记录用户输入的值。我们将变量sentence的初始值设置为空字符串"",让Python在首次执行while代码行时有可供检查的东西。只要sentence的值不是'q',这个循环就会不断执行。
2、使用标志
在要求满足很多条件才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量称为标志(flag),可以让程序在标志为True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。这样,在while语句中就只需检查一个条件:标志的当前值是否为True。然后将所有测试(是否发生了应将标志设置为False的事件)都放在其他地方,从而让程序更整洁。
python
message="Tell me something,and i will repeat it."
message += "Enter 'q' to quit"
active=True
while active:
sentence=input(message)
if sentence=='q':
active=False
else:
print(sentence)
3、使用break退出循环
如果不管条件测试的结果如何,想立即退出while循环,不再运行循环中余下的代码,可使用break语句。break语句用于控制程序流程,可用来控制哪些代码行将执行、哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。
python
prompt="please enter the name of a city:"
prompt += "Enter 'q' to quit"
while True:
city = input(prompt)
if city == 'q':
break
else:
print(city.title())

4、在循环中使用continue
要返回循环开头,并根据条件测试的结果决定是否继续执行循环,可使用continue语句,它不像break语句那样不再执行余下的代码并退出整个循环。例如,从1数到10,只打印其中奇数的循环:
python
number=0
while number<10:
number += 1
if number%2==0:
continue
print(number)

三、使用while循环处理列表和字典
要记录大量的用户和信息,需要在while循环中使用列表和字典。要在遍历列表的同时修改它,可使用while循环。通过将while循环与列表和字典结合起来使用,可收集、存储并组织大量的输入,供以后查看和使用。
1、删除为特定值的所有列表元素
假设有一个宠物列表,其中包含多个值为'cat'的元素。要删除所有这些元素,可不断运行一个while循环,直到列表中不再包含值'cat':
python
pets=['dog','cat','rabbit','dog','cat']
print(pets)
while 'cat' in pets:
pets.remove('cat')
print(pets)
output
['dog', 'cat', 'rabbit', 'dog', 'cat']
['dog', 'rabbit', 'dog']
2、使用用户填入填充字典
将输入的姓名和年龄存储在一个字典中:
python
infos={}
active=True
while active:
name=input("Enter your name: ")
age=int(input("Enter your age: "))
infos[name]=age
message=input("go on ? ")
if message=="no":
active=False
for name,age in infos.items():
print(name,age)
output
Enter your name: zhang
Enter your age: 24
go on ? y
Enter your name: liang
Enter your age: 25
go on ? no
zhang 24
liang 25