Python 基础语法
·
Python作为一门优雅、易上手的编程语言,其语法简洁却不失强大。本文基于Python 3.12.0版本,系统梳理核心语法知识点,并搭配可直接运行的代码示例,帮助新手快速建立完整的语法体系。
一、基础语法规则
1.1 编码规范
Python 3默认使用UTF-8编码,无需在文件开头声明编码(如需兼容旧版本可保留# -*- coding: utf-8 -*-)。
1.2 缩进规则(核心)
Python通过缩进而非大括号划分代码块,这是最具特色的语法之一:
- 推荐使用4个空格(而非Tab)作为缩进单位
- 同一代码块必须保持相同缩进级别
- 缩进错误会直接抛出
IndentationError
# 正确缩进示例
if True:
print("缩进正确") # 缩进4个空格
if False:
print("嵌套缩进") # 嵌套代码块再缩进4个空格
print("代码块结束") # 回到顶级缩进
1.3 注释
# 单行注释(最常用)
"""
多行注释
适用于大段说明文字
也可作为文档字符串(docstring)
"""
'''
单引号多行注释
功能与双引号版本一致
'''
# 行内注释(慎用,保持代码可读性)
x = 10 # 定义变量x,赋值为10
1.4 语句结束
Python语句默认以换行结束,单行过长时可使用\换行:
# 单行语句
total = 1 + 2 + 3
# 多行拆分长语句
total = 1 + 2 + \
3 + 4 + 5
# 括号内的语句可直接换行(无需\)
total = (1 + 2 +
3 + 4 + 5)
二、变量与数据类型
2.1 变量定义
- 变量名由字母、数字、下划线组成,不能以数字开头
- 区分大小写(
name和Name是两个变量) - 不能使用Python关键字(如
if、for、def等)
# 合法变量名
user_name = "张三"
age = 25
_score = 95.5
# 非法变量名(会报错)
# 1age = 25 # 数字开头
# user-name = "李四" # 包含减号
# if = 10 # 使用关键字
2.2 基本数据类型
|
类型 |
说明 |
示例 |
|
整数(int) |
无小数部分的数字 |
|
|
浮点数(float) |
带小数的数字 |
|
|
字符串(str) |
文本内容 |
|
|
布尔值(bool) |
True/False |
|
|
空值(None) |
表示无值 |
|
# 数据类型示例
a = 100 # int
b = 3.14 # float
c = "Python 3.12"# str
d = True # bool
e = None # NoneType
# 类型转换
print(int("123")) # 123(字符串转整数)
print(float(10)) # 10.0(整数转浮点数)
print(str(3.14)) # "3.14"(浮点数转字符串)
print(bool(0)) # False(0转布尔值)
2.3 字符串进阶操作
# 字符串拼接
str1 = "Hello"
str2 = "World"
print(str1 + " " + str2) # Hello World
# 格式化字符串(Python 3.6+推荐f-string)
name = "张三"
age = 25
print(f"姓名:{name},年龄:{age}") # 姓名:张三,年龄:25
# 字符串切片
s = "Python3.12"
print(s[0:6]) # Python(索引0-5)
print(s[-3:]) # 12(最后3个字符)
# 常用方法
print("python".upper()) # PYTHON(转大写)
print("PYTHON".lower()) # python(转小写)
print(" test ".strip()) # test(去除首尾空格)
三、运算符
3.1 算术运算符
a = 10
b = 3
print(a + b) # 13(加法)
print(a - b) # 7(减法)
print(a * b) # 30(乘法)
print(a / b) # 3.3333333333333335(除法)
print(a // b) # 3(整除)
print(a % b) # 1(取模/余数)
print(a **b) # 1000(幂运算)
3.2 比较运算符
x = 5
y = 3
print(x > y) # True
print(x < y) # False
print(x == y) # False(等于)
print(x != y) # True(不等于)
print(x >= y) # True
print(x <= y) # False
3.3 逻辑运算符
# and/or/not
a = True
b = False
print(a and b) # False(与:全True才True)
print(a or b) # True(或:有一个True就True)
print(not a) # False(非:取反)
3.4 赋值运算符
x = 10
x += 5 # 等价于x = x + 5 → x=15
x -= 3 # 等价于x = x - 3 → x=12
x *= 2 # 等价于x = x * 2 → x=24
x /= 4 # 等价于x = x / 4 → x=6.0
四、流程控制
4.1 条件语句(if-elif-else)
# 基础示例
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
# 三元表达式(简化版if-else)
age = 18
result = "成年" if age >= 18 else "未成年"
print(result) # 成年
4.2 循环语句
4.2.1 for循环
# 遍历序列
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
# 数值循环(range)
# range(起始, 结束, 步长),左闭右开
for i in range(1, 6):
print(i) # 输出1-5
# 遍历字典
student = {"name": "李四", "age": 20, "score": 90}
for key, value in student.items():
print(f"{key}: {value}")
4.2.2 while循环
# 基础示例
count = 0
while count < 5:
print(f"计数:{count}")
count += 1 # 避免死循环
# break/continue
i = 0
while i < 10:
i += 1
if i % 2 == 0:
continue # 跳过偶数
if i > 7:
break # 大于7终止循环
print(i) # 输出1,3,5,7
五、容器类型
5.1 列表(List)- 可变有序序列
# 创建列表
nums = [1, 2, 3, 4, 5]
mixed = [1, "Python", True, 3.14]
# 增删改查
nums.append(6) # 尾部添加 → [1,2,3,4,5,6]
nums.insert(2, 10) # 索引2插入10 → [1,2,10,3,4,5,6]
nums.remove(10) # 删除值为10的元素
nums.pop() # 删除最后一个元素 → 6
nums[0] = 100 # 修改索引0的值 → 100
# 常用操作
print(len(nums)) # 长度:5
print(sorted(nums)) # 排序:[2,3,4,5,100]
print(nums[::-1]) # 反转:[5,4,3,2,100]
5.2 元组(Tuple)- 不可变有序序列
# 创建元组(小括号可省略)
t1 = (1, 2, 3)
t2 = 4, 5, 6
# 访问元素(与列表相同)
print(t1[0]) # 1
print(t2[-1]) # 6
# 不可修改(以下代码会报错)
# t1[0] = 100
# 常用场景:函数返回多个值
def get_info():
return "张三", 25, 90
name, age, score = get_info()
print(name, age, score) # 张三 25 90
5.3 字典(Dict)- 键值对无序集合
# 创建字典
person = {
"name": "王五",
"age": 30,
"city": "北京"
}
# 增删改查
person["gender"] = "男" # 添加键值对
person["age"] = 31 # 修改值
del person["city"] # 删除键值对
print(person.get("name"))# 获取值 → 王五
print(person.get("phone", "未知")) # 键不存在返回默认值 → 未知
# 遍历
for key in person.keys():
print(key) # 输出所有键
for value in person.values():
print(value) # 输出所有值
5.4 集合(Set)- 无序不重复集合
# 创建集合
s1 = {1, 2, 3, 3, 4} # 自动去重 → {1,2,3,4}
s2 = set([3, 4, 5, 6])
# 集合操作
print(s1 & s2) # 交集 → {3,4}
print(s1 | s2) # 并集 → {1,2,3,4,5,6}
print(s1 - s2) # 差集 → {1,2}
# 增删
s1.add(5) # 添加元素
s1.remove(2) # 删除元素(不存在会报错)
s1.discard(10) # 删除元素(不存在不报错)
六、函数
6.1 函数定义与调用
# 基础定义
def greet(name):
"""问候函数(文档字符串)"""
return f"你好,{name}!"
# 调用函数
print(greet("赵六")) # 你好,赵六!
# 默认参数
def add(a, b=0):
return a + b
print(add(5)) # 5(使用默认值b=0)
print(add(5, 3)) # 8
# 可变参数
def sum_nums(*args): # 可变位置参数(元组)
total = 0
for num in args:
total += num
return total
print(sum_nums(1,2,3)) # 6
def print_info(**kwargs): # 可变关键字参数(字典)
for k, v in kwargs.items():
print(f"{k}: {v}")
print_info(name="孙七", age=28)
6.2 匿名函数(lambda)
# 简单函数的简化写法
add = lambda x, y: x + y
print(add(3, 5)) # 8
# 结合内置函数使用
nums = [1,2,3,4,5]
result = list(map(lambda x: x*2, nums)) # [2,4,6,8,10]
print(result)
七、类与对象(面向对象)
# 类的定义
class Person:
# 初始化方法
def __init__(self, name, age):
self.name = name # 实例属性
self.age = age
# 实例方法
def introduce(self):
return f"我叫{self.name},今年{self.age}岁"
# 类方法
@classmethod
def create_adult(cls, name):
return cls(name, 18)
# 创建对象
p1 = Person("周八", 22)
print(p1.introduce()) # 我叫周八,今年22岁
# 类方法创建对象
p2 = Person.create_adult("吴九")
print(p2.age) # 18
# 继承
class Student(Person):
def __init__(self, name, age, score):
super().__init__(name, age) # 调用父类初始化
self.score = score
def show_score(self):
return f"{self.name}的分数是{self.score}"
s = Student("郑十", 19, 95)
print(s.show_score()) # 郑十的分数是95
八、异常处理
# 基础异常捕获
try:
num = int(input("请输入一个数字:"))
result = 10 / num
print(f"计算结果:{result}")
except ValueError:
print("输入的不是有效数字!")
except ZeroDivisionError:
print("不能除以0!")
except Exception as e:
print(f"发生未知错误:{e}")
else:
print("计算成功!") # 无异常时执行
finally:
print("程序执行完毕") # 始终执行
总结
- 核心基础:Python语法的核心是缩进规则、变量定义和数据类型,其中缩进是区分代码块的唯一方式,f-string是Python 3.6+最推荐的字符串格式化方式。
- 流程控制:条件语句(if-elif-else)和循环语句(for/while)是控制程序执行逻辑的核心,range()函数是for循环生成数值序列的常用工具。
- 核心结构:列表、元组、字典、集合是Python四大容器类型,分别适用于不同场景(列表可变有序、元组不可变有序、字典键值对、集合去重);函数和类则是代码复用和面向对象编程的基础。
掌握以上核心语法,即可编写大部分Python基础程序。建议结合实际场景多写多练,逐步将语法规则内化为编程思维。
更多推荐



所有评论(0)