news 2026/9/4 8:03:02

Python 零基础入门第九章:用户输入与 While 循环

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 零基础入门第九章:用户输入与 While 循环

专栏:Python 零基础全套入门教程 🎯 本章定位:实现程序和人交互的核心章节。input()实现接收键盘输入,while循环实现重复执行逻辑。做控制台交互工具、菜单程序、游戏逻辑都会大量用到,也是后续做自动化脚本的基础。

✅ 学习目标

  1. 掌握input()获取用户键盘输入,理解输入全部为字符串类型
  2. 学会对输入数据做类型转换int()float()
  3. 熟练掌握while循环语法,理解循环条件、循环终止
  4. 学会使用break跳出循环、continue跳过本次循环
  5. 掌握标志位控制循环,学会避免无限循环
  6. 结合 while 完成列表、字典的数据处理

一、用户输入 input () 函数

input():程序暂停运行,等待用户在控制台输入内容,按下回车之后,把用户输入的内容以字符串的形式返回。

1.1 基础用法

# input括号内写提示文字 message = input("请输入一句话:") print(f"你输入的内容是:{message}")

重点:无论用户输入数字、文字、符号,input()拿到的数据永远是字符串str

num = input("请输入数字:") print(type(num)) # <class 'str'>

1.2 输入数字,类型转换

如果需要拿输入做数值运算,必须使用int()或者float()转换成数字类型。

# 将输入转为整数 age = int(input("请输入你的年龄:")) print(f"5年后你的年龄:{age + 5}") # 转为浮点数(小数) height = float(input("请输入身高:")) print(f"身高:{height}")

坑点:如果用户输入非数字文本,int()转换直接报错崩溃,后续学习异常处理后可以解决这个问题。

1.3 input 结合 if 做简单交互判断

age = int(input("请输入年龄:")) if age >= 18: print("已成年") else: print("未成年")

二、while 循环基础

for循环:多用于遍历序列(列表、字典),循环次数由容器元素数量决定。while循环:只要条件为 True,就会一直重复执行循环体内代码;适合不知道循环多少次,只知道循环终止条件的场景。

语法格式:

while 条件表达式: 循环执行代码(注意缩进)

2.1 简单 while 示例

# 打印1~5 i = 1 while i <= 5: print(i) i = i + 1 # 计数器自增,非常关键

执行逻辑:

  1. 判断i <=5是否成立;成立执行内部代码
  2. 打印 i,i 自加 1
  3. 回到 while 再次判断条件,直到条件为 False,循环结束

⚠️ 无限循环:忘记写计数器更新,条件永远 True,程序死循环。

# 错误!死循环,不要直接运行 # i = 1 # while i <=5: # print(i)

2.2 使用标志位控制循环

定义一个布尔变量作为循环开关,多处逻辑可以控制循环是否结束,适合菜单交互程序。

active = True while active: msg = input("请输入内容,输入quit退出程序:") if msg == "quit": active = False else: print(f"收到消息:{msg}")

三、break、continue 循环控制关键字

3.1 break:直接彻底跳出整个 while 循环

一旦执行break,立刻终止循环,不再判断条件,直接执行循环后面代码。

while True: text = input("输入quit退出:") if text == "quit": break print(text) print("循环已经结束")

while True代表条件永久成立,内部依靠break退出循环,开发非常常用。

3.2 continue:跳过本次循环,直接进入下一轮循环

continue不会终止整个循环,仅仅跳过本次后面代码,回到 while 条件判断处开启下一轮。

# 打印1‑10,只打印奇数 i = 0 while i < 10: i = i + 1 if i % 2 == 0: continue print(i)

运行逻辑:i 是偶数时触发 continue,后面 print 不会执行,直接回到循环开头。

易错:continue 前面一定要更新计数器,否则会卡死死循环。

四、while 循环处理列表与字典

for循环遍历列表的时候,不建议同时修改列表;while 适合一边循环一边删除、新增元素

4.1 使用 while 删除列表中特定全部元素

user_list = ["张三","李四","张三","王五","张三"] # 删除列表中全部"张三" while "张三" in user_list: user_list.remove("张三") print(user_list)

4.2 使用 while 收集用户输入存入字典

user_dict = {} while True: name = input("请输入用户名:") score = input("请输入分数:") user_dict[name] = score again = input("是否继续录入?(y/n):") if again == "n": break print(user_dict)

