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 零基础全套教程,下一章学习第九章:函数。

相关推荐
兮动人36 分钟前
Python变量与常量
开发语言·python·机器学习·python变量与常量
风筝在晴天搁浅43 分钟前
解题代码清爽版
java·开发语言
2601_962300811 小时前
机器学习的理想基石
人工智能·python·机器学习·编程语言·数据处理
Java后端的Ai之路1 小时前
21、Python - 命令模式
开发语言·人工智能·python·命令模式·外观模式
astronautyi1 小时前
Go 运行时内存分配与 GC 位图深度剖析
开发语言·后端·golang
2601_962077981 小时前
机器学习及其Python实践
pytorch·python·机器学习·tensorflow·scikit-learn
techdashen1 小时前
Go 中如何处理错误
开发语言·后端·golang
小柯南敲键盘1 小时前
跨马翻译批量图片视频字幕翻译,跨境电商AI智能抠图一站式工具
人工智能·python·音视频·xcode
2601_962295581 小时前
Python中正则表达式的知识汇总分享
python·正则表达式·模块·语法·匹配