Python 用户输入和while循环

1、input()函数的工作原理(用户输入)

input()函数让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其赋给变量,以其使用。

在input()函数接受一个参数,既要向用户显示的提示,为了让用户知道改输出什么样的信息,在如上的代码中运行,用户会看见提示。等待用户输入,并在按回车键后继续运行。

1.1、使用int()来获取数值输入

在使用input()函数用来用户自定义输入时,默认将用户输入的元素解读为字符串。

当试图将该输入的值用于数值比较时,Python会报错,因为它无法让字符串与数值进行比较,这时就应该把用户输入的数值转换为数型。例:

注:在将数值输入用于计算和比较前,务必转换为数值表示。

2、while循环简介

for循环与while循环的区别:

for循环:用于针对集合的每个元素执行一个代码块

while循环:不断地运行,直到指定的条件不在满足则停止循环

2.1、使用while循环

可以使用while循环来数数。例:打印1~5的数:

python 复制代码
num=1
while num <= 5:
    print(num)
    num += 1

只要num <= 5则接着循环,直到 num > 5时才停止,如下为输出:

2.2、使用break退出循环

如果不管条件测试的结果如何,想立即退出while循环,不再运行循环中余下的代码。使用break语句,用于控制程序流程。

如下,只要输入了quit就会停止程序,没输入quit程序就会一直执行提示你输入'你去过的城市':

python 复制代码
while True:
    city = input("请输入你去过的城市:")
    if city == 'quit':
        break
    else:
        print(f"I'd love to go to {city.title()}")

输入了quit,遇到break语句,导致Python退出循环:

2.3、在循环中使用continue

要返回循环开头,并根据条件测试的结果决定是否继续执行循环。

break语句与continue语句的区别:

break语句:退出循环

continue语句:退出当前循环,执行下一个循环

在 0~10的范围内只打印奇数:

python 复制代码
sum=0
while sum < 10:
    sum += 1
    if sum % 2 ==0:
        continue
    print(sum)

每当sum为偶数时,都会进行continue语句,遇到它退出当前循环,则sum为偶数就不会执行后面的print(sum)语句,而是返回循环的开头,开始一个新循环。输出如下:

3、使用while循环处理贴标和字典

for循环是一种遍历列表的有效方式,但不应该在for循环中修改列表,否则导致Python难以跟踪其中的元素。要在遍历列表的同时修改它,可使用while循环。

3.1、在列表之间移动元素

假设有一个列表包含新注册但还未验证的网站用户。验证这些用户后,如何将他们移到已验证用户列表中呢?一种办法是使用一个while循环,在验证用户的同时将其从未验证用户列表中提取出来,在将其加入已验证用户列表。代码如下:

python 复制代码
#首先,创建一个待验证用户列表
#和一个用于存储已验证用户的空列表
uncon=['alice','brian','candace']     #未验证列表
con=[]                                #空列表,用于存储已验证用户
#验证每个用户,直到没有未验证用户为止
#将每个经过验证的用户都移到已验证用户列表中
while uncon:
    curr = uncon.pop()      #每次从uncon列表的末尾删除一个未验证的数,并将这删除的数赋给变量curr
    print(f"Verifying_user:{curr.title()}")
    con.append(curr)                  #curr的元素加入列表con中,则为已验证
#显示所用的已验证用户
print("\n已验证的用户为: ")
for con in con :
    print(con.title())

未验证用户为空后结束循环:

3.2、使用用户输入填充字典

可以使用while循环提示用户输入任意多的值。下面创建一个调查程序,其中循环在每次执行时都提示输入被调查者的名字和内容。我们将收集到的数据存储在一个字典中,以便将回答与被调查者关联起来:

python 复制代码
resps={}   #创建一个空字典
#设置一个标签,指出调查是否继续
poll = True
while poll:
    name = input("名字为:")   #为字典中的键
    resp = input("内容为:")   #字典中的值
    resps[name]=resp          #将回答存储在字典中
    repeat = input("还有人要参加调查吗?(yes/no)")   #看是否还有人需要
    if repeat == 'no':
        poll = False
#调查结果,显示结果
print("\n---所用结果统计---")
for name,resp in resps.items():
    print(f"名字:{name} ,内容: {resp}.")

输入no结束调查:

相关推荐
Zane199442 分钟前
闭包到底"闭"住了什么?一文讲透 LEGB 规则与循环里的闭包陷阱
后端·python
techdashen1 小时前
Go设计取舍之六: sync.Mutex正常模式与饥饿模式
开发语言·后端·golang
Lumi_Peak1 小时前
Claude思考了42秒,我的代码质量直接提升了一个档次
python·claude
TunerT_TQ1 小时前
【智能体安全治理|专栏第9期】从“一堆规则”到“数字宪法”:智能体治理的下一个阶段
java·开发语言·安全·开源治理·大模型安全·ai基础设施·智能体安全
Aurorar0rua1 小时前
CS50 x 2024 Notes Algorithms - 07
c语言·开发语言·学习方法
m沐沐1 小时前
【机器学习】DBSCAN聚类算法——原理、参数调优与实战
人工智能·python·深度学习·算法·机器学习·聚类·dbscan
程序员-Benothing1 小时前
Java ForkJoinPool 详解:从分治思想到高性能并行计算
java·开发语言·后端·面试·职场和发展
脚踏实地皮皮晨2 小时前
003006001_WrapPanel控件
开发语言·c#·.net·wpf·visual studio
梅孔立2 小时前
推荐一个 Python 开源项目:AI 模板填充 + Markdown 转 Word,面向 Aspose 模板引擎的效率神器
人工智能·python·开源
码农小韩2 小时前
AIAgent应用开发——大模型理论基础与应用(七)
python·学习·ai·大模型·agent