基础语法#
行与缩进#
Python 最具特色的就是使用缩进来表示代码块,不需要使用大括号 {},缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
# 正确的缩进
if True:
print("这是if语句块")
print("同一代码块,缩进相同")
# 错误的缩进会导致 IndentationError
if True:
print("错误:没有缩进") # 这会报错缩进规则:
- 使用 4 个空格作为标准缩进(推荐)
- 不要混用空格和 Tab
- 同一代码块必须使用相同的缩进
注释#
Python 使用 # 来添加单行注释,使用三引号 """ 或 ''' 来添加多行注释。
# 这是单行注释
# 这是另一个单行注释
x = 5 # 行尾注释
"""
这是多行注释
可以写多行内容
通常用于文档字符串
"""
'''
这也是多行注释
功能与三引号相同
'''
def my_function():
"""这是函数的文档字符串(docstring)"""
pass变量和赋值#
变量命名规则#
- 变量名只能包含字母、数字和下划线
- 变量名不能以数字开头
- 变量名区分大小写
- 不能使用 Python 关键字作为变量名
# 合法的变量名
name = "Python"
age = 30
user_name = "admin"
_name = "private"
name1 = "valid"
# 不合法的变量名
# 2name = "invalid" # 不能以数字开头
# class = "invalid" # 不能使用关键字
# user-name = "invalid" # 不能使用连字符变量赋值#
Python 中的变量不需要声明类型,直接赋值即可。
# 基本赋值
x = 10
name = "Python"
is_valid = True
# 多重赋值
a = b = c = 0
x, y = 1, 2
x, y = y, x # 交换变量值
# 链式赋值
a = b = c = 10动态类型#
Python 是动态类型语言,同一个变量可以赋值为不同类型的值:
x = 10 # x 是整数
x = "hello" # x 现在是字符串
x = [1, 2, 3] # x 现在是列表命名规范#
Python 遵循 PEP 8 命名规范:
变量和函数名#
使用小写字母和下划线(snake_case):
# 变量名
user_name = "admin"
total_count = 100
# 函数名
def calculate_sum():
pass
def get_user_info():
pass类名#
使用驼峰命名法(PascalCase):
class UserAccount:
pass
class DatabaseConnection:
pass常量#
使用全大写字母和下划线:
MAX_SIZE = 1000
DEFAULT_TIMEOUT = 30
PI = 3.14159私有变量#
使用单下划线前缀表示"内部使用"(约定),双下划线前缀表示名称改写:
class MyClass:
def __init__(self):
self.public_var = 1 # 公共变量
self._internal_var = 2 # 内部变量(约定)
self.__private_var = 3 # 私有变量(名称改写)单下划线(_var):
- 主要是约定,表示"内部使用"的意图
- 技术上仍可直接访问,不会报错
- 在
from module import *时不会被导入(这是实际的语言机制)
class MyClass:
def __init__(self):
self._internal = 10
obj = MyClass()
print(obj._internal) # 仍然可以访问,不会报错双下划线(__var):
- 触发名称改写(name mangling),是实际的语言机制
- 会被改写为
_ClassName__var的形式 - 主要用于避免子类中的属性名冲突
class MyClass:
def __init__(self):
self.__private = 10
obj = MyClass()
# print(obj.__private) # 错误!AttributeError
print(obj._MyClass__private) # 10(通过改写后的名称可以访问)
print(obj.__dict__) # {'_MyClass__private': 10}其他单下划线使用场景:
- 临时变量:
for _ in range(10): - 未使用的变量:
x, _ = func()(表示忽略第二个返回值)
语句和表达式#
语句#
语句是执行操作的指令:
# 赋值语句
x = 10
# 打印语句
print("Hello")
# 条件语句
if x > 5:
print("x大于5")表达式#
表达式是产生值的代码:
# 算术表达式
2 + 3 # 结果是 5
# 函数调用表达式
len("Python") # 结果是 6
# 比较表达式
x > 5 # 结果是 True 或 False代码块#
Python 使用缩进来定义代码块:
# if 语句块
if condition:
statement1
statement2
if nested_condition:
nested_statement
# 函数定义块
def my_function():
statement1
statement2
return value
# 循环块
for item in items:
process(item)
if condition:
break多行语句#
使用反斜杠#
# 使用反斜杠续行
total = 1 + 2 + \
3 + 4 + \
5
# 在括号内可以自然换行
total = (1 + 2 +
3 + 4 +
5)多行字符串#
# 使用三引号
text = """这是
多行
字符串"""
# 使用括号和换行
text = ("这是"
"多行"
"字符串")标识符#
标识符是用于标识变量、函数、类等的名称。
规则:
- 只能包含字母、数字和下划线
- 不能以数字开头
- 不能是关键字
- 区分大小写
# 有效的标识符
my_variable = 10
MyClass = "class"
_private = "private"
name123 = "valid"
# 无效的标识符
# 123name = "invalid" # 不能以数字开头
# my-variable = 10 # 不能使用连字符
# class = "invalid" # 不能使用关键字下一步#
掌握了基础语法后,可以学习: