目 录CONTENT

文章目录

Python(三) 基础语法:输入和输出

Python(三) 基础语法:输入和输出

一、为什么要学习输入和输出

程序不是孤立存在的。一个程序通常需要和外界交流:

  • 从用户那里获取数据,这叫输入。
  • 把处理结果展示出来,这叫输出。

例如,一个成绩判断程序需要先让用户输入成绩,然后程序判断成绩是否及格,最后把结果输出到屏幕上。

score = int(input("请输入成绩:"))

if score >= 60:
    print("及格")
else:
    print("不及格")

这段代码中:

  • input("请输入成绩:") 是输入。
  • print("及格")print("不及格") 是输出。

输入和输出是 Python 初学阶段非常重要的内容。掌握它以后,学生写出来的程序就不再只是固定结果,而是可以根据用户输入产生不同结果。


二、输入和输出的定义

1. 什么是输入

输入指的是程序从外部接收数据。

在基础学习阶段,最常见的输入是键盘输入。

也就是说,程序运行时,用户在键盘上输入内容,程序把这些内容接收进来。

Python 中最常用的键盘输入函数是:

input()

例子:

name = input("请输入你的姓名:")

程序运行到这一行时,会暂停等待用户输入。用户输入内容并按下回车后,输入的内容会被保存到变量 name 中。


2. 什么是输出

输出指的是程序把数据展示给外部。

在基础学习阶段,最常见的输出是把内容显示到屏幕上。

Python 中最常用的屏幕输出函数是:

print()

例子:

print("你好,Python")

运行后,屏幕上会显示:

你好,Python

三、print() 输出函数

print() 是 Python 中最常用的输出函数,用来把内容显示到屏幕上。

基本格式:

print(要输出的内容)

例如:

print("Hello")
print(123)
print(3.14)

输出结果:

Hello
123
3.14

四、print() 的基本使用方法

1. 输出字符串

字符串就是一段文本,需要用引号包起来。

print("欢迎学习 Python")

输出:

欢迎学习 Python

单引号也可以:

print('欢迎学习 Python')

一般来说,单引号和双引号都能表示字符串。教学时建议先统一使用双引号,学生更容易形成习惯。


2. 输出数字

输出数字时,不需要加引号。

print(100)
print(3.14)

输出:

100
3.14

注意:

print(100)
print("100")

这两行看起来输出都像 100,但它们的含义不同:

  • 100 是整数。
  • "100" 是字符串。

在输出时看起来一样,但参与计算时完全不同。


3. 输出变量

变量中保存了什么内容,print() 就可以输出什么内容。

name = "小明"
age = 18

print(name)
print(age)

输出:

小明
18

4. 同时输出多个内容

print() 可以一次输出多个内容,多个内容之间用逗号隔开。

name = "小明"
age = 18

print("姓名:", name)
print("年龄:", age)

输出:

姓名: 小明
年龄: 18

也可以在同一行输出多个变量:

name = "小明"
age = 18
score = 95

print(name, age, score)

输出:

小明 18 95

默认情况下,print() 输出多个内容时,中间会自动加一个空格。


5. 输出表达式的结果

print() 不仅可以输出固定内容,还可以输出计算结果。

print(10 + 20)
print(5 * 6)
print(100 / 4)

输出:

30
30
25.0

也可以输出变量运算的结果:

price = 20
count = 3

print(price * count)

输出:

60

五、print() 中的 sep 参数

sep 是 separator 的缩写,意思是“分隔符”。

print() 输出多个内容时,默认用空格分隔。

print("小明", 18, "北京")

输出:

小明 18 北京

如果想修改中间的分隔符,可以使用 sep

print("小明", 18, "北京", sep="-")

输出:

小明-18-北京

再比如:

year = 2026
month = 7
day = 1

print(year, month, day, sep="/")

输出:

2026/7/1

教学时可以这样解释:

逗号负责告诉 print() 要输出多个内容,sep 负责决定这些内容中间用什么连接。


六、print() 中的 end 参数

默认情况下,每执行一次 print(),输出后都会自动换行。

print("Hello")
print("Python")

