Python(六)用户输入和while循环

一、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
相关推荐
David Bates1 分钟前
代码随想录第18天:二叉树
python·算法·二叉树
陵易居士13 分钟前
Spring如何解决项目中的循环依赖问题?
java·后端·spring
TYUT_xiaoming21 分钟前
python setup.py学习
python
Aska_Lv26 分钟前
RocketMQ---core原理
后端
AronTing31 分钟前
10-Spring Cloud Alibaba 之 Dubbo 深度剖析与实战
后端·面试·架构
没逻辑35 分钟前
⏰ Redis 在支付系统中作为延迟任务队列的实践
redis·后端
雷渊37 分钟前
如何保证数据库和Es的数据一致性?
java·后端·面试
fjkxyl38 分钟前
Spring的启动流程
java·后端·spring
掘金酱39 分钟前
😊 酱酱宝的推荐:做任务赢积分“拿”华为MatePad Air、雷蛇机械键盘、 热门APP会员卡...
前端·后端·trae
A懿轩A1 小时前
2025年十六届蓝桥杯Python B组原题及代码解析
python·算法·蓝桥杯·idle·b组