Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

目录

L1 Hello, World

L2 模板中的注释

L3 模板

L4 print函数 输出函数

print("txt")
print("txt", end='')  # 指定默认的结尾字符

L5 字符

L6 关键字

L7 变量与变量类型

整型 int; 浮点型 float; 字符串 string; 布尔型 bool

删除变量

del (变量)

L8 变量类型的转换

int(); float(); string(); bool()

L9 注释

# <内容>

''' <内容> '''

L10 input函数 输入函数

input(<prompt>)

L11 算术运算符

+-*/

整除 // 取余 %**

L12 赋值运算符

=

L13 比较运算符

大于 > 小于 < 等于 == 不等于 != 小于或等于 <= 大于或等于 >=

is 不是 is not

L14 布尔运算符

andornot

在里面 in 不在里面 not in

L15 位运算符

&|

左移 << 右移 >>

L16 运算符的运算顺序

L17 变量的布尔值

L18 条件表达式

<为真时的表达式> if <判断式> else <为假时的表达式>

L19 pass 用于判断中的无用函数

L20 range函数 生成迭代器

range(num1, (num2), (num3))

L21 while 循环

while (flag):
    (code1)

L22 for in 循环

for (变量) in (可迭代对象):
    (code1)

L23 break

用于跳出循环

L24 continue

用于跳过本次循环,进行下一次循环

L25 else, elif

if (check1):
    (code1)
elif (check2):
    (code2)
...
else:
    (coden)

L26 list 列表

1 列表的创建

[...]
list([...])

2 元素的查找

list.index(...)

3 元素的提取

list[n]

4 切片

list[start:end:step]

5 判断元素是否存在列表中

(元素) in (列表)
(元素) not in (列表)

6 在末尾增加一个元素

list.append(object)

7 在末尾增加多个元素

list.extend(object/list)

8 在某处插入单个元素

list.insert(n, object)

9 将列表某处或多处元素替换为单个或多个元素

list[start:end] = (object/list)

10 删减列表某处或多处元素

list[start:end] = []

11 对列表升序排序

list.sort()
list.sort(reverse=False)
sorted(list)

12 对列表降序排序

lisr.sort(reverse=True)
sorted(list, reverse=True)

13 列表生成式

[(关于i的表达式) for i in (可迭代对象)]
[(表达式) for _ in (可迭代对象)]

L27 dict 字典

1 字典的创建

{(key1): (value1), (key2): (value2), ...}
{}

2 字典的创建

dict((key1) = (value1), (key1) = (value1), ...)
dict()

3 获取字典中的元素

dict[key]
dict.get(key, (value))

4 key的判断

key in dict
key not in dict

5 元素的删减

del dict[key]

6 元素的增加或修改值

dict[key] = value

7 词典的清空

dict.clear()

8 获取所有的key

dict.keys()

9 获取所有的value

dict.values()

10 获取所有(key, value)对/元组

dict.items()

11 字典元素的遍历(对key的遍历)

for i in dict:
    (code)

12 字典生成式

12.1 打包

zip([(key1), (key2), ...], [(value1), (value2), ...])

12.2 生成

dict = {a: b for a, b in zip([keys], [values])}

L28 tuple 元组

1 元组的创建

((value1), (value2), ...)
()
(value1), (value2), ...

2 元组的创建

tuple(((value1), (value2), ...))
tuple()

3 只创建含一个元素的元组

(value, )

4 元组中元素的提取

tuple[n]

5 元组的指向 元组的指向的ID不可变

6 元组的遍历

for i in tuple:
    (code)

L29 set 集合

1 集合的创建

{(key1), (key2), ...}

2 集合的创建

set(range/list/tuple/str/set)

3 空集合的创建

set()
set({})  # 我的评价是多此一举

4 集合的元素的判断

in
not in

5 集合的单个元素增加

set.add(key)

6 集合的多个元素增加

set.update(range/list/tuple/str/set/blank)

