假设你要开发一个简易的购物结算程序,你需要记住商品的名称(如 "苹果")、商品的单价(如 5.5 元)、购买的数量(如 3 斤),以及顾客是否是会员(如 True)。
计算机在处理这些数据时,是如何区分文字、数字和真假判断的?又是如何记住并计算它们的?
这就是本章要学习的核心内容:变量、基本数据类型与运算符。掌握了它们,你就掌握了控制计算机处理数据的“基本元件”。
完成本章学习后,你将能够:
遵守 Python 变量命名规范,创建合法且含义清晰的变量;
熟练区分并使用四大基本数据类型(整数、浮点数、字符串、布尔值);
使用内置函数 type() 查询任何变量的数据类型;
掌握算术运算符(包括整除与取余)、比较运算符与逻辑运算符;
使用 int()、float()、str() 进行显式数据类型转换,并能使用 f-string 格式化输出。
在上一章中,我们把变量比喻为“贴有标签的盒子”。在 Python 中创建和使用变量时,需要遵循一套标准的语法规则。
在 Python 中,通过单等号 = 绑定变量名与具体数据:
# 1. 首次赋值:创建变量 count 并存入数字 10
count = 10
print(count) # 输出 10
# 2. 修改赋值:重新将数字 20 存入变量 count 中
count = 20
print(count) # 输出 20
Python 对变量的名称有严格的语法要求,不遵守规则会导致 SyntaxError 报错:
_),不能包含空格或特殊字符;1user 是非法的,但 user1 是合法的);Age 和 age 是两个完全不同的变量。为了让代码易读,Python 官方推荐使用小写字母 + 下划线(蛇形命名法 snake_case)来命名变量:
# 推荐的命名(含义清晰)
user_age = 18
total_price = 99.5
is_vip_member = True
# 不推荐的命名(含义模糊或拼写混乱)
a = 18
x1 = 99.5
isvipmember = True
⚠️ 避开系统保留关键字:不能使用 Python 内部占用的关键字作为变量名,如
if,else,for,def,class,import,True,False等。
注释 (Comments) 是写给代码阅读者看的人类说明文字。Python 解释器在运行代码时会完全忽略注释内容。良好的注释能让代码可读性大大提升。
# 井号开头。在井号后面的整行文字都会被视作注释;'''...''' 或双引号 """...""" 包围大段文字。# 这是一个单行注释:定义用户的初始积分
user_score = 100 # 也可以写在代码行的末尾
"""
这是一个多行注释示例:
用来说明接下来的代码逻辑:
计算打折后的最终商品总价
"""
discount_price = 85.0
Python 是一种解释型、动态类型语言:
int age = 18)。Python 解释器会在运行时自动根据右侧的值推断变量类型,并且同一个变量在后续代码中可以被赋予不同类型的新值:x = 10 # 解释器自动识别 x 为整数 int
x = "Hello" # 解释器将 x 重新识别为字符串 str
Python 是一种动态类型语言,在赋值时会自动识别数据的类型。主要包含以下 4 种基本类型:
| 数据类型 | 英文名称 | 类型关键字 | 示例数据 | 适用场景 |
|---|---|---|---|---|
| 整数 | Integer | int | 10, -5, 0 | 计数、件数、年份 |
| 浮点数 (小数) | Float | float | 3.14, -0.5, 99.0 | 金额、商品重量、百分比 |
| 字符串 | String | str | "Hello", 'Python' | 姓名、文本、商品描述 |
| 布尔值 | Boolean | bool | True, False | 状态开关、条件真假判断 |
type() 检查数据类型你可以使用 Python 内置的 type() 函数随时查看一个变量的数据类型:
name = "小明"
age = 20
height = 1.75
is_student = True
print(type(name)) # 输出 <class 'str'>
print(type(age)) # 输出 <class 'int'>
print(type(height)) # 输出 <class 'float'>
print(type(is_student)) # 输出 <class 'bool'>
字符串必须用引号包围,单引号 ' ' 或双引号 " " 均可:
# 1. 字符串拼接(使用 + 号)
first_name = "张"
last_name = "三"
full_name = first_name + last_name # 结果为 "张三"
# 2. 字符串重复(使用 * 号)
star_line = "*" * 10 # 结果为 "**********"
# 3. 现代化格式化输出:f-string(推荐)
age = 18
message = f"你好,{full_name}!你今年 {age} 岁。"
print(message) # 输出:你好,张三!你今年 18 岁。
在字符串引号前加上字母 f,就可以在字符串内直接使用 {变量名} 把变量嵌入文本中,非常适合输出格式化的账单或通知!
Python 提供了丰富的运算符来对数据进行计算与逻辑判断。
| 运算符 | 名称 | 示例表达式 | 结果 | 说明 |
|---|---|---|---|---|
+ | 加法 | 10 + 5 | 15 | 数字相加或字符串拼接 |
- | 减法 | 10 - 5 | 5 | 数字相减 |
* | 乘法 | 10 * 5 | 50 | 数字相乘或字符串重复 |
/ | 浮点除 | 10 / 4 | 2.5 | 结果始终为浮点数 |
// | 整除 (向下取整) | 10 // 4 | 2 | 只保留计算结果的整数部分 |
% | 取余 (求模) | 10 % 4 | 2 | 计算除法后的余数 |
** | 幂运算 (次方) | 2 ** 3 | 8 |
# 取余 % 的常用用途:判断奇偶数
number = 7
print(number % 2) # 结果为 1,说明是奇数
计算示例 1:整除 // 与取余 % 的区别(已知 )
计算示例 2:复合赋值运算符优先级(已知 )
x += 5 * 2;True / False)| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
== | 等于 (注意是双等号) | 5 == 5 | True |
!= | 不等于 | 5 != 3 | True |
> / < | 大于 / 小于 | 10 > 20 | False |
>= / <= | 大于等于 / 小于等于 | 18 >= 18 | True |
新手陷阱:单等号
=是赋值(将值存入变量);双等号==才是比较(判断两边是否相等)。
and (与):两边条件都为 True,结果才为 True;or (或):只要有一边条件为 True,结果就为 True;not (非):取反,True 变 False,False 变 True。age = 20
has_ticket = True
# 条件:年龄 >= 18 并且 持有门票
can_enter = (age >= 18) and has_ticket
print(can_enter) # 输出 True
有时我们需要将一种数据类型强制转换为另一种类型。
当整数与浮点数一起计算时,Python 会自动将结果升级为浮点数:
a = 10 # int
b = 2.5 # float
c = a + b # 结果为 12.5,类型自动变为 float
使用内置函数 int(), float(), str() 进行转换:
# 1. 字符串转整数
str_num = "100"
real_num = int(str_num) # 转换为整数 100
# 2. 浮点数转整数(直接抹去小数部分)
pi = 3.99
int_pi = int(pi) # 结果为 3
# 3. 数字转字符串
price = 49.9
price_str = str(price) # 转换为字符串 "49.9"
input()内置函数 input() 用于从控制台接收用户输入的文字。需要特别注意:input() 返回的结果永远是字符串 (str)!
如果直接拿去进行数学加减,会引发报错或字符串拼接,必须先用 int() 或 float() 进行转换:
# 错误写法(会进行字符串拼接,而不是加法)
# user_input = input("请输入数量:") # 假设用户输入 5
# total = user_input + 1 # 报错 TypeError!
# 正确写法:显式转换为整数
input_text = "5" # 模拟用户输入
item_count = int(input_text) # 转换为数字 5
total = item_count + 1 # 正确计算为 6
print(total)
请在下方代码块中,点击 “运行代码”,体验变量计算、类型转换与 f-string 格式化输出:
| 错误现象 / 异常类型 | 常见原因 | 标准排查与处理方式 |
|---|---|---|
TypeError: can only concatenate str (not "int") to str | 尝试直接使用 + 将字符串与数字拼接 | 使用 str(num) 先将数字转为字符串,或改用 f"{text}{num}" 语法 |
ValueError: invalid literal for int() with base 10 | 尝试将无法解析为数字的文本(如 "abc" 或 "3.14")用 int() 转换 | 检查字符串内容是否包含字母;如果是带小数的文本 "3.14",应先转为 float() |
SyntaxError: invalid syntax | 变量名使用了数字开头(如 1st_name)或使用了中文标点 | 修改变量名使其符合命名规范;确认所有符号均为英文半角字符 |
NameError: name 'true' is not defined | 布尔值 True 和 False 误写成了小写 true 或 false | Python 大小写敏感,布尔值的首字母必须大写(True / False) |
int (整数)、float (小数)、str (字符串) 和 bool (布尔值);type() 函数检查变量的数据类型;// 与取余 % 的作用,并能用 % 2 判断奇偶数;= (赋值) 与双等号 == (比较) 的不同含义;f-string 语法(如 f"单价: {price}")进行格式化输出;input() 返回的结果是字符串,并在做数学运算前使用 int() 或 float() 进行转换。共 4 道精选测试题 · 答题进度已自动保存
恭喜你掌握了 Python 变量、基本类型与运算符!
下一步我们将深入学习 03. 控制流:条件判断与循环,掌握 if-elif-else 分支判断、for 循环与 while 循环,让你的程序能够根据不同条件自动做出决策。