当前位置: 首页 > news >正文

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)
http://www.jsqmd.com/news/1361546/

相关文章:

  • Buzz终极指南:完全离线语音转文字工具,保护你的隐私安全
  • Linux进程控制实验:从原理到企业级应用
  • 【性能革命】YOLOv8_ms全解析:从5行代码到工业级部署的跨模态AI框架
  • JDBC配置异常解析:缺失jdbcUrl的解决方案
  • 免费网站建设itcask:普通人如何用零成本打造专业官网并实现商业变现
  • B站缓存视频转换终极指南:如何一键拯救你的珍贵回忆
  • M8连接器接触电阻长期稳定性研究:从镀金工艺到插拔寿命的全面分析
  • SwarmForge多项目管理:如何在多个工作目录中高效使用AI代理
  • 5分钟上手MiniMax-H3-comfyUI-GGUF:FL2VA与Ref2VA模型快速部署教程
  • 从配方到出海全链路打通:这家高品质洗护用品ODM厂太懂品牌需求 - 天下观知
  • test-data-bot快速上手指南:10分钟学会构建测试数据生成器
  • Duilib终极指南:三步掌握Windows原生界面开发的秘密武器
  • Go语言实现BFS树遍历的工程实践与优化
  • AI编程协作三步法:从规划到审查,告别代码幻觉
  • 铜陵市枞阳县国内GEO服务商代理加盟靠谱推荐:本地合伙人签约前,先看清技术、权益和续约率 - 子柔传媒
  • SpringBoot+SSM开发美容院管理系统的实践与优化
  • 黑奥秘白转黑是真实效果吗?AI智能检测系统,效果可量化追溯 - 美业信息观察
  • Sublime Text 3 设置中文方法
  • SpringBoot娱乐经纪平台:高并发架构与微服务实践
  • 深入解析MCP协议:从JSON-RPC到STDIO/HTTP的双引擎通信机制
  • 大语言模型结构化输出实战:从Pydantic到Function Calling的数据提取指南
  • AI Agent联网能力实战:从架构设计到安全落地的完整指南
  • HTML+JS实现智能风扇控制界面开发指南
  • 视频去水印教程:手机电脑去水印方法、优缺点与注意事项,合法提醒不可少 - 免费软件工具方法教程
  • Linux进程控制实验:从创建到通信的实践指南
  • 铜陵市郊区国内GEO服务商代理加盟靠谱推荐:本地合伙人为什么必须优先看源头技术与区域保护? - 小随科技
  • SwarmForge日志与审计:跟踪AI代理协作的完整历史
  • 工业视觉分析如何实现SOP合规性监控?iNeuOS_Vision实战指南
  • 基于机器学习方法的番茄叶片病虫害识别研究(源码+万字报告+讲解)(支持资料参考_相关定制)
  • .NET Framework 3.5 无法安装 — 错误 0x800F0906 解决指南