输出:

Hello
Python

这是因为 print() 默认在结尾加了换行符。

如果不想换行,可以使用 end 参数。

print("Hello", end="")
print("Python")

输出:

HelloPython

如果希望两个输出之间用空格连接:

print("Hello", end=" ")
print("Python")

输出:

Hello Python

再比如,输出 1 到 5,让它们显示在同一行:

for i in range(1, 6):
    print(i, end=" ")

输出:

1 2 3 4 5

注意:

end 控制的是一条 print() 输出结束后追加什么内容。


七、转义字符

有些字符不能直接写出来,或者写出来不方便,这时可以使用转义字符。

常见转义字符:

转义字符 含义
\n 换行
\t 制表符,常用于对齐
\" 双引号
\' 单引号
\\ 反斜杠

1. 换行符 \n

print("第一行\n第二行")

输出:

第一行
第二行

2. 制表符 \t

print("姓名\t年龄\t成绩")
print("小明\t18\t95")

输出效果类似:

姓名    年龄    成绩
小明    18      95

3. 输出引号

如果字符串外层使用双引号,里面又要显示双引号,可以使用转义。

print("他说:\"你好\"")

输出:

他说:"你好"

也可以外层用单引号,里面直接写双引号:

print('他说:"你好"')

这在教学中更容易理解。


八、格式化输出

格式化输出指的是按照指定格式把数据输出出来。

比如,我们希望输出:

小明今年18岁,成绩是95分。

如果有变量:

name = "小明"
age = 18
score = 95

就需要把文字和变量组合起来输出。


1. 使用逗号输出

最简单的方法是用逗号。

name = "小明"
age = 18
score = 95

print(name, "今年", age, "岁,成绩是", score, "分。")

输出:

小明 今年 18 岁,成绩是 95 分。

这种方法简单,但默认会在每个内容之间加空格。有时格式不够自然。


2. 使用字符串拼接

可以用 + 拼接字符串。

name = "小明"

print("你好," + name)

输出:

你好,小明

但是要注意,字符串只能和字符串直接拼接。

错误写法:

age = 18
print("年龄:" + age)

这会报错,因为 "年龄:" 是字符串,age 是整数。

正确写法:

age = 18
print("年龄:" + str(age))

这里 str(age) 把整数转换成字符串。


3. 使用 f-string

在现在的 Python 教学中,非常推荐使用 f-string。

基本格式:

f"文字{变量}文字"

例子:

name = "小明"
age = 18
score = 95

print(f"{name}今年{age}岁,成绩是{score}分。")

输出:

小明今年18岁,成绩是95分。

f-string 的优点:

  • 写法直观。
  • 变量放在 {} 中。
  • 不需要手动转换大多数基本类型。
  • 很适合初学者理解。

也可以在 {} 中写简单表达式:

price = 20
count = 3

print(f"总价是{price * count}元。")

输出:

总价是60元。

4. 控制小数位数

输出小数时,经常需要控制小数位数。

例如:

price = 9.876

print(f"价格是{price:.2f}元")

输出:

价格是9.88元

说明:

  • {price} 表示输出变量 price
  • :.2f 表示保留两位小数。

再比如:

score = 88.5

print(f"成绩是{score:.1f}分")

输出:

成绩是88.5分

九、input() 输入函数

input() 是 Python 中最常用的输入函数。

它的作用是:

等待用户从键盘输入内容,并把输入内容作为字符串返回。

基本格式:

变量 = input("提示文字")

例子:

name = input("请输入姓名:")
print("你好,", name)

程序运行时会显示:

请输入姓名:

用户输入:

小明

程序输出:

你好, 小明

十、input() 的使用方法

1. 带提示文字的输入

建议使用 input() 时写上提示文字,这样用户知道应该输入什么。

name = input("请输入你的姓名:")

不推荐:

name = input()

这种写法不是错误,但用户运行程序时不知道要输入什么。


2. input() 的返回值一定是字符串

这是输入部分最重要的知识点之一。

无论用户输入的是文字、整数还是小数,input() 得到的结果都是字符串。

例子:

