目录
6.1函数input()的工作原理
函数input()让程序暂停运行,等待用户输入一些文本,获取用户输入后,python将其赋给一个变量,方便使用。
6.1.1简单的input()函数示例
例:下面的程序让用户输入一些文本,再将这些文本呈现给用户。
#input工作原理
name=input("please enter your name:")
print(f"your name is {name}")
6.1.2使用int()来获取数值输入
使用函数input()时,python将用户输入解读为字符串。请看下一个例子
int()将这个字符转换成了数值表示。
后续做出比较,是否大于所输入的数值
age=input("please enter your age:")
age=int(age)
print(f"your age is {age}")
print(age>=15)
if age>15:
print("yes")
else:
print("no")
please enter your age:12
your age is 12
False
no
6.1.3求模运算符
处理数值信息时,求模运算符(%)是个很有用的工具,它将两个数相除并返回余数。
可以用来判断奇偶数。
如果能被2整除,则为偶数,反之则为奇数
4%3,即返回4/3的余数
number=input("please enter a number")
number=int(number)
if number%2==0:
print("这是偶数")
else:
print("这是奇数")
6.2while循环简介
for循环用于针对集合中的每个元素都执行一个代码块,而while循环则不断运行,直到指定的条件不满足组位置为止。
6.2.1使用while循环
可以使用while循环来数数
#while循环
number=1
while number<=5:
print(number)
number+=1
6.2.2让用户选择如何退出
可以使用while循环让程序在用户愿意时不断运行,像下面我们举的这个例子。我们在其中定义了一个退出值,只要用户输入的不是这个值,程序就将接着运行。
prompt=print("输入一串字符,输入‘quit;'结束")
message=""
while message !='quit':
message=input(prompt)
if message !='quit':
print(f"你输入的字符是{message}")
6.2.3使用标志
在要求很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量称为标志(flag),充当程序的交通信号灯。可以让程序在标志为True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。
这样,在while语句中就只需要检查一个条件:标志的当前值是否为True。然后将所有其它测试(是否发生了应将标志设置为False的事件)都放在其他地方,从而让程序更加简洁。
例:在上一例的程序中添加一个标志,用于判断程序是否应继续运行
这样做,程序更加简洁漂亮,且效率更高。将变量active设置为True,让程序最初处于活动状态。这样做简化了while语句。
prompt=print("输入一串字符,输入‘quit;'结束")
active=True
while active:
message=input(prompt)
if message =='quit':
active=False
else:
print(message)
6.2.4使用break退出循环
要立即退出while循环,不再运行循环中余下的代码,可使用break语句。
break语句用于控制程序流程。
例:来看一个让用户指出他到过那些地方的程序。在这个程序中可在用户输入‘quit’ 后使用break语句立即退出while循环:
prompt=print("输入一串字符,输入‘quit;'结束")
while True:
message=input(prompt)
if message =='quit':
break
else:
print(message)
6.2.5在循环中使用continue
要返回循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,它不像break语句那样不再执行余下代码并推退出整个循环。
例:来看一个从1到10但只打印其中奇数的循环
number=0
while number<10:
number+=1
if number%2==0:
continue
print(number)
6.3使用while循环处理列表和字典
6.3.1在列表之间移动元素
假设有一个列表包含新注册但还未验证的网站用户。验证这些用户后,如何将他们移到另一个已验证的用户列表呢?一种办法是使用一个while循环,在验证用户的同时将其从未验证用户列表中提取出来,再将其加入另一个已验证用户列表中。代码可能类似于下面这样:
cars=['bmw','audi','toyota','subaru']
con=[]
while cars:
current=cars.pop()
print(current)
con.append(current)
print(con)
subaru
toyota
audi
bmw
['subaru', 'toyota', 'audi', 'bmw']
6.3.2删除为特定值的所有列表元素
在之前,我们使用remouve()来删除列表中的特定值,是因为要删除的值只在列表中出现一次。下面看看如何删除列表中所有特定值的元素。
cars=['bmw','audi','toyota','subaru']
print(cars)
while 'audi' in cars:
cars.remove('audi')
print(cars)
6.3.3使用用户输入来填充字典
可使用while循环提示用户输入任意多信息。下面创建一个调查程序,其中的循环每次执行时都提示输入被调查者的名字和回答。我们将收集的数据存储在一个字典中,以后将回答和被调查者关联起来:
responses={}
tf=True
while tf:
name=input("what is your name?")
response=input("whatis the day?")
responses[name]=response
yn=input("你还想继续吗?")
if yn=='no':
tf=False
for name,response in responses.items():
print(f"he name is {name},this is {response}")
what is your name?1
whatis the day?1
你还想继续吗?1
what is your name?2
whatis the day?2
你还想继续吗?no
he name is 1,this is 1
he name is 2,this is 2
请指正