五、本章高频易错点总结

  1. input()返回永远字符串,做数学运算必须int()/float()转换;输入文字转数字直接报错。
  2. while 循环千万不要忘记更新计数器,否则出现无限死循环。
  3. continue执行后,本轮后续代码不再运行,直接进入下一轮。
  4. break跳出最内层循环,多层嵌套循环只能跳出当前一层。
  5. while True 必须搭配 break,否则死循环。
  6. for 适合遍历;while 适合未知循环次数、动态增删容器的场景。

区分记忆

  • for:我知道要循环多少次 / 有多少元素
  • while:我不知道多少次,满足条件就停

📝本章实战习题

基础题

  1. 获取用户输入的两个数字,计算两个数字相加结果并打印输出。
  2. 使用 while 循环打印 1 到 100 所有数字。
  3. 写程序,用户不断输入内容,输入exit就退出程序。

进阶题

  1. 使用 while 循环计算 1~100 累加总和。
  2. 编写登录程序:用户输入账号密码,账号密码为admin123456登录成功;失败可以重新输入,最多允许输入 3 次,3 次失败直接退出。

思考题

  1. 现有列表todo = ["看书","跑步","打游戏","跑步"],使用 while 循环把列表中所有"跑步"全部移除,打印最终列表。

✅参考答案

#习题1 num1 = int(input("请输入第一个数字:")) num2 = int(input("请输入第二个数字:")) print(num1 + num2) #习题2 i = 1 while i <= 100: print(i) i += 1 #习题3 while True: content = input("请输入内容:") if content == "exit": break print(content) #习题4 total = 0 i = 1 while i <=100: total = total + i i += 1 print(total) #习题5 count = 0 while count <3: username = input("账号:") pwd = input("密码:") if username == "admin" and pwd == "123456": print("登录成功") break else: count +=1 print(f"账号密码错误,剩余次数:{3‑count}") #习题6 todo = ["看书","跑步","打游戏","跑步"] while "跑步" in todo: todo.remove("跑步") print(todo)

💖点赞 + 收藏 + 关注,持续更新 Python 零基础全套教程,下一章学习第九章:函数。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 8:02:34

DOS时代嵌入式存储管理:TrueFFS驱动与DiskOnChip工具包深度解析

简介&#xff1a;本资源是专为嵌入式系统工程师设计的DiskOnChip TFFS 5.1.4 DOS工具集&#xff0c;面向需在无现代操作系统环境下部署与维护True Flash File System的开发人员&#xff0c;解决闪存设备初始化、固件升级、数据读写及状态诊断等核心问题。压缩包共22个文件&…

作者头像 李华
网站建设 2026/9/4 8:02:25

RK3588 边缘 AI视觉算法推理的帧率之谜?

边缘 AI 推理的帧率之谜&#xff1a;为什么配置 10fps 实际只有 2fps&#xff1f;越微智能&#xff08;Yuewell&#xff09;工业边缘 AI 工程实践系列 第 5 篇 关键词&#xff1a;帧率调优、上限节流、推理背压、零拷贝帧传递、UDS、DMA-BUF、RK3588一、常见困惑&#xff1a;配…

作者头像 李华
网站建设 2026/9/4 8:02:15

Android五子棋开发实战:从自定义View到游戏逻辑完整实现

简介&#xff1a;本资源是一个基于Android Studio开发的五子棋实战项目&#xff0c;面向Android初学者与移动应用开发学习者&#xff0c;旨在通过完整游戏案例掌握UI布局、事件响应、游戏逻辑封装与Kotlin编程实践。压缩包共49个文件&#xff0c;含17个XML布局与配置文件&#…

作者头像 李华
网站建设 2026/9/4 8:01:59

AI 私聊不该有“账号违规“

一、一个具体的触发场景 笔者在排查一次生产环境故障时&#xff0c;将一段系统日志粘贴到 AI 对话框&#xff0c;请求分析报错原因。日志中包含以下关键词&#xff1a; [FATAL] Segmentation fault at 0x7f... [ERROR] Buffer overflow detected in module X [WARN] Process k…

作者头像 李华
网站建设 2026/9/4 8:01:29

STM32 DDS信号发生器实战:从硬件选型到THD优化

简介&#xff1a;本资源是一套基于STM32F103C6微控制器的DDS&#xff08;直接数字频率合成&#xff09;信号发生器完整仿真开发工程&#xff0c;面向嵌入式初学者、电子类课程设计学生及单片机实践开发者&#xff0c;解决波形生成原理理解难、软硬件协同调试复杂等实际问题。压…

作者头像 李华
网站建设 2026/9/4 7:59:22

PyTorch实现红外与可见光图像融合:从原理到Jupyter实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华