age = input("请输入年龄:")
print(type(age))

如果用户输入:

18

输出可能是:

<class 'str'>

这说明 age 不是整数 18,而是字符串 "18"


3. 输入整数

如果需要把用户输入当作整数使用,需要用 int() 转换。

age = int(input("请输入年龄:"))

if age >= 18:
    print("已成年")
else:
    print("未成年")

这里:

input("请输入年龄:")

先得到字符串。

int(...)

再把字符串转换成整数。


4. 输入小数

如果需要输入小数,可以使用 float()

height = float(input("请输入身高,单位米:"))
print(f"你的身高是{height}米")

如果用户输入:

1.75

变量 height 中保存的是浮点数 1.75


5. 输入后进行计算

例子:计算两个整数的和。

a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))

total = a + b

print(f"两个数的和是{total}")

如果没有使用 int(),会出现不同结果。

a = input("请输入第一个整数:")
b = input("请输入第二个整数:")

print(a + b)

用户输入:

10
20

输出:

1020

原因是:

ab 都是字符串,字符串之间的 + 表示拼接,不是数学加法。


十一、一次输入多个数据

有时用户会在一行中输入多个数据,例如:

10 20

这时可以使用 split() 拆分。

1. 使用 split() 拆分字符串

text = input("请输入两个数,用空格分隔:")
parts = text.split()

print(parts)

如果用户输入:

10 20

输出:

['10', '20']

split() 默认按照空白字符拆分,包括空格、多个空格、制表符等。


2. 拆分后分别保存

a, b = input("请输入两个数,用空格分隔:").split()

print(a)
print(b)

用户输入:

10 20

输出:

10
20

注意:

此时 ab 仍然是字符串。


3. 拆分后转换成整数

a, b = input("请输入两个整数,用空格分隔:").split()
a = int(a)
b = int(b)

print(f"和是{a + b}")

也可以使用 map() 简化:

a, b = map(int, input("请输入两个整数,用空格分隔:").split())

print(f"和是{a + b}")

对于初学者,建议先讲分步写法,再讲 map() 简写。


十二、输入输出综合示例

示例 1:问候用户

name = input("请输入你的姓名:")

print(f"你好,{name}!欢迎学习 Python。")

运行示例:

请输入你的姓名:小明
你好,小明!欢迎学习 Python。

示例 2:计算矩形面积

length = float(input("请输入矩形的长:"))
width = float(input("请输入矩形的宽:"))

area = length * width

print(f"矩形的面积是{area:.2f}")

运行示例:

请输入矩形的长:5
请输入矩形的宽:3
矩形的面积是15.00

示例 3:判断奇偶数

number = int(input("请输入一个整数:"))

if number % 2 == 0:
    print(f"{number} 是偶数")
else:
    print(f"{number} 是奇数")

示例 4:简单收银程序

price = float(input("请输入商品单价:"))
count = int(input("请输入购买数量:"))

total = price * count

print(f"商品单价:{price:.2f}元")
print(f"购买数量:{count}")
print(f"应付金额:{total:.2f}元")

这个例子适合课堂演示,因为它同时用到了:

  • 输入小数
  • 输入整数
  • 计算
  • 格式化输出
  • 控制小数位数

十三、简单文件输入输出

前面讲的是键盘输入和屏幕输出。除了和用户交流,程序也经常需要和文件交流。

从文件读取内容,也是一种输入。

把内容写入文件,也是一种输出。

这部分可以作为基础输入输出的扩展内容。


1. 写入文件

可以使用 open() 打开文件,再使用 write() 写入内容。

file = open("hello.txt", "w", encoding="utf-8")
file.write("你好,Python")
file.close()

说明:

  • "hello.txt" 是文件名。
  • "w" 表示写入模式。
  • encoding="utf-8" 表示使用 UTF-8 编码,写中文时建议加上。
  • write() 用来写入内容。
  • close() 用来关闭文件。

运行后,会生成一个名为 hello.txt 的文件,里面写入:

你好,Python

2. 使用 with 写入文件

更推荐使用 with,它会在代码块结束后自动关闭文件。

