专栏:Python 零基础全套入门教程 🎯 本章定位:实现程序和人交互的核心章节。
input()实现接收键盘输入,while循环实现重复执行逻辑。做控制台交互工具、菜单程序、游戏逻辑都会大量用到,也是后续做自动化脚本的基础。
✅ 学习目标
- 掌握
input()获取用户键盘输入,理解输入全部为字符串类型 - 学会对输入数据做类型转换
int()、float() - 熟练掌握
while循环语法,理解循环条件、循环终止 - 学会使用
break跳出循环、continue跳过本次循环 - 掌握标志位控制循环,学会避免无限循环
- 结合 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 # 计数器自增,非常关键
执行逻辑:
- 判断
i <=5是否成立;成立执行内部代码 - 打印 i,i 自加 1
- 回到 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)
五、本章高频易错点总结
input()返回永远字符串,做数学运算必须int()/float()转换;输入文字转数字直接报错。- while 循环千万不要忘记更新计数器,否则出现无限死循环。
continue执行后,本轮后续代码不再运行,直接进入下一轮。break跳出最内层循环,多层嵌套循环只能跳出当前一层。- while True 必须搭配 break,否则死循环。
- for 适合遍历;while 适合未知循环次数、动态增删容器的场景。
区分记忆
- for:我知道要循环多少次 / 有多少元素
- while:我不知道多少次,满足条件就停
📝本章实战习题
基础题
- 获取用户输入的两个数字,计算两个数字相加结果并打印输出。
- 使用 while 循环打印 1 到 100 所有数字。
- 写程序,用户不断输入内容,输入
exit就退出程序。
进阶题
- 使用 while 循环计算 1~100 累加总和。
- 编写登录程序:用户输入账号密码,账号密码为
admin、123456登录成功;失败可以重新输入,最多允许输入 3 次,3 次失败直接退出。
思考题
- 现有列表
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 零基础全套教程,下一章学习第九章:函数。