Py杂记①-基础篇
编程语言
2025-03-10 - 20:451044
Python 数据结构和语法
列表(list
)
列表,或者说动态数组、向量,而且元素类型可以不同。用[]
即中括号定义。
.append(element)
:尾部添加。.insert(index, element)
:插入。del list[index]
:删除指定元素。.pop(index)
:弹出元素,并返回其值。不填写参数的话就弹出尾部元素。.remove(value)
:删除指定的值的元素,只能删除第一个出现的。.sort()
:排序。默认升序,参数为reverse=True
则改为降序。sorted()
:临时排序。默认升序,同上。.reverse()
:元素倒置。len()
:列表元素个数。list[index1:index2]
:切片,即创造子列表(范围为[index1, index2)
)。index1
为空,则从头开始;index2
为空,则直到尾部。若index1
和index2
均为空,则创建相同的列表。想要复制赋值时,必须使用切片。否则就类似于指针之间赋值。
元组(tuple
)
元组。可理解为常量列表。使用()
即小括号定义。不能修改已有的值,但是可以把新创建的元组重新关联到已有的变量上。
字典(dict
)
字典。可理解为映射。每个值都关联一个键。值可以重复,键不能重复。用{}
即大括号定义,其中元素格式为'键': '值'
。
[key]
:引用值的方式。- 在已有字典里添加新键值对时,使用
dict['key'] = value
,key
和value
都可以是新的,字典里没有的。 del dict['key']
:删除键值对。.get('key', 'if key not in dict, return this param')
:该方法可以用来获取字典里指定的键值,不存在的话返回第二个参数。.items()
:返回一个列表的键值对。通常用于遍历字典。例如for key, value in dict.items():
..keys()
:返回一个列表,包括所有键。可以用来遍历字典中的键。例如for key in dict.keys():
. 如果忽略.keys()
,返回的也默认是键。.values()
:返回一个列表,包括所有值。sorted()
同样适用于字典。可以选择.keys
方法和.values
方法,进行不同的排序。
函数和模块
函数
range(num1, num2)
:创建[num1, num2)
范围的列表。通常是临时的。- 可以通过
list(range(num1, num2))
来创建一个列表并赋值给某个变量。 min(list_param)
、max(list_param)
、sum(list_param)
:易知它们的功能,只适用于数字列表。- 不同的数据类型之间可以嵌套。例如列表中嵌套字典。进行元素引用时,可以
list[index]['key']
,如此。 - 同样,也可以在字典中嵌套列表。列表一般放在值里。字典中也可以存储字典,同样,子字典一般也放在值里。
input()
函数有一个参数,可以显示提示内容。后接受用户的输入。此函数接受的输入是字符串。int()
函数把参数从字符串转换为数字类型。类似于强制转换吧。while
后跟一条布尔语句和冒号。- 尽量不要在
for
循环里修改列表或字典的值~这和C不大一样。但是要改的话……似乎问题也不大?
模块导入
import filename
:导入某个模块。可以使用里面的所有函数。使用这种方法时,需要用filename.funcname()
的方式来调用函数。from filename import funcname1, funcname2
:导入某个模块的部分函数。使用这种方法时,直接用funcname()
调用函数即可。from filename import funcname as anothername
:导入某个模块的某个函数,并指定别名。可以解决导入函数和现有函数名称冲突的问题。import filename as anothername
:给模块指定别名。可以通过anothername.funcname()
来调用函数。from filename import *
:导入模块的所有函数,可以直接用函数名调用函数。但是导入多个模块时,不推荐这样做。
异常处理
try except else
是异常处理的代码块。else
中应当写依赖try
中代码执行成功的代码。pass
关键字可以执行静默的错误。
控制语句
for
和 if
语句
for
和if
语句(if
,elif
,else
)没有小括号。语句后要加冒号。and == &&
,or == ||
- 关键字
in
、not in
,可以用来检查某些值是否在一个列表里。是布尔表达式。 - 列表变量本身可以用作布尔表达式。为空时
False
。
函数声明
def
是声明函数的关键字(和我ID一样= =)def Function_Name(param1, param2, ...)
:- 在调用函数时,默认的方式(即C)则会按顺序传递实参的值到形参。如果调用时加上了形参的名字=值,则不用在乎顺序。
- 例如,
Funtion_Name(ap1, ap2),param1=ap1,param2=ap2
;Funtion_Name(param1=ap2,param2=ap1)
则反过来。 - 同样,和C++一样,可以在设置函数的形参时用=赋予默认值。通常把带默认值的形参放在形参表后面。
- 函数传列表时应该是引用的方式。可以修改值。想要传递副本的话,用
[:]
切片。 *param
代表创建一个名为param
的元组形参,可以无限的接收参数。可以与普通形参混合使用,通常放在最后。**param
代表创建一个名为param
的字典形参,可以无限的接收键值对。
类
- 类的声明关键字也是
class
,跟类名和冒号。 - 构造函数的声明为
__init__(self, param...)
:有两个下划线。self
等价于this
指针。 - 构造函数的函数体形式一般是
self._mv1 = param1, self._mv2 = param2
……以此类推。也可以是给定的默认值,不一定要和形参一一对应。该函数体中self
引用的变量名则为该类的成员变量。可见Python的成员变量在构造函数里声明。 - 继承的语法是
class Derived(Base)
: - 派生类的特殊函数
super().Base_function()
,super()
函数可以用来调用基类的函数。例如,可以使用super().__init__(param)
来初始化派生类中的基类成员变量。在派生类的构造函数中,可以指定自己特有的成员变量。 - 派生类中可以覆写基类的函数。定义同名函数即可。
- 类中可以嵌套类。通过把一个类的对象定义为成员变量即可。
- 类的导入和函数基本一致。
上下文管理器
with as
关键字,可以用来创建一个上下文管理器。- 目前常见的用法是
with open('path') as file_object
,这样做可以打开文件并且创建一个代表此文件的对象。同时不需要显式调用.close()
函数,在with
代码块结束后,自动关闭。 open(path, mode)
,和C类似,mode
可以为'r'
,'w'
,'a'
,'r+'
分别表示只读、只写、附加、读写。默认是只读。- 逐行读取可以采用
for line in file_object:
line
代表了文本文件的每一行。 - 值得注意的是,Python读取文件的任一行或者整个文件,都会加一个空行,可以使用字符串的
.strip()
或.rstrip()
函数消除空格。 - 文本文件对象的
.readlines()
方法也可以直接读取所有的行并且由此创建一个列表。 - 文本文件对象的
.write()
方法可以写入字符串。如想写入数值则需使用str()
转换函数。
话题状态:正常
40