Python3 的输入输出(I/O)是程序与外界交互的基础。下面从最基础的 print() 和 input() 开始,一步步深入讲解。
一、输出:print() 函数
print() 是 Python 中最常用的输出函数,作用是把内容显示到屏幕上。
1.1 最基础的输出
python
print("Hello, World!")
print(100)
print(3.14)
输出结果:
python
Hello, World!
100
3.14
💡 新手注意 :字符串需要用引号(单引号
'或双引号")包裹,数字不需要。
1.2 同时输出多个内容
print() 可以同时输出多个值,用逗号 , 分隔:
python
print("姓名:", "张三")
print("年龄:", 20)
print("身高:", 1.75, "米")
输出结果:
python
姓名: 张三
年龄: 20
身高: 1.75 米
💡 新手注意 :逗号分隔时,Python 会自动在每个值之间加一个空格。
1.3 自定义分隔符:sep 参数
默认逗号分隔会加空格,你可以用 sep 参数自定义:
python
print("2026", "07", "25", sep="-") # 用横线连接
print("10", "30", "00", sep=":") # 用冒号连接
print("北京", "上海", "广州", sep="→") # 用箭头连接
输出结果:
python
2026-07-25
10:30:00
北京→上海→广州
1.4 自定义结尾:end 参数
默认 print() 输出后会换行 ,你可以用 end 参数改变:
python
print("正在加载", end="")
print("...", end="")
print("完成!")
输出结果:
正在加载...完成!
再举几个例子:
python
print("第一行", end=" | ")
print("第二行", end=" | ")
print("第三行")
输出结果:
第一行 | 第二行 | 第三行
💡 新手注意 :
end=""表示结尾什么都不加;end=" "表示结尾加一个空格;默认是end="\n"(换行符)。
1.5 输出变量
python
name = "李四"
age = 25
score = 89.5
print(name)
print(age)
print(score)
print(name, age, score)
输出结果:
python
李四
25
89.5
李四 25 89.5
二、输入:input() 函数
input() 函数用于从键盘接收用户输入。
2.1 最基础的输入
python
name = input()
print("你好,", name)
运行后程序会暂停,等待你输入内容,按回车键后才会继续执行。
2.2 带提示语的输入
python
name = input("请输入你的名字:")
print("你好,", name, "!")
运行示例:
python
请输入你的名字:王五
你好, 王五 !
💡 新手注意 :
input()括号里的字符串是提示信息,会显示在屏幕上,告诉用户该输入什么。
2.3 输入数字(非常重要!)
这是新手最容易出错的地方! input() 接收到的内容永远是字符串(str)类型,即使输入的是数字。
python
age = input("请输入你的年龄:")
print(type(age)) # 查看数据类型
print(age)
如果你输入 20,输出是:
<class 'str'>
20
看到 <class 'str'> 了吗?说明 age 是字符串,不是数字!
2.4 输入数字的正确做法:类型转换
如果你需要做数学运算,必须先把输入转换成数字:
转换成整数:int()
python
age = input("请输入你的年龄:")
age = int(age) # 把字符串转成整数
print("明年你的年龄是:", age + 1)
运行示例:
请输入你的年龄:20
明年你的年龄是: 21
转换成小数:float()
python
height = input("请输入你的身高(米):")
height = float(height) # 把字符串转成浮点数
print("你的身高是:", height, "米")
运行示例:
python
请输入你的身高(米):1.75
你的身高是: 1.75 米
更简洁的写法(合并为一行)
python
age = int(input("请输入你的年龄:"))
height = float(input("请输入你的身高:"))
⚠️ 新手注意 :如果用户输入的不是数字(比如输入了"abc"),
int()或float()会报错。后续学习try...except可以处理这种情况。
2.5 输入多个值
python
# 一行输入多个值,用空格分隔
a, b = input("请输入两个数字,用空格分开:").split()
a = int(a)
b = int(b)
print("两数之和:", a + b)
运行示例:
请输入两个数字,用空格分开:10 20
两数之和: 30
💡 说明:
split()方法会把输入的字符串按空格切分成多个部分。
三、格式化输出(让输出更美观)
3.1 方法一:f-string(最推荐,Python 3.6+)
在字符串前面加 f,变量用 {} 包裹:
python
name = "张三"
age = 20
score = 92.5
print(f"姓名:{name}")
print(f"年龄:{age} 岁")
print(f"成绩:{score} 分")
print(f"{name} 今年 {age} 岁,考了 {score} 分")
输出结果:
python
姓名:张三
年龄:20 岁
成绩:92.5 分
张三 今年 20 岁,考了 92.5 分
控制小数位数
python
pi = 3.1415926535
print(f"圆周率保留2位:{pi:.2f}") # .2f 表示保留2位小数
print(f"圆周率保留4位:{pi:.4f}")
输出结果:
python
圆周率保留2位:3.14
圆周率保留4位:3.1416
控制宽度与对齐
python
name1 = "Alice"
name2 = "Bob"
score1 = 95
score2 = 88
print(f"{'姓名':<10} {'成绩':>5}") # < 左对齐,> 右对齐
print(f"{name1:<10} {score1:>5}")
print(f"{name2:<10} {score2:>5}")
输出结果:
python
姓名 成绩
Alice 95
Bob 88
:<10表示左对齐,占10个字符宽度;:>5表示右对齐,占5个字符宽度。
3.2 方法二:str.format()
python
name = "李四"
age = 22
print("姓名:{},年龄:{}".format(name, age))
输出结果:
姓名:李四,年龄:22
指定位置
python
print("{1} 比 {0} 大".format("小明", "小红"))
# {0} 对应第一个参数"小明",{1} 对应第二个参数"小红"
输出结果:
小红 比 小明 大
3.3 方法三:% 格式化(较老,了解即可)
python
name = "王五"
age = 25
score = 88.5
print("姓名:%s" % name) # %s 表示字符串
print("年龄:%d" % age) # %d 表示整数
print("成绩:%.1f" % score) # %.1f 表示保留1位小数
print("%s 今年 %d 岁,成绩 %.1f" % (name, age, score))
输出结果:
姓名:王五
年龄:25
成绩:88.5
王五 今年 25 岁,成绩 88.5
四、综合练习示例
示例 1:简单的计算器
python
print("===== 简易计算器 =====")
num1 = float(input("请输入第一个数字:"))
num2 = float(input("请输入第二个数字:"))
print(f"{num1} + {num2} = {num1 + num2}")
print(f"{num1} - {num2} = {num1 - num2}")
print(f"{num1} × {num2} = {num1 * num2}")
print(f"{num1} ÷ {num2} = {num1 / num2:.2f}")
运行示例:
python
===== 简易计算器 =====
请输入第一个数字:10
请输入第二个数字:3
10.0 + 3.0 = 13.0
10.0 - 3.0 = 7.0
10.0 × 3.0 = 30.0
10.0 ÷ 3.0 = 3.33
示例 2:成绩登记表
python
print("===== 学生成绩登记 =====")
name = input("姓名:")
chinese = int(input("语文成绩:"))
math = int(input("数学成绩:"))
english = int(input("英语成绩:"))
total = chinese + math + english
average = total / 3
print("\n===== 成绩单 =====")
print(f"姓名:{name}")
print(f"语文:{chinese} 数学:{math} 英语:{english}")
print(f"总分:{total}")
print(f"平均分:{average:.1f}")
运行示例:
python
===== 学生成绩登记 =====
姓名:小明
语文成绩:85
数学成绩:92
英语成绩:78
===== 成绩单 =====
姓名:小明
语文:85 数学:92 英语:78
总分:255
平均分:85.0
示例 3:打印三角形
python
print(" *")
print(" ***")
print(" *****")
print("*******")
或者用 print 的 end 参数:
python
print("*", end="")
print("*", end="")
print("*")
print("上面打印了3个星号")
五、重点总结
|--------|--------------|---------------------------------|
| 功能 | 函数/方法 | 关键说明 |
| 输出 | print() | 可输出多个值,用 sep 控制分隔符,end 控制结尾 |
| 输入 | input() | 返回值永远是字符串 |
| 转整数 | int() | 把字符串转成整数 |
| 转小数 | float() | 把字符串转成浮点数 |
| 格式化 | f"..." | 最推荐,用 {} 嵌入变量 |
| 保留小数 | f"{x:.2f}" | .2f 保留2位小数 |
六、新手常见错误
❌ 错误 1:忘记类型转换
age = input("年龄:")
print(age + 1) # 报错!字符串不能和整数相加
✅ 正确做法
age = int(input("年龄:"))
print(age + 1)
❌ 错误 2:print 里用等号
print("a" = 10) # 报错!print 里不能用赋值语句
✅ 正确做法
python
a = 10
print("a =", a)
# 或
print(f"a = {a}")
❌ 错误 3:input 提示语后面忘加括号
python
input "请输入:" # 报错!
✅ 正确做法
python
input("请输入:")