自我提升-python爬虫学习:day05-函数与面向对象编程

1.切片

Python切片的基本语法为:

sequence[start:stop:step]

  • start: 起始索引(包含)
  • stop: 结束索引(不包含)
  • step: 步长,默认为1
省略参数
  • sequence[:stop] - 从开始到stop-1
  • sequence[start:] - 从start到结束
  • sequence[:] - 复制整个序列
负数索引
  • 从序列末尾开始计数,-1表示最后一个元素
  • 例如:sequence[-3:] 获取最后3个元素
步长使用
  • 正数:从左到右
  • 负数:从右到左(逆序)
  • 例如:sequence[::-1] 反转序列
python 复制代码
'''
切片
    语法:s[start:end:step]
    start:开始索引,默认值为0
    end:结束索引,默认值为字符串的长度(不包含在切片中)
    step:步长,默认值为1
'''

#字符串切片
s = '偷偷学python,惊艳所有人!'
# 取出学
print(s[2]) # 学
#取出python
print(s[3:9]) # python
print(s[3:9:2]) # pto
#取出python和之后的所有字符
print(s[3:]) #python,惊艳所有人!
print(s[3:len(s)]) # python,惊艳所有人!

#取出python之前的所有字符
print(s[:3]) # 偷偷学
# 取出所有字符的倒序
print(s[::-1]) # !人有所艳惊,nohtyp学偷偷
print(s[::-2]) # !有艳,otp偷

#列表切片
# 列表的切片和字符串的切片的用法是完全一样的,只是列表的切片返回的是一个新的列表,而字符串的切片返回的是一个新的字符串。
#              0          1        2           3            4             5
xiyouji = ['猴王出世','大闹天宫','五指山','四人一马','九九八十一难','取得真经']
print(xiyouji[1:3]) # ['大闹天宫', '五指山']
print(xiyouji[:3]) # ['猴王出世', '大闹天宫', '五指山']
print(xiyouji[1:-3]) # ['大闹天宫', '五指山']

2.函数

函数是可重用的代码块,用于执行特定任务。使用 def 关键字定义:

python 复制代码
#def 函数名(参数):  ----> 函数名遵循变量名规则,参数可选
#	函数体
def greet(name):
    """向用户问好"""
    return f"Hello, {name}!"

print(greet("Alice"))  # 输出: Hello, Alice!
位置参数

按顺序传递的参数,必须一一对应:

python 复制代码
def add(a, b):
    return a + b

print(add(3, 5))  # 输出: 8
默认参数

为参数提供默认值,调用时可省略:

python 复制代码
def greet(name, greeting="Hello"):
    return f"{greeting}, {name}!"

print(greet("Bob"))          # 输出: Hello, Bob!
print(greet("Bob", "Hi"))    # 输出: Hi, Bob!

注意:默认参数应放在位置参数之后,且默认值应为不可变对象(如数字、字符串、元组)。

函数的返回值

使用 return 语句返回结果,执行后函数结束

  • 函数的返回值可以是任意类型,包括数字、字符串、列表、元组、字典等。
  • 函数的返回值可以是多个值,用逗号隔开。
  • 函数的返回值可以是None,表示没有返回值。
python 复制代码
def square(x):
    return x ** 2

result = square(5) + 5
print(result)  # 输出: 30

3.类

一个创造事务的模板

使用 class 关键字定义类,类名通常采用驼峰命名法(首字母大写):

复制代码
class 类名:
    def __init__(self, 形参1, 形参2, ...): --->self代表对象,self不可修改不可删

        self.属性名 = 形参值

        # 初始化属性

        self.name = 形参1

        self.age = 形参2

    def 功能函数(self):

        # 方法体

        print('方法体')
python 复制代码
'''
语法:先写模板
    class 类名:
        def __init__(self, 形参1, 形参2, ...): --->self代表对象,self不可修改不可删
            self.属性名 = 形参值
            # 初始化属性
            self.name = 形参1
            self.age = 形参2
        def 功能函数(self):
            # 方法体
            print('方法体')
'''
class Mage:
    # 类变量(所有实例共享)
    team = '取经人'
    def __init__(self, my_name, my_age, my_sex):
        # 构造函数,初始化实例属性
        self.name = my_name
        self.age = my_age
        self.sex = my_sex
    def show(self):
        # 实例方法,第一个参数为self
        print(f"我是{self.name},我今年{self.age}岁,我是{self.sex}{self.team}")
#通过模板创建对象,格式:对象名 = 类名(实参1, 实参2, ...)
mage1 = Mage('孙悟空', 18, '男')
#访问实例属性:对象名.属性名
print(mage1.name) # 孙悟空
print(mage1.age) # 18
print(mage1.sex) # 男
# 调用实例方法
mage1.show()

# 访问类变量:类名.属性名
print(Mage.team) # 取经人
print(mage1.team) # 取经人   通过实例访问
相关推荐
Thomas.Sir2 小时前
第五章:Python3 之 条件、循环和其他语句
python
凌云之程2 小时前
避坑宝典:PyTorch最简安装路径(含CUDA + VSCode + 中文手册)
pytorch·python·conda·安装
星幻元宇VR2 小时前
VR安全带防坠落体验平台|强化高空作业安全教育的新途径
科技·学习·安全·生活·vr
进击的雷神2 小时前
攻克JSON接口分页与对象数组处理:基于AJAX数据源的精准博客爬虫设计
爬虫·ajax·json·spiderflow
WHS-_-20222 小时前
LDM代码学习日记
ide·python·pycharm
如果你想拥有什么先让自己配得上拥有2 小时前
「理性认知」和「本能恐惧」在打架
学习·总结
凌盛羽2 小时前
使用python绘图分析电池充电曲线
开发语言·python·stm32·单片机·fpga开发·51单片机
li星野2 小时前
学习记录:大数据常用工具技术深度解析
大数据·学习
天天爱吃肉82183 小时前
【 电机热网络温度预测模型学习笔记】
笔记·功能测试·嵌入式硬件·学习·机器学习·信息可视化·汽车