Python 基础不懂语法(二)

继承

父类是继承的类,也称为基类;子类是另一个类继承的类,也称为派生类。

# 创建父类和子类 将从Person类继承属性和方法
class Person:
    def __init__(self, fname, lname):
        self.firstname = fname
        self.lastname = lname
    def printname(self):
        print(self.firstname, self.lastname)
        
x = Person("Bill", "Gates")
x.printname()

class Student(Person)
    # 当添加init函数时 子类将不继承父的init函数 覆盖了父的init函数 如保持父的init函数,需添加父的init函数调用
    def __init__(self, fname, lname):
        Person.__init__(self, fname, lname)
x = Student("Elon", "Musk")
x.printname()
# super()函数 会使子类从其父继承所有方法和属性

迭代器

迭代器是一个对象,该对象包含可计数数字。迭代器是可迭代的对象,意味着可以遍历所有值。

列表、元组、字典和集和都可以迭代对象,即它们是迭代的容器。

# 使用方法包括 __iter__() __next__() 类似初始函数__init__() 
# 从元组中返回一个迭代器,并打印每一个项目;也可以字符串返回迭代器,打印每一个字符;同时for循环遍历也可以迭代对象,每个循环执行next()方法
class MyNumbers:
    def __iter__(self):
        self.a = 1
        return self
    def __next__(self):
        if self.a <=20:
            x = self.a
            self.a += 1
            return x
        else:
            raise StopIteration # 作为一个终止条件 否则会一直进行
myclass = MyNumbers()
myiter = iter(myclass)

for x in myiter:
    print(x)

多态

词意为“多种形式”,指在许多对象或类上执行的具有相同名称的方法/函数/操作符。

# len()函数是python函数用于不同对象的例子 包括字符串 元组 字典
class Vehicle:
    def __init__(self, brand, model)
        self.brand = brand
        self.model = model
    def move(self):
        print("Move!")
class Car(Vehicle):
    pass
class Boat(Vehicle):
    def move(self):
        print("Sail!")
class Plane(Vehicle):
    def move(self):
        print("Fly!")
car1 = Car("Ford", "Mustang")
boat1 = Boat("Ibiza", "Touring 20")
plane1 = Plane("Boeing", "747")

for x in (car1, boat1, plane1)
    print(x.brand)
    print(x.model)
    x.move()
# 子类从父类继承属性和方法 
# Car Boat Plane类是空的 从Vehicle继承了属性和函数

作用域

变量仅在创建区域内可用,称为作用域。分 局部作用域和全局作用域,即变量可局部和全局调用。

模块

模块是包含一组函数的文件,希望在应用程序中引用。

# mymodule.py文件下
def greeting(name)
    print("Hello, " + name)
person1 = {
    "name": "Bill",
    "age": 63,
    "country": "USA"
}
# 使用import语句使用创建的模块
import mymodule
mymodule.greeting("Bill")
a = mymodule.person1["age"]
print(a)
# 重命名模块
import mymodule as mx
a = mx.person1["age"]
print(a)
# 使用dir()函数:内置函数可以列出所有函数名(或变量名)
import platform
x = dir(platform)
print(x)
# 使用from关键字选择仅从模块导入部件
from mymodule import person1
print(person1["age"])

使用 from 关键字导入时,不能在引用模块中的元素时使用模块名称。示例:person1["age"],而不是mymodule.person1["age"]

日期

# 导入datetime模块
import datetime
x = datetime.datetime.now() # 显示当前时间
print(x)
print(x.year) # 年
print(x.strftime("%A")) # 年份
# 创建日期对象 使用datetime模块的datetime()类(构造函数),接受时间地区(小时、分钟、秒、微妙、tzone)的参数,未设置参数默认为 0 时区默认为 None
x = datetime.datetime(2020, 5, 17)
print(x)

strftime()函数将日期对象格式化为可读字符串。

import datetime
x = datetime.datetime.now
print(x.strftime("%B"))
指令描述实例
%aWeekday 短版本wed
%AWeekday 长版本wednesday
%wWeekday 数字 0-6 0为周日3
%d日 数字 0-3131
%b月名 短版本Dec
%B月名 完整版December
%m月 数字 01-1212
%y年 短版本 无世纪25
%Y年 完整版2025
%H小时 00-2320
%I小时 00-128
%pAM/PMPM
%M分 00-5933
%S秒 00-5945
%f微妙 000000-999999234212
%zUTC 偏移+01:00
%Z时区CST
%j天数 001-365365
%U周数 每周第一天是周日 00-5352
%W周数 每周第一天是周一 00-5352
%c日期和时间的本地版本Mon Dec 31 17:41:00 2025
%x日期的本地版本12/31/18
%X时间的本地版本17:41:00
%%A % character%

数学

import math
x = pow(4, 3) # 4的3次幂
x = math.ceil(1.4) # 一个数字向上取整 2
x = math.floor(1.4) # 一个数字向下取整 1
x = math.exp(13) # E的13次幂 E = 2.718282

Python 数学模块

RegEx(正则表达式)

形成搜索模式的字符序列,可用于检查字符串是否包含指定的搜索模式。

# 导入re模块
import re
# findall() 返回包含所有匹配项的列表 未找到匹配项返回空列表
str = "Chine is a great country"
x = re.findall("a", str)
print(x)
# search() 搜索字符串中的匹配项 匹配返回Match对象 未匹配返回None
str = "China is a great country"
x = re.search("\s", str)
    # 搜索第一个空白字符
print("The first white-space character is located in position:", x.start())
# split() 返回一个列表,其中字符串在每次匹配时被拆分
    # 对每个空白字符处进行拆分 maxsplit控制出现次数
str = "China is a great country"
x = re.split("\s", str, 1)
print(x)
# sub() 把匹配替换为您选择的文本 count控制替换次数
    # 用数字9替换每个空白字符
str = "China is a great country"
x = re.sub("\s", "9", str, 2)
print(x)

Match对象:包含有关搜索和结果信息的对象

# span() 返回的元组包含了匹配的开始和结束位置
# .sring 返回传入函数的字符串
# group() 返回匹配的字符串部分
import re
str = "China is a great country"
    # r"\bC\w+: 匹配字母“C“开头的单词 并且确保其是起始字母
    # r":前缀 r 表示原始字符串(raw string),它告诉 Python 不对字符串中的反斜杠 \ 进行转义处理,这样可以避免在正则表达式中误解反斜杠的作用。
    # \b:表示单词边界(word boundary),这意味着匹配的位置是在一个单词的开始或者结束的位置。在这个例子中,\b 确保了 "C" 是单词的开头,而不是单词的中间。
    # \w+:\w 匹配一个字母、数字或下划线(相当于 [a-zA-Z0-9_]),+ 表示匹配一次或多次。因此,\w+ 匹配一个由字母、数字或下划线组成的单词。
x = re.search(r"\bC\w+", str)
print(x.span()) # 查找大写C开头的单词 (0, 5)
print(x.string) # 打印传入字符串 China is a great country
print(x.group()) # 查找大写C开头的任何单词 China

PIP

pip是Python包或模块的包管理器。

# PIP常用命令
# 打开anaconda prompt窗口进入anaconda环境文件夹 查看pip版本
pip --version
    (base) D:\soft\Anacanda3>pip --version
    pip 23.3.1 from D:\soft\Anacanda3\lib\site-packages\pip (python 3.9)
# 下载/删除包
pip install / uninstall 包名
# 列出包
pip list
CC BY-NC-SA 4.0 Deed | 署名-非商业性使用-相同方式共享
最后更新时间:2025-10-18 17:06:05