【Python】谁 Python 学的不扎实?

基础操作

多个变量在一行赋值

a, b = 1, 2

Python中print的骚操作(倒计时、转圈显示、进度条)

数据类型

浮点数格式化输出

无穷大 inf 和 非数字的 NaN

字符串 index() 方法

多文件调用
若要在 A 文件运行整个 B 文件,则在 A 文件中如下写:(同一目录下)

import B
if __name__ == '__main__':
    B

列表常见操作

获取列表数据的 index
list.index(num)

列表排序
不改变原 list
newlist = sorted(list)
改变原 list
list.sort()

列表切片
例:单独对列表前 n 个数据求和
sum(nums[0:n]) # 从 0 到 n - 1

删除列表元素的四种方法

列表最后一个元素
list[-1]

倒叙遍历列表

倒序输出列表

list.pop()
pop() 括号中的是元素的 index,返回 pop 的值。若直接pop则返回最后一个元素。
注意,pop是对原列表直接删除的操作。

整体替换列表
list1[m:] = list2 # 第 m 个元素后面的元素都替换成 list2 中的元素,list1 变成两个列表的合并
leetcode 相关题解

列表合并(六种方法)
前五种
切片法(同整体替换列表)

将输入的数字转换为列表

开辟一定空间的数组

[enumerate():将可迭代对象加编号] (https://zhuanlan.zhihu.com/p/92544989)
leetcode 相关题解
这样 for 循环遍历列表可以直接遍历出序号和值,也方便用该列表构造字典 / 哈希表

continue 和 break 的区别
continue 是结束本次循环(执行到该条语句后面不执行了,进行下一次循环)
break 是跳出整个循环

OS 操作

创建文件夹 —— os.mkdir ; os.makedirs
参数解析

import os
os.mkdir(r"C:\Users\ZJL\Desktop\test")  # 执行之后会发现桌面产生文件夹 test

# 两函数区别
# 假设 r"C:\Users\ZJL\Desktop\test 路径已存在
# 现在要创建 r"C:\Users\ZJL\Desktop\test\1\2
# os.makedirs 可以,os.mkdir 不行

os.mkdir(r"C:\Users\ZJL\Desktop\test\1\2")
os.makedirs(r"C:\Users\ZJL\Desktop\test\1\2")

# 总结:os.mkdir 只能创建最后一级的目录,os.makedirs 可以全创建

迭代器
python继承

super() 的用法总结

super() 是 Python 中用于调用父类(或超类)方法的内置函数。它在子类中重写方法时特别有用,提供了一些优势和灵活性。以下是 super() 的主要用法和优势:

1. 调用父类方法

super() 主要用于在子类中调用父类的方法,尤其是在子类重写了父类方法的情况下。

class Parent:
    def greet(self):
        print("Hello from Parent")

class Child(Parent):
    def greet(self):
        print("Hello from Child")
        super().greet()  # 使用 super() 调用父类的方法

child = Child()
child.greet()

输出:

Hello from Child
Hello from Parent

2. 避免硬编码父类名称

使用 super() 可以避免在代码中硬编码父类的名称,这在多重继承或父类名称可能发生变化的情况下非常有用。

class Parent:
    def greet(self):
        print("Hello from Parent")

class Child(Parent):
    def greet(self):
        print("Hello from Child")
        super().greet()  # 避免硬编码父类名称

child = Child()
child.greet()

3. 支持多重继承

super() 能够正确处理多重继承中的方法解析顺序(MRO),确保方法按照正确的顺序调用。

class A:
    def greet(self):
        print("Hello from A")

class B(A):
    def greet(self):
        print("Hello from B")
        super().greet()

class C(A):
    def greet(self):
        print("Hello from C")
        super().greet()

class D(B, C):
    def greet(self):
        print("Hello from D")
        super().greet()

d = D()
d.greet()

输出:

Hello from D
Hello from B
Hello from C
Hello from A

4. 提高代码可读性和维护性

使用 super() 可以使代码更具可读性和可维护性,因为它明确表示了调用父类方法的意图。

class Parent:
    def greet(self):
        print("Hello from Parent")

class Child(Parent):
    def greet(self):
        print("Hello from Child")
        super().greet()  # 明确表示调用父类方法

child = Child()
child.greet()

总结

  • 调用父类方法:在子类中重写方法时,使用 super() 调用父类的方法。
  • 避免硬编码:避免在代码中硬编码父类的名称,使代码更具灵活性。
  • 支持多重继承:在多重继承中,super() 能够正确处理方法解析顺序(MRO)。
  • 提高可读性:使代码更具可读性和可维护性,明确表示调用父类方法的意图。

通过使用 super(),你可以编写更清晰、更灵活的代码,特别是在处理复杂的继承关系时。

一些包

numba,让python速度提升百倍

赞赏