1.Python3 基础语法
Python3 基础语法
Python3 中文官方文档 https://docs.python.org/zh-cn/3.9/
Python 标准库https://docs.python.org/zh-cn/3/library/index.html
Python 内置函数:https://docs.python.org/zh-cn/3.9/library/functions.html
1. Python保留字
保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
import keyword
print(keyword.kwlist)
# 以下关键字内容随版本变动
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
2. 标识符
- 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
- 标识符不能和 Python 中的保留字相同。
- Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
- 在 Python 中,标识符中的字母是严格区分大小写的。
- Python 语言中,以下划线开头的标识符有特殊含义,这些约定是由Python社区和解释器共同遵守的,不是强制性的语法要求,用于表示不同的可见性和使用目的。
- 在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了.
3. 注释
单行注释
Python 使用井号#
作为单行注释的符号,从#
开始,直到这行结束为止的所有内容都是注释,语法格式为:
# 注释内容
多行注释
Python 使用三个连续的单引号'''或者三个连续的双引号"""注释多行内容,具体格式如下:
'''使用 3 个单引号分别作为注释的开头和结尾可以一次性注释多行内容这里面的内容全部是注释内容'''
# 或者
"""使用 3 个双引号分别作为注释的开头和结尾可以一次性注释多行内容这里面的内容全部是注释内容"""
多行注释通常用来为 Python 文件、模块、类或者函数等添加版权或者功能描述信息。
4. 缩进规则
在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
5. 多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 来实现多行语句,例如:
total = item_one + \
item_two + \
item_three
在 [], {}, 或 () 中的多行语句,不需要使用反斜杠,例如:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
6. 多个变量赋值
Python允许同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。
也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "runoob"
7. del() 函数
可以使用del语句删除一些对象引用,del语句的语法是:
del var1
# 或
del var1, var2, ......
8. None(空值)
有一个特殊的常量 None(N 必须大写)。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。这里的空值并不代表空对象,即 None 和 []、“” 不同:
>>> None is []
False
>>> None is ""
False
>>> type(None)
<class 'NoneType'>
None 是 NoneType 数据类型的唯一值,也就是说,我们不能再创建其它 NoneType 类型的变量,但是可以将 None 赋值给任何变量。如果希望变量中存储的东西不与任何其它值混淆,就可以使用 None。
另外,对于所有没有 return 语句的函数定义,Python 都会在末尾加上 return None,使用不带值的 return 语句也返回 None。
9. #!/usr/bin/python3
脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它。
#!/usr/bin/python3 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python3 解释器;
#!/usr/bin/env python3 这种用法是为了防止操作系统用户没有将 python3 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python3 的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python3 # 相当于写死了 python3 路径
#!/usr/bin/env python3 # 会去环境设置寻找 python3 目录,推荐这种写法
10. 下划线
前置单下划线:
_var,主要是用于将变量或方法定义为私有属性。它对于程序员而言是一种提示,这里的私有属性并非如java中的私有,而是一种约定俗成,想强行访问仍旧可以正常访问。
后置单下划线:
var_,主要用于将变量区别,如变量名称和关键字冲突,后面加个下划线区别开来。
前置双下划线:
__var,类中带前置双下划线的变量或方法,都会触发python解释器的名称修饰,是不能直接通过该名称去访问到的,实现了一定程度上的隔离。
前后都有双下划线:
__var__()
, 常见的有__init__()
对象构造函数,这类方法是python中的魔法方法(特殊方法),用于特殊用途。
单下划线本身:
_ 在Python REPLs如IDLE Shell中是一个特殊变量(可以表示一个临时值),它表示解释器计算的最后一个表达式的结果。
11. 全局变量、实例变量、局部变量、静态变量(类变量)
在Python中,变量的作用域决定了它们的可见性和生命周期。根据作用域的不同,可以将变量分为以下几类:
1.局部变量
- 局部变量是在函数或方法内部定义的变量。
- 它们只在函数执行时存在,并且只能在该函数内部被访问。
- 函数执行完毕后,局部变量会被销毁。
2.全局变量
- 全局变量是在任何函数或类之外定义的变量。
- 这些变量在整个程序范围内都是可访问的,只要没有局部同名变量遮蔽。
- 全局变量在其定义之后直到程序结束前都一直存在。
3.实例变量
- 实例变量是属于类的实例的变量。
- 每个对象都有自己的实例变量副本,这意味着即使两个对象属于同一个类,它们的实例变量也可以有不同的值。
- 实例变量通常在
__init__
方法中初始化,或者在实例方法中定义和使用。
4.静态变量/类变量
- 静态变量或类变量是属于类本身的变量,而不是类的实例。
- 类的所有实例共享同一份类变量,这意味着无论创建多少个实例,类变量只有一个副本。
- 类变量通常在类定义体中直接定义,而不是在任何方法内。
# 全局变量
global_var = "I'm global!"
class MyClass:
# 静态变量 / 类变量
class_var = "I'm a class variable!"
def __init__(self):
# 实例变量
self.instance_var = "I'm an instance variable!"
def local_method(self):
# 局部变量
local_var = "I'm local to this method!"
print(local_var)
print(self.instance_var)
print(MyClass.class_var)
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器