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
相关推荐
weixin_459753949 小时前
golang如何实现Trace上下文传播_golang Trace上下文传播实现思路
jvm·数据库·python
weixin_444012939 小时前
PHP 中逻辑或(--)运算符的正确使用与条件逻辑重构指南
jvm·数据库·python
Lee川15 小时前
LangChain 加持:后端 AI 流式对话的优雅实现
后端
iAm_Ike15 小时前
Go 中自定义类型与基础类型间的显式类型转换详解
jvm·数据库·python
iuvtsrt15 小时前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】
jvm·数据库·python
旦莫16 小时前
AI驱动的纯视觉自动化测试:知识库里应该积累什么知识内容
人工智能·python·测试开发·pytest·ai测试
子兮曰17 小时前
Bun v1.3.14 深度解析:Image API、HTTP/3、全局虚拟存储与五十项变革
前端·后端·bun
ltl17 小时前
Self-Attention:让序列自己看自己
后端
楼兰公子17 小时前
buildroot 在编译rust时裁剪平台类型数量的方法
开发语言·后端·rust
知识领航员17 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github