输入与输出
本节目标
学完这一节,你会知道:
- 如何用
print()输出内容 - 如何用
input()获取键盘输入 - 为什么
input()得到的永远是字符串 - 如何把输入内容转换成数字
- 如何写一个简单的交互式问卷
这一节开始,你的程序就不只是自己运行了,它可以和用户对话。
先跑一个例子
新建文件 hello_input.py,写入:
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:"))
print(f"你好,{name}!")
print(f"明年你就 {age + 1} 岁了。")
运行:
python3 hello_input.py
你会看到程序等待你输入:
请输入你的名字:
输入名字和年龄后,程序会输出问候语。
含有 input() 的代码建议在本机终端运行。网页里的运行环境不一定支持交互式输入。
print():输出内容
print() 就像程序的嘴巴,用来把内容显示到屏幕上。
print("Hello")
print(42)
print(3.14)
也可以一次输出多个内容:
name = "小明"
age = 18
print("我叫", name, "今年", age, "岁")
输出:
我叫 小明 今年 18 岁
多个内容之间默认会加空格。
自定义分隔符和结尾
sep 可以控制多个内容之间用什么分隔。
print("2026", "02", "05", sep="-")
print("Python", "Flask", "SQLite", sep=" | ")
输出:
2026-02-05
Python | Flask | SQLite
end 可以控制输出结尾。默认结尾是换行。
print("第一行", end=" ")
print("还是第一行")
输出:
第一行 还是第一行
input():获取用户输入
input() 会显示提示文字,并等待用户输入。
name = input("请输入你的名字:")
print(f"你好,{name}!")
注意:input() 得到的永远是字符串。
age = input("请输入年龄:")
print(type(age))
即使用户输入 18,age 也是字符串 "18",不是整数 18。
类型转换
如果要把输入当数字计算,需要转换类型。
age = int(input("请输入年龄:"))
print(f"明年你 {age + 1} 岁")
小数用 float():
height = float(input("请输入身高,单位米:"))
print(f"你的身高是 {height:.2f} 米")
多个数字可以先用 split() 拆开:
text = input("请输入两个数字,用空格分隔:")
parts = text.split()
a = int(parts[0])
b = int(parts[1])
print(f"它们的和是:{a + b}")
f-string 格式化输出
f-string 可以把变量放进字符串。
name = "小明"
score = 98.5
print(f"{name} 的成绩是 {score} 分")
控制小数位:
price = 9.9
count = 3
total = price * count
print(f"总价:{total:.2f} 元")
输出:
总价:29.70 元
也可以直接写表达式:
print(f"5 + 3 = {5 + 3}")
逐行拆解
再看开头的程序:
name = input("请输入你的名字:")
这一行让用户输入名字,并把结果保存到 name。
age = int(input("请输入你的年龄:"))
input() 先得到字符串,再用 int() 转成整数。
print(f"明年你就 {age + 1} 岁了。")
因为 age 已经是整数,所以可以做 age + 1。
实战:交互式问卷
新建文件 survey.py,写入:
print("=" * 30)
print("Python 学习情况调查")
print("=" * 30)
name = input("你的名字:")
days = int(input("你已经学习 Python 几天了:"))
goal = input("你学习 Python 的目标:")
print()
print("问卷结果")
print("-" * 30)
print(f"姓名:{name}")
print(f"学习天数:{days}")
print(f"下周学习天数:{days + 7}")
print(f"学习目标:{goal}")
运行后,按提示输入内容。
自己改一改
在 survey.py 里继续增加两个问题:
- 每天能学习多少小时
- 最想做的 Python 小项目
然后输出:
如果坚持 7 天,你大约能学习 XX 小时。
你的第一个小项目可以是:YYY
提示:每天学习小时数可以用 float() 转换。
常见错误
1. input 得到字符串却直接计算
错误写法:
age = input("请输入年龄:")
print(age + 1)
正确写法:
age = int(input("请输入年龄:"))
print(age + 1)
2. 输入非数字导致转换失败
age = int(input("请输入年龄:"))
如果用户输入 abc,会报 ValueError。后面学习异常处理时,我们会让程序优雅处理这种情况。
3. f-string 忘记写 f
错误写法:
name = "小明"
print("你好,{name}")
正确写法:
print(f"你好,{name}")
4. 引号没有成对出现
错误写法:
print("Hello)
正确写法:
print("Hello")
小练习
练习 1:年龄计算器
输入用户年龄,输出:
你现在 XX 岁,5 年后 XX 岁。
练习 2:长方形面积
输入长和宽,计算面积。
要求长和宽可以是小数。
练习 3:购物小票
输入商品名、单价、数量,输出总价,保留两位小数。
参考答案
练习 1:
age = int(input("请输入年龄:"))
print(f"你现在 {age} 岁,5 年后 {age + 5} 岁。")
练习 2:
length = float(input("请输入长:"))
width = float(input("请输入宽:"))
area = length * width
print(f"面积是:{area:.2f}")
练习 3:
name = input("商品名:")
price = float(input("单价:"))
count = int(input("数量:"))
total = price * count
print(f"{name} x {count},总价 {total:.2f} 元")
小结
这一节你学会了:
print()用来输出内容input()用来获取用户输入input()返回的一定是字符串int()和float()可以把输入转换成数字- f-string 可以让输出更清楚
下一章我们会学习流程控制。程序将不再只是从上到下一行行执行,而是可以根据条件选择不同路线。
程序开始会接话了,这一步很关键
学会 input() 之后,代码就不再只是自言自语。你可以让它问名字、算面积、开小票,像个还不太熟练但很认真工作的助手。记得输入进来的内容默认是字符串,别让年龄假装自己是数字太久。
还没有评论,来抢沙发吧!