with open("hello.txt", "w", encoding="utf-8") as file:
    file.write("你好,Python")

这比手动 close() 更安全,也更常用。

课堂教学可以先介绍普通写法,再强调实际使用更推荐 with


3. 读取文件

读取文件可以使用 "r" 模式。

with open("hello.txt", "r", encoding="utf-8") as file:
    content = file.read()

print(content)

这段代码会读取 hello.txt 中的全部内容,并输出到屏幕。


4. 逐行读取文件

如果文件有多行内容,可以逐行读取。

假设 students.txt 中有:

小明
小红
小刚

读取代码:

with open("students.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())

这里的 strip() 用来去掉每行末尾的换行符。


5. 追加写入文件

如果不想覆盖原来的文件内容,而是追加到文件末尾,可以使用 "a" 模式。

with open("log.txt", "a", encoding="utf-8") as file:
    file.write("程序运行了一次\n")

说明:

  • "w" 会覆盖原文件内容。
  • "a" 会在原文件末尾追加内容。

这是文件输出中特别需要提醒学生的地方。


十四、输入输出的注意事项

1. input() 得到的是字符串

这是最常见的错误来源。

错误示例:

age = input("请输入年龄:")

if age >= 18:
    print("已成年")

这里会出错,因为 age 是字符串,18 是整数,二者不能直接比较。

正确写法:

age = int(input("请输入年龄:"))

if age >= 18:
    print("已成年")

2. 转换类型时要保证输入内容合法

下面代码要求用户输入整数:

age = int(input("请输入年龄:"))

如果用户输入:

abc

程序会报错,因为 "abc" 不能转换成整数。

后面学习异常处理后,可以这样写:

try:
    age = int(input("请输入年龄:"))
    print(f"你的年龄是{age}")
except ValueError:
    print("输入错误,请输入整数。")

在基础阶段,可以先提醒学生:

使用 int()float() 转换时,用户必须输入符合要求的数字。


3. 不要随便使用 eval() 处理输入

有些资料会使用 eval(input()) 把用户输入自动转成表达式。

例如:

number = eval(input("请输入数字:"))

不建议初学者这样写。

原因是 eval() 会把用户输入当成 Python 代码执行,存在安全风险。

比如用户输入的不是普通数字,而是一段危险代码,程序也可能尝试执行它。

教学中建议明确告诉学生:

输入整数用 int(),输入小数用 float(),不要为了省事滥用 eval()


4. print() 中逗号和加号含义不同

逗号是输出多个内容:

name = "小明"
age = 18

print("姓名:", name, "年龄:", age)

加号是字符串拼接:

name = "小明"

print("姓名:" + name)

如果用加号拼接字符串和数字,会报错:

age = 18
print("年龄:" + age)

正确写法:

age = 18
print("年龄:" + str(age))

或者更推荐:

age = 18
print(f"年龄:{age}")

5. 注意 print() 默认会换行

print("A")
print("B")

输出:

A
B

如果想在同一行输出,要使用 end

print("A", end="")
print("B")

输出:

AB

6. 注意中文编码

在 Python 3 中,字符串本身可以很好地支持中文。

print("你好,世界")

但是读写文件时,如果涉及中文,建议写上:

encoding="utf-8"

例如:

with open("data.txt", "w", encoding="utf-8") as file:
    file.write("你好")

这样可以减少中文乱码问题。


7. 提示文字要清楚

输入提示要让用户知道输入什么。

不推荐:

score = int(input("输入:"))

推荐:

score = int(input("请输入学生成绩:"))

如果有单位,也要写清楚:

height = float(input("请输入身高,单位米:"))

清楚的提示文字能减少用户输入错误。


8. 输出结果要让人看得懂

不推荐:

print(total)

如果只输出一个数字,用户可能不知道它是什么意思。

推荐:

print(f"总价是{total}元")

程序是给人使用的,输出内容应该有明确含义。


十五、教学中可以这样讲

可以用一个生活化比喻:

输入像是老师给学生出题,学生把答案交给程序。

输出像是程序批改后,把结果告诉学生。

比如:

name = input("请输入学生姓名:")
score = int(input("请输入学生成绩:"))

if score >= 60:
    result = "及格"
else:
    result = "不及格"

print(f"{name}的成绩是{score}分,结果:{result}")

这段代码的流程是:

  1. 程序提示用户输入姓名。
  2. 程序提示用户输入成绩。
  3. 程序把成绩转换成整数。
  4. 程序根据成绩判断结果。
  5. 程序把姓名、成绩和判断结果输出。

这就是一个完整的输入、处理、输出过程。

可以把它总结为:

输入 -> 处理 -> 输出

这是很多程序的基本结构。


十六、课堂练习

练习 1:输出个人信息

请定义姓名、年龄、城市三个变量,并用 print() 输出。

要求输出效果类似:

姓名:小明
年龄:18
城市:北京

参考答案:

name = "小明"
age = 18
city = "北京"

print(f"姓名:{name}")
print(f"年龄:{age}")
print(f"城市:{city}")

练习 2:输入姓名并问候

请让用户输入姓名,然后输出问候语。

参考答案:

name = input("请输入你的姓名:")

print(f"你好,{name}!")

练习 3:计算两个整数的和

请让用户输入两个整数,并输出它们的和。

参考答案:

a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))

