第一章 · Python 基础

输入与输出

本节目标

学完这一节,你会知道:

  1. 如何用 print() 输出内容
  2. 如何用 input() 获取键盘输入
  3. 为什么 input() 得到的永远是字符串
  4. 如何把输入内容转换成数字
  5. 如何写一个简单的交互式问卷

这一节开始,你的程序就不只是自己运行了,它可以和用户对话。

先跑一个例子

新建文件 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))

即使用户输入 18age 也是字符串 "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 里继续增加两个问题:

  1. 每天能学习多少小时
  2. 最想做的 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} 元")

小结

这一节你学会了:

  1. print() 用来输出内容
  2. input() 用来获取用户输入
  3. input() 返回的一定是字符串
  4. int()float() 可以把输入转换成数字
  5. f-string 可以让输出更清楚

下一章我们会学习流程控制。程序将不再只是从上到下一行行执行,而是可以根据条件选择不同路线。

程序开始会接话了,这一步很关键

学会 input() 之后,代码就不再只是自言自语。你可以让它问名字、算面积、开小票,像个还不太熟练但很认真工作的助手。记得输入进来的内容默认是字符串,别让年龄假装自己是数字太久。

讨论 (0)

还没有评论,来抢沙发吧!