自我提升-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) # 取经人   通过实例访问
相关推荐
214396513 小时前
Redis如何解决哨兵通知延迟问题_优化客户端连接池动态刷新拓扑的订阅监听机制
jvm·数据库·python
川石课堂软件测试13 小时前
requests接口自动化测试
数据库·python·功能测试·测试工具·单元测试·grafana·prometheus
jiayong2313 小时前
第 25 课:给学习笔记页加上搜索、标签筛选和 URL 同步
开发语言·前端·javascript·vue.js·学习
2401_8716965213 小时前
HTML5中Canvas局部刷新区域重绘的算法优化
jvm·数据库·python
2301_7775993713 小时前
CSS如何制作卡片翻转效果_利用backface-visibility与动画
jvm·数据库·python
解救女汉子13 小时前
Python 中正确声明、重新赋值并安全使用 None 初始化变量的完整指南
jvm·数据库·python
梦想的初衷~13 小时前
Biome-BGC 模型全攻略:气象数据处理、参数调优、敏感性归因分析全覆盖
python·全球变化·生态系统模拟·碳氮水循环·遥感生态·陆面过程·区域碳汇
a95114164213 小时前
CSS 悬停箭头闪烁偏移问题的根源与稳定解决方案
jvm·数据库·python
free_7313 小时前
OpenClaw×AI隐私安全舱——ClawVault:重新定义企业级智能数据防线
人工智能·python·安全
jr-create(•̀⌄•́)13 小时前
Deep Learning入门---基本概念
人工智能·python·深度学习