零基础学 Python 第2章 | print 输出 + 变量赋值 + input 交互输入
本章摘要:
- 核心目标:掌握程序输出、数据存储、用户交互,编写可对话的简易小程序
- 核心知识点:
print多参数 /end参数、变量赋值与命名、int/float/str/bool四大类型、type()、input输入、int()/float()/str()类型转换 - 实操产出:个人信息自我介绍交互程序、简易计算器、年份算年龄工具
- 前置基础:第1章 Python 环境安装、VS Code 运行代码基础操作
一、写在前面
上一章我们写出了第一个 print("Hello, World!"),程序能把文字显示出来。但有个问题——内容是写死的,每次运行结果都一样。
真正的程序需要两样东西:能记住数据(变量),能接收用户输入(input)。这两个能力一组合,程序就从"只会说话"升级成了"能跟你对话"。
本章带你从 print 的完整用法开始,一步步掌握变量、数据类型、用户输入,最后写出一个能跟人对话的小程序。
二、print 全套用法
print() 是 Python 中最常用的函数,上一章我们只用它输出了一句话。现在来看看它的完整能力。
2.1 输出文字和数字
# 输出文字(字符串,用引号包裹)
print("你好,世界")
# 输出数字(不需要引号)
print(42)
print(3.14)
运行结果:
你好,世界
42
3.14
注意:
print("42")和print(42)输出看起来一样,但前者是文字"42",后者是数字 42。区别在后面运算时会体现出来。
2.2 一次输出多个内容
print() 可以用逗号分隔,一次输出多个内容,输出时自动用空格隔开:
name = "小明"
age = 18
print("我叫", name, "今年", age, "岁")
运行结果:
我叫 小明 今年 18 岁
2.3 end 参数:控制结尾
默认情况下,每个 print() 输出完会自动换行。用 end 参数可以改变这个行为:
# 默认换行
print("第一行")
print("第二行")
# 不换行,用空格连接
print("同一行", end=" ")
print("继续")
运行结果:
第一行
第二行
同一行 继续
2.4 f-string 格式化输出(推荐)
当要把变量和文字混合输出时,f-string 是最简洁的写法:
name = "小明"
age = 18
print(f"我叫{name},今年{age}岁")
运行结果:
我叫小明,今年18岁
f-string的写法:字符串前面加f,变量放在{}花括号里。比用逗号拼接更紧凑、更易读。这章先用起来,第8章会系统讲字符串格式化。
三、变量:给数据起名字
3.1 什么是变量
变量就是一个装数据的盒子,你给盒子起个名字,以后用这个名字就能拿到里面的数据。
# 把文字装进 name 盒子
name = "小明"
# 把数字装进 age 盒子
age = 18
# 用变量名取出数据
print(name) # 输出:小明
print(age) # 输出:18

