Py杂记①-基础篇

编程语言PythonPython基础Python语法
2025-03-10 - 20:45
四季橙子
2025-03-10 - 20:45

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为空,则直到尾部。若index1index2均为空,则创建相同的列表。想要复制赋值时,必须使用切片。否则就类似于指针之间赋值。

元组(tuple

元组。可理解为常量列表。使用()即小括号定义。不能修改已有的值,但是可以把新创建的元组重新关联到已有的变量上。


字典(dict

字典。可理解为映射。每个值都关联一个键。值可以重复,键不能重复。用{}即大括号定义,其中元素格式为'键': '值'

  • [key]:引用值的方式。
  • 在已有字典里添加新键值对时,使用dict['key'] = valuekeyvalue都可以是新的,字典里没有的。
  • 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关键字可以执行静默的错误。

控制语句

forif 语句

  • forif 语句(if, elif, else)没有小括号。语句后要加冒号。
  • and == &&or == ||
  • 关键字innot 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 × 2025-03-10 - 23:38
四季柚子
=> 四季橙子
回复给 @ 四季橙子

好像也不是很久,也就两年少三个月的事情。

两天速成python所记的。

时间过得真快啊😭。

2025-03-11 - 10:20