Python 基础语法详解(一):从表达式、变量到数据类型

🔥 星恒随风: 个人主页 ❄️ 个人专栏: 《指针合集》 | 《C语言基础》 | 《数据结构》 | 《机器学习导论》 | 《前端基础》 ✨ 数据即知识,压缩即智能
目录
- [Python 基础语法详解(一):从表达式、变量到数据类型](#Python 基础语法详解(一):从表达式、变量到数据类型)
-
- 一、基础语法演示
- 二、什么是表达式?
- [三、Python 中的除法和 C / Java 不太一样](#三、Python 中的除法和 C / Java 不太一样)
- 四、变量:把中间结果保存起来
- 五、变量的定义和赋值
- 六、变量命名规则
-
- [1. 硬性规则](#1. 硬性规则)
- [2. 建议规则](#2. 建议规则)
- 七、变量的使用和修改
- 八、变量的类型:不同数据有不同规则
- [九、整数 int](#九、整数 int)
- [十、浮点数 float](#十、浮点数 float)
- [十一、字符串 str](#十一、字符串 str)
- [十二、布尔类型 bool](#十二、布尔类型 bool)
- [十三、Python 的动态类型特性](#十三、Python 的动态类型特性)
- 十四、注释:写给人看的代码说明
- 十五、注释怎么写才算好?
- [十六、文档字符串 docstring](#十六、文档字符串 docstring)
- 总结

一、基础语法演示
Python 可以直接进行算术运算。
python
print(1 + 2 - 3)
print(1 + 2 * 3)
print((1 + 2) * 3)
print(1 + 2 / 3)
这里有几个重点:
print()是 Python 的内置函数,用来输出结果;+、-、*、/是算术运算符;- Python 遵守数学中的运算优先级。
例如:
python
print(1 + 2 * 3)
结果是:
python
7
因为先算 2 * 3,再加 1。
如果想让 1 + 2 先算,就要加括号:
python
print((1 + 2) * 3)
结果是:
python
9

二、什么是表达式?
像下面这些都叫表达式:
python
1 + 2
3 * 4
10 / 3
(67.5 + 89.0 + 12.9 + 32.2) / 4
表达式可以理解成:
能够被计算出结果的一段代码。
表达式计算出来的结果,叫表达式的值。
例如:
python
1 + 2
这个表达式的值是:
python
3
在表达式中:
1、2、3这种直接写出来的数据叫字面值常量;+、-、*、/这种符号叫运算符。
三、Python 中的除法和 C / Java 不太一样
在 C 或 Java 中,如果写:
c
2 / 3
如果两个操作数都是整数,结果通常是 0,小数部分会被截断。
但在 Python 中:
python
print(2 / 3)
结果是:
python
0.6666666666666666
Python 的 / 更符合日常数学直觉。
如果想做整除,可以使用 //:
python
print(7 // 2)
结果是:
python
3
注意,// 是地板除,不是四舍五入。
对于负数:
python
print(-7 // 2)
结果是:
python
-4
因为它会向下取整。
四、变量:把中间结果保存起来
只做简单计算时,可以直接写表达式。
但如果计算过程变复杂,就需要保存中间结果。
这时候就要用变量。
例如求四个分数的平均值:
python
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
print(avg)
这里的 avg 就是变量。
可以把变量理解成:
一个有名字的盒子,用来保存数据。

如果没有变量,复杂计算会变得很难维护。
比如计算方差:
python
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2
result = total / 3
print(result)
这里:
avg保存平均值;total保存平方差之和;result保存最终方差。
变量的意义就是:
给中间结果起名字,让程序更清楚。
五、变量的定义和赋值
Python 中定义变量非常简单:
python
a = 10
这句话的意思是:
创建一个变量
a,并把数字10放进去。
其中:
a是变量名;=是赋值运算符;10是变量保存的值。
注意,这里的 = 不是数学里的"等于",而是"赋值"。
也就是说:
python
a = 10
不是在判断 a 是否等于 10,而是把 10 赋给 a。
如果要判断是否相等,要使用 ==:
python
print(a == 10)
六、变量命名规则
变量名不能随便写。
Python 变量名有硬性规则,也有建议规则。
1. 硬性规则
变量名由数字、字母、下划线构成。
可以这样写:
python
name = "张三"
age = 18
total_score = 95
但不能这样写:
python
2name = "张三"
因为变量名不能以数字开头。
变量名也不能和 Python 关键字重复。
比如不能写:
python
if = 10
class = 20
另外,Python 变量名区分大小写。
python
num = 10
Num = 20
print(num)
print(Num)
num 和 Num 是两个不同变量。
2. 建议规则
变量名最好见名知意。
不建议这样写:
python
a = 18
b = 95
c = "张三"
更推荐:
python
age = 18
score = 95
name = "张三"
如果变量名由多个单词组成,Python 中更常见的写法是下划线命名法:
python
student_name = "张三"
total_score = 280
average_score = 93.3
代码不是只写给机器看的,也是写给人看的。
三个月后的你,也是"别人"。
七、变量的使用和修改
变量定义后,可以读取它的值:
python
a = 10
print(a)
也可以修改它的值:
python
a = 10
print(a)
a = 20
print(a)
输出:
python
10
20
还可以把一个变量的值赋给另一个变量:
python
a = 10
b = 20
a = b
print(a)
print(b)
输出:
python
20
20
注意:
python
a = b
意思是把 b 当前保存的值赋给 a。
八、变量的类型:不同数据有不同规则
变量里可以保存很多种数据。
比如:
python
a = 10
b = 3.14
c = "hello"
d = True
这些数据类型不同。
常见基础类型有:
| 类型 | 含义 | 示例 |
|---|---|---|
int |
整数 | 10、-5 |
float |
浮点数 / 小数 | 3.14、0.5 |
str |
字符串 | "hello"、'Python' |
bool |
布尔值 | True、False |

可以使用 type() 查看变量类型:
python
a = 10
print(type(a))
b = 0.5
print(type(b))
c = "hello"
print(type(c))
d = True
print(type(d))
九、整数 int
整数类型是 int。
python
a = 10
print(type(a))
输出:
python
<class 'int'>
Python 中的整数非常灵活。
和 C / Java 中固定范围的整数不同,Python 的整数理论上可以表示非常大的数,只要内存足够。
例如:
python
num = 123456789123456789123456789123456789
print(num)
这在 Python 中是合法的。
十、浮点数 float
小数类型是 float。
python
a = 0.5
print(type(a))
输出:
python
<class 'float'>
Python 中没有单独的 double 类型。
通常可以把 Python 的 float 理解成双精度浮点数。
不过,浮点数有一个非常重要的坑:
浮点数在计算机中通常不是精确表示的。
例如:
python
print(0.1 + 0.2)
print(0.1 + 0.2 == 0.3)
输出可能是:
python
0.30000000000000004
False
这不是 Python 算错了,而是二进制浮点数表示方式带来的精度误差。
浮点数比较的正确方式
不要直接用 == 判断两个浮点数是否相等。
更推荐判断它们的差值是否足够小:
python
a = 0.1 + 0.2
b = 0.3
print(abs(a - b) < 0.000001)
也可以使用标准库中的 math.isclose():
python
import math
a = 0.1 + 0.2
b = 0.3
print(math.isclose(a, b))
输出:
python
True
十一、字符串 str
字符串用来表示文本。
可以使用单引号,也可以使用双引号:
python
a = 'hello'
b = "world"
print(a)
print(b)
在 Python 中,单引号和双引号没有本质区别。
下面两种写法等价:
python
name1 = 'Python'
name2 = "Python"
字符串长度
可以使用 len() 获取字符串长度:
python
s = "hello"
print(len(s))
输出:
python
5
中文字符串也可以使用 len():
python
s = "你好"
print(len(s))
输出:
python
2
字符串拼接
字符串之间可以使用 + 拼接:
python
a = "hello"
b = "world"
print(a + b)
输出:
python
helloworld
如果想中间有空格:
python
print(a + " " + b)
输出:
python
hello world
但是字符串不能直接和整数相加:
python
age = 18
print("年龄:" + age)
这会报错。
应该先把整数转成字符串:
python
age = 18
print("年龄:" + str(age))
或者更推荐使用 f-string:
python
age = 18
print(f"年龄:{age}")
十二、布尔类型 bool
布尔类型只有两个值:
python
True
False
注意首字母必须大写。
不能写成:
python
true
false
示例:
python
is_student = True
is_working = False
print(type(is_student))
print(type(is_working))
布尔值经常用于条件判断。
比如:
python
age = 20
is_adult = age >= 18
print(is_adult)
输出:
python
True
十三、Python 的动态类型特性
Python 是动态类型语言。
这意味着:
一个变量的类型可以在程序运行过程中发生变化。
例如:
python
a = 10
print(type(a))
a = "hello"
print(type(a))
输出:
python
<class 'int'>
<class 'str'>
同一个变量 a,一开始保存整数,后来保存字符串。
这在 Python 中是允许的。

动态类型的优点
动态类型让代码写起来更灵活。
比如变量不需要提前声明类型:
python
name = "张三"
age = 18
score = 95.5
不用写类似:
java
int age = 18;
这会让 Python 代码看起来更简洁。
动态类型的缺点
动态类型也会带来问题。
比如:
python
a = 10
a = "hello"
print(a + 1)
这段代码会报错。
因为字符串不能直接和整数相加。
所以动态类型虽然灵活,但也要求程序员更清楚每个变量当前到底是什么类型。
十四、注释:写给人看的代码说明
注释不会影响程序执行。
它的作用是解释代码,让人更容易理解程序。
比如:
python
# 计算四个分数的平均值
avg = (67.5 + 89.0 + 12.9 + 32.2) / 4
print(avg)
# 后面的内容就是注释。
程序执行时会忽略它。
十五、注释怎么写才算好?
好的注释不是把代码翻译一遍。
比如下面这种注释意义不大:
python
# 给 a 赋值 10
a = 10
因为代码本身已经很明显。
更好的注释应该解释:
- 为什么这么做
- 这段代码的目的是什么
- 有没有容易误解的业务规则
- 有没有特殊边界情况
比如:
python
# input 读取到的是字符串,参与计算前需要先转成 float
score = float(input("请输入分数:"))
这类注释就有价值。
十六、文档字符串 docstring
除了 # 注释,Python 还支持文档字符串。
文档字符串通常使用三引号:
python
"""
这是一个文档字符串。
它可以写多行内容。
"""
文档字符串一般放在:
- 文件开头
- 函数开头
- 类开头
示例:
python
def add(a, b):
"""
计算两个数字的和。
"""
return a + b
文档字符串不仅能起到说明作用,还可以被一些工具读取,用来生成文档。
总结
核心内容主要是:
- 表达式是能够计算出结果的一段代码;
- 变量用于保存数据;
=是赋值,不是判断相等;- 变量命名要清晰、有意义;
- Python 常见基础类型包括
int、float、str、bool; - Python 是动态类型语言,变量类型可以在运行时变化;