此文章为Python基础知识点(从入门到实践)-- 用户输入和while循环,此节Python基础知识点主要包括:函数input()工作原理、while循环简介、使用while循环处理列表和字典。
一、函数input()的工作原理
函数 input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,python将其赋值给一个变量,以方便使用。函数 input()接受一个参数--要向用户显示的提示或说明,让用户该知道如何做。
1.1 编写清晰的程序
每当使用函数input()时,都应指定清晰易懂的提示,准确的指出希望用户应该输入何种信息的任何提升都行。例子如下:
name = input('Please enter your name: ')
print(f'\nHello,{name}')
输出结果如下:
输入名字后显示:
有时候,提示可能超过一行。比如可能要指出获取输入的特定原因,可将提示赋值给一个变量,再将变量传递给函数 input()。这样即使提示超过一行也会非常清晰。例子如下:
prompt = 'Pleasw tell me your name.'
prompt += '\nWhat is your name? '
name = input(prompt)
print(f'\nHello,{name}')
运行结果如下:
输入名字后显示:
第一行将消息前半部分赋值给变量,第二行运算符+=在前面赋值给变量prompt末尾加上下一行字符串。
1.2 使用 int()来获取数值输入
使用函数input()时,python将用户输入了理解成字符串,接下来我们要学的就是在input()函数输入数值时,使python理解输入数值为数值,而不是把输入数值理解为字符串。
为解决这个问题我们可以使用函数 int()。
使用函数 int()之前代码如下:
age = input('How old are you? ')
if age >= 18:
print('\nGood.')
else:
print('Too young.')
输入年龄后显示:
使用函数 int()之后代码如下:
age = input('How old are you? ')
age = int(age)
if age >= 18:
print('\nGood.')
else:
print('\nToo young.')
输入年龄后显示:
将数值输入用于计算和比较前,务必将其转化为数值表示。
1.3 求模运算符
处理数值信息时,求模运算符(%)是个很有用的工具,它将两个数相除并返回余数。求模运算符不会指出一个数是另一个数的多少倍,只指出余数是多少。
如果一个数能被另一个数整除,余数就为0,因此求模运算将返回0。可利用这一点判断一个数是奇数和偶数。
代码如下:
number = input("Enter a number,and I will tell you if it is even or odd: ")
number = int(number)
if number % 2 == 0:
print(f'\nThe number {number} is even.')
else:
print(f'\nThe number {number} is odd.')
运行并输入数字后显示:
二、while 循环简介
for循环用于针对集合中的每个元素都执行一个代码块,而while循环则不断运行,直到指定的条件不满足为止。
2.1 使用while 循环
可使用while循环来数数。例子如下:
number = 1
while number <= 5:
print(number)
number += 1 # 是 number = numbr + 1 的简写
运行结果如下:
2.2 让用户选择何时退出
可使用while循环让程序在用户愿意时不断运行。在程序中定义一个退出值,只要用户输入的不是这个值,程序就将接着运行。例子如下:
prompt = "Tell me your name:"
prompt += "\nEnter 'quit' to end the program. "
message = ''
while message != 'quit':
message = input(prompt)
if message != 'quit':
print(message)
运行结果如下:
2.3 使用标志
在满足很多条件都满足才继续运行的程序中,可定义一个变量,用于判断整个程序是否处于活动状态。这个变量称为标志,充当程序的交通信号灯。可让程序在标准为True时继续运行,并在任何事件导致标志的值为False时让程序停止运行。这样,在while语句中就只需检查一个条件:标志的当前值是否为True。
例子如下:
prompt = "Tell me your name :"
prompt += "\nEnter 'quit' to end the program. "
active = True
while active:
message = input(prompt)
if message == 'quit':
active = False
else:
print(message)
运行结果如下:
2.4 使用break 退出循环
要立即退出while循环,不再运行循环中余下的代码,也不管条件测试的结果如何,可使用break语句。break语句用于控制程序流程,可用来控制哪些代码行将执行、哪些代码行不执行,从而让程序按你的要求执行你要执行的代码。
例子如下:
prompt = "Tell me your name :"
prompt += "\nEnter 'quit' to end the program. "
while True:
message = input(prompt)
if message == 'quit':
break
else:
print(f'Hello,{message}')
运行结果如下:
2.5 在循环中使用 continue
要返回循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue语句,他不像break语句那样不再执行余下的代码并退出整个循环。
例子如下:
current_number = 0
while current_number <10:
current_number += 1
if current_number % 2 == 0:
continue
print(current_number)
运行结果如下:
首先将current_number设置为0,由于小于10,python进入while循环。进入循环以后,以步长1的方式往上数,因此current_number为1。接下来,if语句检查current_number与2的求模运算结果。如果结果为0,就执行continue语句,让python忽略余下的代码,并返回循环的开头。若不能被2整除,就执行循环中余下的代码,将数打印出来。
三、使用while循环处理列表和字典
通过while循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和使用。for循环是一种遍历列表的主要方式,但不应在for循环中修改列表,否则python难以追踪其中的元素。
3.1 在列表之间移动元素
while循环可将一个列表中元素提取出来,再将其加入另一个已验证用户列表中。
代码类似于以下:
pets = ['dogs','cats','rabbit']
old_pets = []
while pets:
wave_pets = pets.pop()
print(f'pets:{wave_pets}')
old_pets.append(wave_pets)
print('\nThe old pets:')
for old_pet in old_pets:
print(old_pet)
运行结果如下:
3.2 删除为特定值的所有列表元素
可使用while循环加函数remove()来删除列表中的特定值。代码如下:
pets = ['dogs','cats','rabbit','cats','ducks','cats']
print(pets)
while 'cats' in pets:
pets.remove('cats')
print(pets)
运行结果如下:
3.3 使用用户输入来填充字典
可使用while循环提示用户输入信息,并将收集的信息存储在一个字典中。代码例子如下:
responses = {}
# 设置一个标志,指出调查是否继续
polling_active = True
while polling_active:
# 提示输入被调查者的名字和回答
name = input('\nWhat is your name?')
response = input('How old are you?')
# 将回答存储在字典中
responses[name] = response
# 看看是否还有人要参与调查
repeat = input('Others?()yes/no')
if repeat == 'no':
polling_active = False
# 调查结束,显示结果。
print('\n---Result---')
for name,response in responses.items():
print(f"{name}is{response}.")
运行结果如下:
今天的学习总结就到这里啦!如果有什么问题可以在评论区留言呀~
如果帮助到大家,可以一键三连+关注支持下~
参考学习书籍:Python编程 从入门到实践 (第二版)