第3章 python基础

本文介绍了Python的PEP8编码规范,包括直接赋值、增量赋值、多重赋值等变量赋值方式,以及Python3.8新增的内部变量赋值。此外,还讲解了合法标识符的规则和Python的关键字。同时,文章讨论了内存管理的基本概念,为深入理解Python的内存机制提供了基础。
摘要由CSDN通过智能技术生成

3.1 语句和语法

python - PEP8代码风格规范大全(自己的总结)

PEP 8 – Style Guide for Python Code(官方文档)

3.2 变量赋值的方式

        1、直接赋值
        2、增量赋值
        3、多重赋值
        4、多元赋值
        5、内部变量赋值(python3.8新变化)

                建议不要过多使用,避免阅读障碍

        

# 直接赋值
a = 1


# 增量赋值
a += 1


# 多重赋值
b = c = d = 2


# 多元赋值
e, f = 1, 2


# 内部变量赋值(python3.8新变化)
if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

discount = 0.0
if (mo := re.search(r'(\d+)% discount', advertisement)):
    discount = float(mo.group(1)) / 100.0

while (block := f.read(256)) != '':
    process(block)

[clean_name.title() for name in names
 if (clean_name := normalize('NFC', name)) in allowed_names]

3.3 标识符

        1、合法的标识符

                第一个字符必须是字母或下划线

                大小写敏感

                剩下的字符可以是字母、数字、下划线

        2、关键字
import keyword

print(keyword.kwlist)
a = ['False', 'None', 'True', '__peg_parser__', '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']
        3、内建
        4、专用下划线标识符          

1. python用下划线作为变量前缀和后缀,来指定特殊变量。

_xxx: 不用'from module import *'导入,一般被看作是私有的,在模块或类外不可用使用。

__xxx__: 系统定义名字

__xxx: 类中的私有变量名

2. 判断模块是被导入还是被直接执行

如果模块是被导入,__name__的值为模块名字。

如果模块是被直接执行,__name__的值为'__main__'

        

3.4 基本风格指南

        1、模块结构与布局

用模块来合理组织你的Python代码是简单又自然的方法。你应该建立一种统一且容易阅读的结构,并将它应用到每一个文件中去。下面就是一种非常合理的布局:

 (1) 起始行(Unix)

 (2) 模块文档

 (3) 模块导入

 (4) 变量定义

 (5) 类定义

 (6) 函数定义

 (7) 主程序

下图是一个典型模块的内部结构图解。

(1) 起始行

       通常只有在类Unix 环境下才使用起始行,有起始行就能够仅输入脚本名字来执行脚本,无需直接调用解释器。

(2)模块文档

        简要介绍模块的功能及重要全局变量的含义,模块外可通过 module.__doc__ 访问这些内容。

(3)模块导入

         导入当前模块的代码需要的所有模块;每个模块仅导入一次(当前模块被加载时);函数内部的模块导入代码不会被执行,除非该函数正在执行。

(4)变量定义

         这里定义的变量为全局变量,本模块中的所有函数都可直接使用。从好的编程风格角度说,除非必须,否则就要尽量使用局部变量代替全局变量,如果坚持这样做,你的代码就不但容易维护,而且还可以提高性能并节省内存。

(5)类定义语句

        所有的类都需要在这里定义。当模块被导入时class 语句会被执行, 类也就会被定义。类的文档变量是class.__doc__。

(6)函数定义语句

        此处定义的函数可以通过module.function()在外部被访问到,当模块被导入时 def 语句会被执行,函数也就都会定义好,函数的文档变量是function.__doc__。

(7) 主程序

        无论这个模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码。通常这里不会有太多功能性代码,而是根据执行的模式调用不同的函数。

        推荐代码风格:主程序调用main()函数

        主程序代码通常都和你前面看到的代码相似,检查 __name__ 变量的值然后再执行相应的调用。

        主程序中的代码通常包括变量赋值, 类定义和函数定义,随后检查__name__来决定是否调用另一个函数(通常调用main()函数)来完成该模块的功能。

        大部分的Python 模块都是用于导入调用的,直接运行模块应该调用该模块的回归测试代码。

3.5 内存管理

python - 深入浅出探讨python的内存管理机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值