第 12 课 · 阶段二 · 基础语法

输入与输出:input / print

前面程序都是单向输出,这一课让程序学会“听”:用 input() 读取用户输入,再用 print() 把结果告诉用户。

第 12 课阶段二 · 基础语法难度:入门建议时长:30 分钟关键词:input · print · 格式化输出

🎯 学完本课你将掌握

  • 掌握 input() 的用法与返回值
  • 理解 input 返回的一定是字符串
  • 综合使用 input 与 f-string 做一个对话程序

一、input():读取用户输入

input("提示文字") 会先显示提示,等待用户在终端输入内容并回车,然后把输入的内容作为字符串返回。

第一次对话.py
1name = input("请输入你的名字:")
2print(f"你好,{name}!很高兴认识你。")

二、重要:input 返回的一定是字符串

⚠️ 注意
即使用户输入的是数字 18,input 拿到的也是字符串 "18"。想当数字用,必须先转换(第 13 课详解)。
验证类型.py
1age = input("请输入年龄:")
2print(type(age)) # <class 'str'> 注意是字符串!

三、做一个“加法机”

加法机.py
1a = input("请输入第一个数:")
2b = input("请输入第二个数:")
3# 不转换会变成字符串拼接
4print("错误示范:", a + b) # 12 如果输入1和2
5# 先转成整数再相加
6a2 = int(a)
7b2 = int(b)
8print("正确结果:", a2 + b2)

四、print 的进阶输出

print 进阶.py
1name = "小花"
2score = 99
3# 1. 逗号分隔(自动加空格)
4print("姓名", name, "分数", score)
5# 2. f-string(推荐)
6print(f"姓名:{name},分数:{score}")
7# 3. 表格对齐
8print(f"{'姓名':<8}{'分数':>6}")
9print(f"{name:<8}{score:>6}")
10# 4. 不换行 + 分隔符
11for i in range(5):
12 print(i, end=" ")
13print()

五、综合小项目:个人信息登记

登记程序.py
1print("=" * 30)
2print("欢迎使用信息登记系统")
3print("=" * 30)
4name = input("姓名:")
5age = int(input("年龄:"))
6city = input("城市:")
7hobby = input("爱好:")
8print("-" * 30)
9print(f"姓名:{name}")
10print(f"年龄:{age} 岁")
11print(f"城市:{city}")
12print(f"爱好:{hobby}")
13print(f"简介:{name}来自{city},今年{age}岁,喜欢{hobby}")
14print("-" * 30)

六、常见错误与解决

常见错误与解决

错误现象原因 / 解决方法
ValueError: invalid literal for int()int() 转换时输入了非数字,例如输入了字母。可在转换前用 isdigit() 判断。
TypeError: unsupported operand字符串和数字做了 + 运算,先转换类型或改用 f-string。
程序一闪而过交互模式下回车后程序结束,正常现象;想保持窗口可最后加 input("按回车退出")。
✍️ 小练习
写一个程序:分别输入语文、数学、英语三科成绩,计算总分和平均分(保留1位小数),用 f-string 格式化输出。
📌 本节小结
input() 让程序读入用户输入并返回字符串;做数学运算前要先 int()/float() 转换;输出推荐 f-string。学完输入输出,你的程序已经能和人“对话”了。