3.2 变量重新赋值
变量的值可以随时改变:
score = 80
print(score) # 输出:80
score = 95 # 重新赋值
print(score) # 输出:95
score = score + 5 # 在原值基础上加 5
print(score) # 输出:100
3.3 变量命名规范
变量名不是随便起的,有规则要遵守:
| 规则 | 说明 | 正确示例 | 错误示例 |
|---|---|---|---|
| 只能含字母、数字、下划线 | 不能有空格、特殊符号 | user_name |
user name |
| 不能以数字开头 | 数字可以在中间或末尾 | age2 |
2age |
| 区分大小写 | Name 和 name 是两个变量 |
Name / name |
— |
| 不能用 Python 关键字 | 如 if、for、print 等 |
my_print |
print |
命名建议(非强制,但好习惯):
- 用有意义的名字:
student_name比a好 - 用小写 + 下划线:
user_age而不是UserAge(Python 社区惯例) - 中文变量名虽然能用,但不推荐,兼容性差
# 推荐命名
student_name = "张三"
math_score = 95
# 不推荐命名
a = "张三"
b = 95
四、四大基础数据类型
Python 中的数据有不同类型,最基础的有四种:
4.1 整数 int
不带小数点的数字,可以是正数、负数、零。
age = 18
temperature = -5
count = 0
print(type(age)) # 输出:<class 'int'>
4.2 浮点数 float
带小数点的数字。
height = 1.75
pi = 3.14159
print(type(height)) # 输出:<class 'float'>
4.3 字符串 str
用引号(单引号或双引号)包裹的文本。
name = "小明"
message = '今天天气不错'
print(type(name)) # 输出:<class 'str'>
单引号和双引号效果一样,但要注意配对:
"你好'是错误的,引号必须成对。
4.4 布尔值 bool
只有两个值:True(真)和 False(假),首字母必须大写。
is_student = True
is_raining = False
print(type(is_student)) # 输出:<class 'bool'>
4.5 type() 查看数据类型
不确定某个变量是什么类型?用 type() 查:
x = 42
y = "hello"
z = 3.14
print(type(x)) # <class 'int'>
print(type(y)) # <class 'str'>
print(type(z)) # <class 'float'>
五、input 交互式输入
5.1 基本用法
input() 可以接收用户在终端输入的内容,程序会暂停等待用户输入并按下回车:
name = input("请输入你的名字:")
print("你好," + name + "!")
运行后终端显示:
请输入你的名字:小明
你好,小明!
程序运行到
input()会停下来等你输入,输入完按回车继续。
5.2 input 的陷阱:返回值永远是字符串
这是新手最容易踩的坑:
age = input("请输入你的年龄:")
print(age + 1) # ❌ 报错!
报错信息:TypeError: can only concatenate str (not "int") to str
原因:input() 接收到的内容永远是字符串,即使你输入的是数字 18,它的类型是 "18"(文字),不是 18(数字)。文字不能做加法运算。
5.3 类型转换
解决办法:用 int()、float()、str() 把数据从一种类型转成另一种。
# input 返回的是字符串 "18"
age_str = input("请输入你的年龄:")
# 用 int() 转成整数
age = int(age_str)
# 现在可以运算了
print("明年你", age + 1, "岁")
运行结果:
请输入你的年龄:18
明年你 19 岁
常用类型转换函数:
| 函数 | 作用 | 示例 |
|---|---|---|
int() |
转成整数 | int("18") → 18 |
float() |
转成浮点数 | float("3.14") → 3.14 |
str() |
转成字符串 | str(42) → "42" |
注意:
int("abc")会报错,因为 “abc” 不是合法数字。int("3.14")也会报错,浮点数字符串需要先float()再int()。
六、Scratch 积木对照
| Scratch | Python | 说明 |
|---|---|---|
| 「说 Hello!」积木 | print("Hello!") |
输出内容到屏幕 |
| 变量积木(设置 my_var = 0) | my_var = 0 |
创建变量并赋值 |
| 「询问你叫什么名字?并等待」 | input("你叫什么名字?") |
接收用户输入 |
| 「回答」积木 | input 的返回值 | 获取用户输入的内容 |
scratch积木代码
python代码
# Scratch「说」积木 → Python
print("Hello!")
scratch积木代码
python代码
# Scratch 变量积木 → Python
score = 100
scratch积木代码
python代码
# Scratch「询问并等待」+「回答」→ Python
answer = input("你叫什么名字?")
print("你的回答是:" + answer)
Scratch 里积木直接拖就能用,Python 需要写代码;但逻辑完全对应——输出用 print,存数据用变量,接收输入用 input。
七、综合实战:对话式个人信息小程序
把本章学的 print、变量、数据类型、input、类型转换全部串起来,写一个能跟用户对话的小程序:
# ========================================
# 对话式个人信息小程序
# ========================================
print("=" * 35)
print(" 欢迎使用个人信息录入系统")
print("=" * 35)
# 接收用户输入
name = input("请输入你的姓名:")
age = int(input("请输入你的年龄:"))
birth_year = int(input("请输入你的出生年份:"))
# 计算信息
current_year = 2026
calculated_age = current_year - birth_year
# 输出结果
print()
print("-" * 35)
print(f"姓名:{name}")
print(f"年龄:{age} 岁")
print(f"出生年份:{birth_year} 年")
print(f"按 {birth_year} 年计算,今年应该是 {calculated_age} 岁")
print(f"你输入的年龄与计算结果{'一致' if age == calculated_age else '不一致'}")
print("-" * 35)
print("信息录入完成,谢谢使用!")
运行效果:
===================================
欢迎使用个人信息录入系统
===================================
请输入你的姓名:小明
请输入你的年龄:18
请输入你的出生年份:2008
-----------------------------------
姓名:小明
年龄:18 岁
出生年份:2008 年
按 2008 年计算,今年应该是 18 岁
你输入的年龄与计算结果一致
-----------------------------------
信息录入完成,谢谢使用!
最后一行的
{'一致' if age == calculated_age else '不一致'}用到了条件表达式,下一章会详细讲。这里先感受效果即可。
八、常见报错速查表
| 报错信息 | 出现场景 | 原因 | 解决方法 |
|---|---|---|---|
TypeError: can only concatenate str to str |
字符串 + 数字 | input 返回的是字符串,不能直接和数字运算 | 用 int() 或 float() 转换类型 |
ValueError: invalid literal for int() |
int() 转换 | 试图把非数字字符串转成整数,如 int("abc") |
确保输入内容是合法数字 |
NameError: name 'xxx' is not defined |
使用变量 | 变量未定义就使用,或变量名拼写错误 | 检查变量名拼写,确认已赋值 |
SyntaxError: EOL while scanning string literal |
字符串 | 引号没配对,如 print("hello) |
补上缺失的引号 |
SyntaxError: invalid character |
代码中 | 使用了中文标点(中文括号、中文引号等) | 全部改用英文半角标点 |
十、本章小结
本章你掌握了 Python 编程的三个核心能力:
- print 输出——多参数输出、
end参数、f-string格式化,能让程序"说话" - 变量与数据类型——
int/float/str/bool四大类型,变量赋值与命名规范,type()查看类型 input交互输入——接收用户输入、类型转换(int/float/str),让程序能"听"用户说话
这三个能力组合起来,你就能写出有输入、有处理、有输出的完整小程序了。
往期回顾:
零基础学 Python 第1章 | 全平台装环境 + VS Code 配置 + 第一个 Hello World
下一章预告:
程序现在只能按顺序执行,但现实中有判断——“如果分数大于60就及格,否则就不及格”。下一章学习 if / elif / else 条件判断,让程序学会做选择。
文末资源区
| 资源 | 说明 |
|---|---|
Python 官方文档 - print() |
https://docs.python.org/3/library/functions.html#print |
Python 官方文档 - input() |
https://docs.python.org/3/library/functions.html#input |
| Python 官方文档 - 类型转换 | https://docs.python.org/3/library/stdtypes.html |
| 本章完整源码 | chapter2_all.py(关注梅雅达编程笔记,评论领资料) |
每节课都配套课后练习题与完整源码。代码报错、看不懂知识点,可在评论区粘贴问题,逐一解答!
欢迎关注梅雅达编程笔记,持续分享Python零基础学习内容
更多推荐





所有评论(0)