Python 是一种高级、通用、解释型编程语言,以其简洁明了的语法和强大的库而闻名。对于初学者来说,掌握 Python 的基础语法是至关重要的。以下是一些 Python 的基础语法要点:
1. "缩进":Python 使用缩进来表示代码块,这与 C、C++、Java 等语言使用大括号 `{}` 不同。通常使用四个空格或一个制表符进行缩进。
```python
if x > 0:
print("x is positive")
else:
print("x is not positive")
```
2. "注释":在 Python 中,单行注释以 `#` 开头,多行注释可以使用三个引号 `'''` 或 `"""` 包围多行文本。
```python
# This is a single line comment
'''
This is a
multi-line comment
'''
```
3. "变量和数据类型":Python 是动态类型语言,不需要显式声明变量类型。变量名后直接赋值即可。
```python
x = 10 # integer
y = 3.14 # float
name = "Alice" # string
is_valid = True # boolean
```
4. "数据结构":Python 提供了多种内置数据结构,如列表(list)、元组(tuple)、集合(
一、Python 字面量:数据的 “原始表达”(一)什么是字面量?字面量是代码中直接表示固定值的符号,无需计算即可明确其值。比如写print(100)时,100就是字面量,运行后直接输出该值。(二)常见字面量类型(附示例)1. 数值字面量涵盖整数、浮点数、复数,可直接参与运算:# 整数运算:计算两个数的和
print(42 + 18) # 输出:60
# 浮点数运算:计算矩形面积(长3.5,宽2.2)
area = 3.5 * 2.2
print(area) # 输出:7.7
# 复数运算:求复数的共轭
complex_num = 1 + 2j
print(complex_num.conjugate()) # 输出:(1-2j)
2. 字符串字面量支持多种包裹方式,满足不同场景需求:# 单引号:包含双引号的字符串
print('He said "Python is easy"') # 输出:He said "Python is easy"
# 双引号:包含单引号的字符串
print("I'm a Python learner") # 输出:I'm a Python learner
# 三引号:多行字符串+格式化
name = "Alice"
intro = f'''
姓名:{name}
年龄:25
职业:程序员
'''
print(intro) # 输出格式化后的多行内容
# 原始字符串:避免转义(如文件路径)
print(r"C:UsersDesktop est.txt") # 输出:C:UsersDesktop est.txt
3. 布尔字面量主要用于逻辑判断:# 判断数值是否大于0
is_positive = 10 > 0
print(is_positive) # 输出:True
# 判断字符串是否为空
is_empty = "" == ""
print(is_empty) # 输出:True
4. 容器字面量直接定义集合类数据,支持快速访问:# 列表:存储多个类型数据,可修改
fruits =
print(fruits) # 输出:banana(按索引访问)
# 元组:存储固定数据,不可修改
point = (10, 20)
print(point) # 输出:10
# 字典:按键取值,适合存储关联数据
student = {"name": "Bob", "score": 90}
print(student) # 输出:90
# 集合:自动去重,适合筛选唯一值
nums = {1, 2, 2, 3}
print(nums) # 输出:{1, 2, 3}
二、注释:代码的 “说明书”注释不影响代码运行,但能让他人(及未来的你)快速理解逻辑,示例如下:(一)单行注释:标注关键步骤# 功能:计算斐波那契数列前10项
fib = # 初始化数列前两项
for i in range(2, 10): # 从第3项开始计算(索引2到9)
next_num = fib + fib # 前两项之和为当前项
fib.append(next_num) # 将计算结果加入列表
print(fib) # 输出:
(二)多行注释:说明复杂模块'''
模块名称:简易计算器
功能:实现两个数的加、减、乘、除运算
参数说明:
a: 第一个运算数(int/float)
b: 第二个运算数(int/float,除法时不可为0)
返回值:运算结果(int/float)
'''
def calculator(a, b, op):
if op == "+":
return a + b
elif op == "-":
return a - b
elif op == "*":
return a * b
elif op == "/":
if b == 0:
return "错误:除数不能为0"
return a / b
# 调用示例
print(calculator(8, 2, "/")) # 输出:4.0
三、变量:数据的 “存储容器”变量可动态存储数据,赋值即创建,关键示例如下:(一)基础赋值与类型变化# 定义整数变量
age = 25
print(age, type(age)) # 输出:25 <class 'int'>
# 修改变量值与类型(Python支持动态类型)
age = "25岁"
print(age, type(age)) # 输出:25岁 <class 'str'>
(二)实用赋值技巧# 1. 链式赋值:多个变量指向同一值
x = y = z = 0
print(x, y, z) # 输出:0 0 0
# 2. 解包赋值:快速分配多个值
# 列表解包
name, score =
print(f"{name}的分数是{score}") # 输出:Charlie的分数是85
# 元组解包(可省略括号)
a, b = (10, 20)
print(a + b) # 输出:30
# 3. 交换变量(无需临时变量)
a, b = b, a
print(a, b) # 输出:20 10
四、数据类型:数据的 “身份标识”除了基础定义,更重要的是掌握类型的核心操作,示例如下:(一)基础数据类型操作# 1. 整数(int):支持大数运算
big_num = 10 ** 2 # 10的2次方
print(big_num) # 输出:10000
# 2. 浮点数(float):注意精度问题
print(0.1 + 0.2) # 输出:0.30000000000000004(浮点数精度限制)
# 解决精度问题:使用round()
print(round(0.1 + 0.2, 1)) # 输出:0.3
# 3. 字符串(str):常用操作
s = "python"
# 大小写转换
print(s.upper()) # 输出:PYTHON
# 切片(获取子串)
print(s) # 输出:yth(索引1到3,左闭右开)
# 替换
print(s.replace("p", "P")) # 输出:Python
# 4. 布尔值(bool):与数字的转换
print(int(True), int(False)) # 输出:1 0
print(bool(0), bool(1)) # 输出:False True
print(bool(""), bool("abc")) # 输出:False True(空字符串为False,非空为True)
(二)容器数据类型操作# 1. 列表(list):增删改查
my_list =
# 增
my_list.append(4) # 末尾添加
print(my_list) # 输出:
# 删
del my_list # 删除索引1的元素
print(my_list) # 输出:
# 改
my_list = 0
print(my_list) # 输出:
# 2. 字典(dict):键值对操作
my_dict = {"color": "red", "size": "M"}
# 查
print(my_dict.get("color")) # 输出:red(推荐用get,键不存在时返回None)
# 增
my_dict = 99
print(my_dict) # 输出:{'color': 'red', 'size': 'M', 'price': 99}
# 删
my_dict.pop("size")
print(my_dict) # 输出:{'color': 'red', 'price': 99}
# 3. 集合(set):去重与数学运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 去重
duplicate_nums =
unique_nums = set(duplicate_nums)
print(unique_nums) # 输出:{2, 3, 4}
# 交集(共有的元素)
print(set1 & set2) # 输出:{3}
# 并集(所有元素)
print(set1 | set2) # 输出:{1, 2, 3, 4, 5}
五、数据类型转换:数据的 “变身术”转换需注意兼容性,示例覆盖常见场景:(一)显式转换(手动控制)# 1. 字符串转数字(需确保字符串是合法数字)
str_num1 = "123"
int_num = int(str_num1)
print(int_num + 10) # 输出:133
str_num2 = "45.6"
float_num = float(str_num2)
print(float_num * 2) # 输出:91.2
# 错误示例:非数字字符串无法转换
# int("abc") # 运行报错:ValueError
# 2. 数字转字符串(拼接必备)
age = 28
age_str = str(age)
print("我的年龄是:" + age_str + "岁") # 输出:我的年龄是:28岁
# 3. 容器类型转换
# 元组转列表(方便修改)
my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4)
print(my_list) # 输出:
# 列表转字典(需是键值对结构)
key_list =
value_list =
my_dict = dict(zip(key_list, value_list))
print(my_dict) # 输出:{'name': 'David', 'age': 30}
(二)隐式转换(Python 自动处理)# 1. 算术运算中的转换(int → float)
print(5 + 3.2) # 输出:8.2(整数5自动转为float 5.0)
print(10 / 2) # 输出:5.0(除法结果默认是float)
# 2. 逻辑判断中的转换
# 非零数值 → True,零 → False
if 0:
print("执行")
else:
print("不执行") # 输出:不执行(0转为False)
# 非空容器 → True,空容器 → False
if :
print("列表非空") # 输出:列表非空
if {}:
print("字典非空")
else:
print("字典为空") # 输出:字典为空
六、标识符:代码元素的 “姓名”标识符是变量、函数、类的名称,需遵守规则,查看 Python 关键字(避免踩坑)import keyword
# 打印所有关键字
print(keyword.kwlist)
# 输出:
七、运算符:代码的 “数学公式”运算符是实现计算与判断的核心,重点示例如下:(一)算术运算符(易混淆场景)# 1. 整除(//):向下取整
print(7 // 3) # 输出:2(7÷3=2.333,向下取整为2)
print(-7 // 3) # 输出:-3(-7÷3≈-2.333,向下取整为-3)
# 2. 取模(%):求余数(结果符号与除数一致)
print(7 % 3) # 输出:1(7=3×2+1)
print(-7 % 3) # 输出:2(-7=3×(-3)+2,除数3为正,结果为正)
# 3. 幂运算(**)
print(2 ** 3) # 输出:8(2×2×2)
print(10 ** -2) # 输出:0.01(1/10²)
(二)赋值运算符(高效操作)# 1. 复合赋值
a = 5
a += 3 # 等价于 a = a + 3
print(a) # 输出:8
a *= 2 # 等价于 a = a * 2
print(a) # 输出:16
# 2. 海象运算符(:=):Python 3.8+,表达式内赋值
# 场景:读取输入并判断(避免重复调用input())
while (user_input := input("请输入内容(输入'quit'退出):")) != "quit":
print(f"你输入的是:{user_input}")
# 运行效果:
# 请输入内容(输入'quit'退出):hello
# 你输入的是:hello
# 请输入内容(输入'quit'退出):quit(程序退出)
(三)比较与逻辑运算符(实用场景)# 1. 链式比较(简洁判断范围)
x = 5
print(1 < x < 10) # 输出:True(等价于 1 < x and x < 10)
print(10 > x >= 5) # 输出:True(等价于 10 > x and x >= 5)
# 2. 逻辑运算符(短路求值)
# and:前为False时,不计算后值
print(False and 1/0) # 输出:False(1/0未执行,避免报错)
# or:前为True时,不计算后值
print(True or 1/0) # 输出:True(1/0未执行)
# 3. 实际应用:判断成绩等级
score = 88
if score >= 90:
print("优秀")
elif 80 <= score < 90:
print("良好") # 输出:良好
elif 60 <= score < 80:
print("及格")
else:
print("不及格")
(四)成员与身份运算符(关键区别)# 1. 成员运算符(in/not in)
fruits =
print("apple" in fruits) # 输出:True
print("orange" not in fruits) # 输出:True
# 2. 身份运算符(is/is not):判断是否为同一对象
# 注意:小整数池(-5~256)内的整数会复用内存地址
a = 10
b = 10
print(a == b) # 输出:True(值相等)
print(a is b) # 输出:True(内存地址相同)
# 超出小整数池的整数
c = 1000
d = 1000
print(c == d) # 输出:True(值相等)
print(c is d) # 输出:False(内存地址不同)
# 列表示例(即使值相同,也是不同对象)
list1 =
list2 =
print(list1 == list2) # 输出:True(值相等)
print(list1 is list2) # 输出:False(内存地址不同)