7 删除集合中指定的元素

set.remove(key)
set.discard(key)

8 删除集合中的任意元素

set.pop()

9 清空集合

set.clear()

10 两个集合是否相等

set1 == set2
set1 != set2

11 判断set1是否为set2的子集

set1.issubset(set2)

12 判断set1是否为set2的超集

set1.issuperset(set2)

13 判断set1和set2是否没有交集

set1.isdisjoint(set2)

14 求交集

set1.intersection(set2)
set1 & set2

15 求并集

set1.union(set2)
set1 | set2

16 求差集

set1.difference(set2)
set1 - set2

17 求对称差集

set1.symmetric_difference(set2)
set1 ^ set2

18 集合生成式

{(关于i的表达式) for i in (可迭代对象)}

L30 string 字符串

1 字符串的创建

'(txt)'
"(txt)"
'''(txt)'''

2 字符串的驻留机制

3 强制使两者指向同一个对象

a = sys.intern(b)

4 利用index方法查找子串第一次出现的位置

string.index(substr)

5 利用rindex方法查找子串最后一次出现的位置

string.rindex(substr)

6 利用find方法查找子串第一次出现的位置

string.find(substr)

7 利用rfind方法查找子串最后一次一次出现的位置

string.rfind(substr)

8 把所有字符都转换为大写

string.upper()

9 把所有字符否转换为小写

string.lower()

10 大写变为小写,小写变为大写

string.swapcase()

11 第一个字符大写而其余小写

string.capitalize()

12 每个单词首字母大写而其余小写

string.title()

13 居中对齐

string.center(width, (char))

14 左对齐

string.ljust(width, (char))

15 右对齐

string.rjust(width, (char))

16 右对齐且前面用0填充

string.zfill(width)

17从左边开始劈分

string.split()

17.1 指定劈分字符

string.split(sep='')
string.split('')

17.2 指定劈分字符串时的最大劈分次数n

string.split(sep='', maxsplit=n)

18 从右边开始劈分

string.rsplit()

18.1 指定劈分字符

string.rsplit(sep='')
string.rsplit('')

18.2 指定劈分字符串时的最大劈分次数n

string.rsplit(sep='', maxsplit=n)

19 判断是否为合法的标识符

string.isidentifier()

20 判断是否全部由空白字符组成

string.isspace()

21 判断是否全部由字母组成

string.isalpha()

22 判断是否全部由十进制数组成

string.isdecimal()

23 判断是否全部由数字组成

string.isnumeric()

24 判断是否全部由字母和数字组成

string.isalnum()

25 字符串的替换

string.replace(str1, str2, (n))

26 字符串的合并

string.join(list/tuple/str)

27 字符串的比较

>, >=, <, <=, ==, !=

28 字符串的切片

string[(start):(end):(step)]

29 格式化字符串

29.1 %占位 文本中为 %s %d %f

string % (str0, str1, ...)

29.2 {}占位 文本中为 {n},字符串后使用format方法

string.format(str0, str1, ...)

29.3 f-string 文本中使用{var}占位

string = f"txt"

30 占位符的格式控制

30.1 %占位符指定宽度

%(n)d, %(n)s, %(n)f 指定宽度为n,右对齐

30.2 %占位符指定浮点型的小数位数

%.(m)f 指定保留m位小数,不足则补零

30.3 %占位符指定整型的宽度,不足则补零

%.(m)d 指定宽度为m,不足在前面补零

30.4 {}占位符指定宽度

{num/var:n} 指定宽度为n,字符串左对齐,数字右对齐,超过则保留原字符串

{num/var:.n} 指定宽度为n,超过则截取

30.5 {}占位符指定浮点型的小数位数

{num/var:.mf} 指定小数位数为m,不足则补零

30.6 {}占位符同时指定宽度和小数位数

{num/var:n.mf} 指定宽度为n,小数位数为m

31 字符串的编码