print(f"两个整数的和是{a + b}")

练习 4:计算圆的面积

请让用户输入圆的半径,计算并输出圆的面积。

参考答案:

radius = float(input("请输入圆的半径:"))
pi = 3.14159
area = pi * radius * radius

print(f"圆的面积是{area:.2f}")

练习 5:判断是否成年

请让用户输入年龄,判断是否成年。

参考答案:

age = int(input("请输入年龄:"))

if age >= 18:
    print("已成年")
else:
    print("未成年")

练习 6:一行输入两个数

请让用户在一行中输入两个整数,计算它们的乘积。

参考答案:

a, b = input("请输入两个整数,用空格分隔:").split()
a = int(a)
b = int(b)

print(f"两个整数的乘积是{a * b}")

也可以写成:

a, b = map(int, input("请输入两个整数,用空格分隔:").split())

print(f"两个整数的乘积是{a * b}")

练习 7:写入文件

请把一句话写入 message.txt 文件。

参考答案:

with open("message.txt", "w", encoding="utf-8") as file:
    file.write("今天开始学习 Python 输入输出。")

练习 8:读取文件

请读取 message.txt 文件中的内容,并输出到屏幕。

参考答案:

with open("message.txt", "r", encoding="utf-8") as file:
    content = file.read()

print(content)

十七、常见错误对照表

错误现象 常见原因 修改方法
输入数字后不能做加法 input() 得到的是字符串 使用 int()float() 转换
字符串和数字用 + 拼接时报错 类型不同,不能直接拼接 使用 str() 或 f-string
每次 print() 都换行 print() 默认结尾是换行 使用 end 参数
多个输出内容中间有空格 print() 默认分隔符是空格 使用 sep 参数
中文写入文件后乱码 文件编码不一致 打开文件时指定 encoding="utf-8"
int(input()) 报错 用户输入的不是整数 提醒用户输入正确格式,或使用异常处理
文件内容被覆盖 使用了 "w" 模式 如需追加,使用 "a" 模式

十八、总结

输入和输出是程序与外界交流的方式。

在 Python 基础语法中:

  • print() 用来输出内容到屏幕。
  • input() 用来从键盘接收用户输入。
  • input() 得到的内容一定是字符串。
  • 如果要把输入当作数字使用,需要使用 int()float() 进行类型转换。
  • f-string 是非常推荐的格式化输出方式。
  • sep 可以控制多个输出内容之间的分隔符。
  • end 可以控制输出结束后是否换行。
  • 文件读写也是输入输出的一种形式,推荐使用 with open(...)

教学时可以让学生记住一句话:

输入负责拿到数据,处理负责计算和判断,输出负责展示结果。

掌握输入和输出后,学生就可以写出能和用户互动的小程序,这是从“看代码”走向“写程序”的重要一步。

0
博主关闭了当前页面的评论