string.encode(encoding="(encoding_format)")  # 编码格式有"GBK", "UTF-8", "UTF-16",得到为bytes类型

32 字符串的解码

bytes.decode(encoding="(encoding_format)")  # 得到为string类型

L31 函数

1 函数的创建

def function_name ([input1, input2, ...]):
    code1
    code2
    ...
    [return var1 var2 ...]

2 位置传参

function(i1, i2, i3, ...)

3 关键字传参

function(input1=i1, input2=i2, ...)

4 混合传参

function(i1, i2, input3=i3, input4=i4)

5 可以使用多个变量对多个值进行接收

var1, var2, ... = output1, output2, ...

6 默认参数

def function_name ([input1=default_value1, input2, ...]):
    ...

7 个数可变的位置形参

def function_name ([*input, ...]):
    ...

8 个数可变的关键字形参

def function_name ([**input, ...]):
    ...

9 调用函数时将列表的每个元素转换为位置实参

function(*list)

10 调用函数时将字典的每个键值对转换为关键字实参

function(**dict)

11 限制为关键字实参传递

def function_name ([input1, input2, *, input3, ...]):
    ...

L32 局部变量和全局变量

global var  # 将局部变量转换为全局变量(在函数体内使用)

L33 迭代函数

L34 try 异常处理

try:
    (code0)  # 可能出现异常的代码
    ...
except (ErrorType1):
    (code1)  # 出现ErrorType1时执行的代码
    ...
except (ErrorType2) as string:  # 将错误信息以str类型送给string
    (code2)  # 出现ErrorType2时执行的代码
    ...
else:
    (code3)  # 无异常时执行的代码
    ...
finally:
    (code4)  # 无论如何最终都会执行的代码,可用于释放try中申请的资源
    ...

L35 错误类型

L36 使用traceback模块打印错误信息

traceback.print_exc()

L37 类与对象

1 创建类(包括创建类属性、实例属性、实例方法、类方法、静态方法)

class Classname# 类名为Classname,可由多个单词组成,但要求每个首字母均大写,其余小写
cls_attr1 = value1  # 直接写在类里的变量,称为类属性,为所有实例共有
...
def __init__(self, (attr1), ...)  # 初始化方法,必须包含self,使所有该类的实例都具有这些属性
    self.attr1 = attr1 # self.attr1为实例属性,这里将局部变量attr1赋值给了实例属性
    ...
# 实例方法既可以获取构造函数定义的变量,也可以获取类的属性值
def fun1(self, (input1), ...):  # 定义类的实例方法,必须包含self
    (code1)
    ...
# 类方法不能获取构造函数定义的变量,可以获取类的属性
@classmethod  # 使用该句修饰,以定义类方法
def fun2(cls):  # 类方法中必须包含cls
    (code2)
    ...
# 静态方法不能获取构造函数定义的变量,也不可以获取类的属性
@staticmethod  # 使用该句修饰,以定义静态方法
def fun3((var)):  # 静态方法中不包含self,可以有其余输入
    (code3)
    ...

2 创建类对象(实例)

obj = Classname(var1, var2, ...) # 与Classname中__init__一一对应

3 获取实例的属性

obj.var # var为obj对应类中的实例属性

4 对实例应用实例方法

obj.fun(...)
Classname.fun(obj, ...)

5 获取类属性

Classname.cls_attr
obj.cls_attr

6 调用类方法或静态方法

Classname.fun()
obj.fun()

7 动态绑定属性

obj.attr = value

8 动态绑定方法

obj.fun1 = fun2  # fun2 为在类外定义的函数

L38 分装

将类的实例属性私有化

class Classname:
...
def __init__(self, attr1, ...):  # 定义实例属性attr1
    self.__attr1 = attr1  # 将实例属性attr1私有
    ...

L39 类的继承

class Classname(Father1, (Father2), ...):  # 可以继承多个父类
...
def __init__(self, attr1, attr2, attr3, ...)
    super().__init__(attr1, attr2)  # attr1和attr2为父类Father1拥有的实例属性
    # Father1.__init__(attr1, attr2)  # 该句效果同上,如果只有一个父类则可用super()代替,多个则不能
    self.attr3 = attr3
    ...

L40 方法重写(类的继承中)

子类中有与父类名字相同的方法,在实际调用该子类的方法时不会使用父类的方法

子类重写时可以通过 super().method() 调用父类的方法

L41 Object类

object类是所有类的父类,因此所有类都有object类的属性和方法

方法·__str__,用于返回对于对象的描述,print输出的信息

L42 多态

L43 特殊属性

1 __dict__

ex/obj.__dict__  # 查看实例绑定的属性或类绑定的属性和方法,以dict形式输出

2 __class__

ex.__class__  # 输出实例所属的类,为type

3 __bases__

obj.__bases__  # 输出类的所有父类,为tuple

4 __base__

obj.__base__  # 输出类的第一个父类,为type

5 __mro__

obj.__mro__  # 输出类的层次结构,为tuple

6 __subclasses__

obj.__subclasses__  # 输出类的子类,为list

L44 特殊方法

1 实现 + 运算

obj.__add__

2 实现 - 运算

obj.__sub__

3 实现len()

obj.__len__

4 定义类的实例属性

obj.__init__

5 创建实例对象

obj.__new__

L45 拷贝

1 浅拷贝

copy.copy(ex/obj)

2 深拷贝

copy.deepcopy(ex/obj)

L46 模块

1 创建模块 一个 *.py 文件就是一个模块

2 导入模块

import ModuleName [as AnotherName]

3 导入模块中的函数/变量/类

from ModuleName import fun/var/class

3 导入自定义模块

PyCharm 中,右键该文件夹 - 将目录标记为 - 源代码根目录

4 以主程序方式运行

if __name__ == '__main__':
    (code)
    ...

L47 包

1 导入包

import PackageName

2 导入包中的模块

import PackageName.ModuleName
from PackageName import ModuleName

3 导入包中的模块的内容

from PackageName.ModuleName import fun/var/class

L48 常用模块

1 sys 与Python解释器及其环境操作相关的标准库

1.1 查看对象占用的内存

sys.getsizeof(obj)

1.2 查看Python版本信息

sys.version

1.3 查看文件路径信息

sys.path

2 time 提供与时间相关的各种函数的标准库

2.1 得到当前时间,单位为s

time.time()

2.2 得到当前时间信息

time.localtime(time.time())

3 os 提供了访问操作系统服务功能的标准库

4 calendar 提供与日期相关的各种函数的标准库

5 urllib 用于读取来自网上(服务器)的数据标准库

5.1 读取网页内容

urllib.request.urlopen(url).read()

6 json 用于使用JSON序列化和反序列化对象

7 re 用于在字符串中执行正则表达式匹配和替换

8 math 提供标准算术运算函数的标准库

9 decimal 用于进行精确控制运算精度、有效数位和四舍五入操作的十进制运算

10 logging 提供了灵活地记录事件、错误、警告和调试信息等日志信息的功能

L49 第三方模块的安装

进入 cmd 输入 pip install ModuleName 在线下载模块 ModuleName

L50 文件的打开与读写

file = open(filename, (mode, encoding=""))

L51 文件对象的使用

1 读取文件

file.read((size))

2 读取一行内容

file.readline()

3 将每一行内容作为一个字符串对象,形成列表

file.readlines()

4 将str内容写入文件

file.write(str)

5 将字符串列表写入文件

file.writelines(strlist)

6 把文件指针移动到新的位置

file.seek(offset(, whence)))

7 返回文件指针的当前位置

file.tell()

8 把缓冲区的内容写入文件,但不关闭文件

file.flush()

9 把缓冲区的内容写入文件,同时关闭文件

file.close()

About

Notes while learning Python

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages