前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫基础——05-高级数据类型

Python爬虫基础——05-高级数据类型

作者头像
冷影玺
发布2023-10-11 19:56:16
1560
发布2023-10-11 19:56:16
举报
文章被收录于专栏:冷影玺冷影玺

2.10 ,数据类型高级

2.10.1字符串高级:

字符串常见操作包括:

获取长度

len

len函数可以获取字符串的长度。

查找内容

find

查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,如果不存在,则返回1。

判断

startswith,endswith

判断字符串是不是以谁谁谁开头/结尾。

计算出次数

count

返回 str 在 start 和 end 之间 mystr 里面出现的次数。

替换内容

replace

替换字符串中指定的内容,如果指定次数count,则替换不会超过count次。

切割字符串

split

通过参数的内容切割字符串。

修改大小写

upper,lower

将字符中的大小写互换。

空格处理

strip

去空格。

字符串拼接

join

字符串拼接

代码语言:javascript
复制
# 获取长度:len      len函数可以获取字符串的长度。
#
# 查找内容:find   查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,如果不存在,则返回1。
#
# 判断:startswith,endswith         判断字符串是不是以谁谁谁开头/结尾。
#
# 计算出次数:count               返回 str 在 start 和 end 之间 mystr 里面出现的次数。
#
# 替换内容:replace      替换字符串中指定的内容,如果指定次数count,则替换不会超过count次。
#
# 切割字符串:split
# 修改大小写:upper,lower 将字符中的大小写互换。
#
# 空格处理:strip    去空格。
#
# 字符串拼接:join    字符串拼接



# 获取长度:len  长度
s = 'china'
print(len(s))  # 输出结果为5

# 查找内容:find
s1 = 'china'
print(s1.find('a')) # 输出结果为4

# 判断:startswith,endswith
s2 = 'china'
print(s2.startswith('c'))  # 输入c是内容以c为开头的吗,是则输出True,不是则输出False
print(s2.endswith('a'))   # 输入a是以内容a为结尾的吗,是则输出True,不是则输出False

# 计算出次数:count
s3 = 'aaabbbbb'
print(s3.count('a'))  # 输出结果是3,是统计内容中a有多少个

# 替换内容:replace
s4 = 'cccddd'
print(s4.replace('c','d'))  # 输出结果是dddddd,是将s4内容的c都替换成d然后输出

# 切割字符串:split
s5 = '1#2#3#4'
print(s5.split('#'))   # 输出结果是['1', '2', '3', '4'],是把s5中的#去除

# 修改大小写:upper,lower
s6 = 'china'
print(s6.upper())  # 输出结果是CHINA,是将s6的内容全部转换成大写

s7 = 'CHINA'
print(s7.lower())   # 输出结果是china,是将s7的内容全部转换成小写

# 空格处理:strip
s8 = '   aa   '
print(len(s8))  # 输出结果是8个长度
print(len(s8.strip()))   # 输出结果是去除6个空格剩余2个a所以是两个长度

# 字符串拼接:join
s9 = 'a'
print(s9.join('hello'))  # 输出结果是haealalao 一个个插入将a插入到h后面然后输出以此类推

2.10.2列表高级---添加:

列表的增删改查

添加元素:

添加元素有以下几个方法

append

在末尾添加元素

insert

在指定位置插入元素

extend

合并两个列表

代码语言:javascript
复制
# append 追加     在列表的最后来添加一个对象/数据
figure_list = ['工藤新一','怪盗基德']
print(figure_list)  # 输出结果是列表内容输出

figure_list.append('服部黑蛋')
print(figure_list)  # 输出结果是['工藤新一', '怪盗基德', '服部黑蛋'] 把黑蛋添加到列表最后


# insert  插入
love_list = ['琴酒','贝尔摩德','基安蒂']
print(love_list)  # 原列表输出
# index的值就是你想插入数据的那个下标
love_list.insert(1,'伏特加')  # 我想把伏特加加入到琴酒后面从0开始计算也就是输入1即可添加
print(love_list)  # 输出结果是['琴酒', '伏特加', '贝尔摩德', '基安蒂']


# extend  迭代
num_list = [1,2,3]
num1_list = [4,5,6]

num_list.extend(num1_list)  # 迭代关系将num1得列表追加到num后面
print(num_list)   # 输出结果是[1, 2, 3, 4, 5, 6]

2.10.3列表高级---修改:

代码语言:javascript
复制
# 首先创建一个城市的列表
city_list = ['北京','上海','深圳','武汉','西安']
print(city_list)

# 将列表中元素的值进行修改(例如修改武汉为南京)
city_list[3] = '南京'  # 可以通过下标进行修改内容,注意下标是从0开始的,例如下面的从3开始修改武汉为南京
print(city_list)  # 输出结果为['北京', '上海', '深圳', '南京', '西安']

2.10.4列表高级---查询:

查找元素:

所谓的查找,就是看看指定的元素是否存在,主要包含以下几个方法:

in   和   not in

python常用的查找方法为:

代码语言:javascript
复制
in (存在) ,如果存在那么结果为True,否则为False

not in (不存在),如果不存在那么结果True,否则为False
代码语言:javascript
复制
# in是判断某一个元素是否在某一个列表中
love_list = ['工藤新一','怪盗基德','服部黑蛋']

# 判断一下在控制台输入的我喜欢的那个人物 是否在列表中
love = input('请输出你喜欢的人物:')

if love in love_list:
    print('在')
else:
    print('不在')

# 输出:
# 请输出你喜欢的人物:服部黑蛋
# 在

# not in 判断某一个元素不在列表中

ball_list = ['篮球','足球']

# 在控制台上输入你喜欢的球类 然后判断是否不在这个列表中
ball = input('请输出你喜欢的球类:')
if ball not in ball_list:
    print('不在')
else:
    print('在')

# 输出结果:
# 请输出你喜欢的球类:台球
# 不在

2.10.5列表高级---删除:

类比生活中,如果某位同学调班了,那么就应该把这个同学的信息在姓名中删除,在开发中经常会用到删除这种功能。

列表常见的删除方法有:

del

根据下标进行删除

pop

删除最后一个元素

remove

根据元素的值进行删除

代码语言:javascript
复制
# del 根据下标进行删除数据
# 应用场景,假如我们爬取的数据是我们不喜欢的可以通过下标来进行删除
a_list = [1,2,3,4,5]

# 假如我看3不顺眼想把3删除掉
del a_list[2]  # 从0开始3对应的下标是2
print(a_list)  # 输出结果为[1, 2, 4, 5]



# pop 删除最后一个元素
b_list = [1,2,3,4,5]
b_list.pop()
print(b_list)  # 输出结果为[1, 2, 3, 4]




# remove  根据元素来删除列表中的数据、
c_list = [1,2,3,4,5]
c_list.remove(3) # 假如我不喜欢列表中的3我选中它进行删除
print(c_list)  # 输出结果为[1, 2, 4, 5]

2.10.6 元组高级:

python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号。

代码语言:javascript
复制
a_tuple = (1,2,3,4)
print(a_tuple[0])  # 输出结果为下标1
print(a_tuple[1])  # 输出结果为下标2

# a_tuple[3] = 5   # 输出错误:因为元组不能和列表一样直接修改内容
# print(a_tuple)

# 如下列表测试
a_list = [1,2,3,4]
print(a_list)
a_list[2] = 9  # 将第二个下标替换成9
print(a_list)  # [1, 2, 9, 4]

# 综上所述列表中的元素是可以被修改的,而元组中的元素不可以被修改

a_tuple = (5)
print(type(a_tuple))  # 输出结果为<class 'int'>
# 当元组中只有一个数据的时候 那么他是整型数据


# 如何让他显示元组数据类型呢,只需在数据后面加一个逗号即可
b_tuple = (5,)
print(type(b_tuple))  # 输出结果为<class 'tuple'>

2.10.7切片:

切片是指对操作对象截取其中一部分的操作。字符串,列表,元组,都支持切片操作。

切片的语法:[ 起始:结束:步长 ],也可以简化使用[ 起始:结束]

注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。

代码语言:javascript
复制
# 如下我们写一个字符串

s = 'helao,world'

# 在切片中直接写一个下标,如下输入则输出h,反之输入1则输出e
print(s[0])

# 左闭右开区间  包含左边的数据不包含右边的数据
print(s[0:4])  # 输出结果hell  也就是输出下标0,1,2,3

# 从起始的值开始  一直输入到最后  如果将1换成0则完整输出
print(s[1:])  # 输出结果为ello,world

# 是下标为0的索引的元素开始  一直到第二参数为止  遵循左闭右开区间
print(s[:5]) # 输出结果是hello 则:后面下标输入多少则就输出到对应的多少

# hello,world
# 012345678910  对应下标
# 从下标为0开始  到下标为6结束  每次增长两个长度
print(s[0:6:2])  # 输出结果为hlo

2.10.8字典的高级---查询:

代码语言:javascript
复制
# 定义一个字典
person = {'name':'冷影玺','age':'18'}

1---1
# 访问person的name和age
print(person['name'])  # 输出结果为冷影玺
print(person['age'])   # 输出结果为18

# 获取字典中不存在的key的时候会怎么样呢
# print(person['666'])  会报错KeyError: '666'显示字典没有这个

# 不能使用.的方式来访问字典的数据 如下
# print(person.name) 输出失败

2---2
# 但是可以使用.get来获取  如下所示
print(person.get('name')) # 输出冷影玺
print(person.get('age'))  # 输出18


# 使用.get的方式来获取字典中不存在的key值会怎么样呢
print(person.get('666'))  # 虽然不会报错但是会输出None显示没有这个值

2.10.9字典得高级---修改:

代码语言:javascript
复制
# 定义一个字典

person = {'name':'工藤新一','age':'18'}

# 修改之前的字典
print(person)  # 输出{'name': '工藤新一', 'age': '18'}

# 修改name的值为怪盗基德
person['name'] = '怪盗基德'

# 修改之后的输出字典
print(person)  # 输出{'name': '怪盗基德', 'age': '18'}

2.10.10字典得高级---添加:

代码语言:javascript
复制
# 定义一个字典

person = {'name':'冷影玺'}
print(person)

# 给字典添加一个新的key value
# 如果使用变量名字['键'] = 数据时  这个键如果在字典中不存在  那么就会变成新增元素

person['age'] = 18
print(person)  # 输出{'name': '冷影玺', 'age': 18}添加成功

# 如果这个键存在 那么就会变成这个元素
person['name'] = '冷影玺666'  
print(person)  # 输出 {'name': '冷影玺666', 'age': 18} 进行替换成功

2.10.11字典得高级---删除:

代码语言:javascript
复制
# del
# (1) 删除字典中指定的某一个元素
person = {'name':'工藤新一','age':'18'}

# 删除之前输出
print(person)

# 删除之后输出
del person ['name']
print(person)   # 输出结果为{'age': '18'}删除成功

# (2) 删除整个字典

del person  # 删除整个字典
print(person)  # 输出结果为 NameError: name 'person' is not defined



# clear
# (3) 清空字典  但是保留字典结构

person.clear()
print(person)  # 输出结果为{}   已经清空

2.10.12字典得高级---遍历:

代码语言:javascript
复制
# 遍历就是数据一个一个的输出
person = {'name':'工藤新一','age':18,'sex':'男'}

# (1)  遍历字典的key
# 字典.keys() 方法 获取的字典中所有的key值  key是一个变量的名字  我们可以随便起

for key in person.keys():
    print(key)
    # 输出结果
    # name
    # age
    # sex


# (2)  遍历字典的value
# 字典values.() 方法 获取字典中所有的value值  value是一个变量的名字  我们可以随便起
for value in person.values():
    print(value)
    # 输出结果
    # 工藤新一
    # 18
    # 男



# (3)  遍历字典的key和value
for key,value in person.items():
    print(key,value)
    # 输出结果
    # name 男
    # age 男
    # sex 男

# 如果我们值定义一个可以使用items方法呢
for key in person.items():
    print(key)
    # 输出结果----这样的形式虽然可以输出但是输出的是项/元素
    # ('name', '工藤新一')
    # ('age', 18)
    # ('sex', '男')

# (4)  遍历字典的项/元素
for item in person.items():
    print(item)
    # 输出结果
    # ('name', '工藤新一')
    # ('age', 18)
    # ('sex', '男')

2.11,函数

2.11.1函数的定义和调用:

定义函数格式:

代码语言:javascript
复制
def  函数名():
     代码

函数的调用格式:

代码语言:javascript
复制
f(1)

示例:

代码语言:javascript
复制
# 定义函数
def f1():
    print('我是一个名侦探')
    print('我被琴酒喂了一颗ATX4869')
    print('我是工藤新一')

# 调用函数
f1()
# 输入两遍调用两次即可
f1()

2.11.2函数的参数:

代码语言:javascript
复制
# 使用函数来计算1+2的值
def sum():
    a = 1
    b = 2
    c = a + b
    print(c)
sum()  # 输出3



# 换一种方法
def sum(a,b):
    c = a + b
    print(c)

    
# (1)位置参数   按照位置一一对应的关系进行传递参数
sum(1,2)  # 输出3
# 如果sum(1,2)变成100和200呢会不会打印
sum(100,200) # 输出300



# (2)关键字传参  但是不推荐使用
sum(b = 200, a = 100)  # 输出300

# 定义函数的时候,sum(a,b) 我们称a和b为形式参数   简称形参
# 调用函数的时候,sum(1,2) 我们称1和2为实际参数   简称实参
代码语言:javascript
复制
# 调用参数的顺序
def test(a,b):
    print(a,b)

test(1,2)  # 位置参数
1 2

test(b=1,a=2)  # 关键字参数
2 1
代码语言:javascript
复制
定义时小括号中的参数,用来接收参数用的,称为 "形参"
调用时小括号中的参数,用来传递给函数用的,称为 "实参"

2.11.3函数的返回值:

代码语言:javascript
复制
# 案例
我给柯南10元钱,让他去买一个冰淇淋。
这个例子中,10块钱是我给柯南的,就相当于调用函数时传递到参数,
让柯南买冰淇淋这个事情最终的目标,我需要让柯南把冰淇淋带回来,
此时冰淇淋就是返回值
代码语言:javascript
复制
# 返回值的关键字时return,存在函数中
def kenan():
    return '冰淇淋'

# 使用一个变量food来接受返回值
food = kenan()
print(food)  # 输出结果为冰淇淋
代码语言:javascript
复制
# 案例练习
# 定义一个函数  然后让函数计算两个数值  并且返回这个计算之后的结果

def sum(a,b):
    c = a + b
    return c
m = sum(100,200)
print(m)  # 输出结果为300

2.11.4函数的局部变量和全局变量:

局部变量:

Python爬虫基础——05-高级数据类型_数据
Python爬虫基础——05-高级数据类型_数据
代码语言:javascript
复制
# 局部变量,就是在函数内部内部定义的变量。
# 特点:其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用。


def f1():
    # 在函数内部定义的变量  我们叫做局部变量  如下变量a在内部
    a = 1
    print(a)

f1()  # 输出为1
# print(a)

全局变量:

代码语言:javascript
复制
# 全局变量,定义在函数外部的变量  我们称之为全局变量
# 特点:可以在函数的外部使用,也可以在函数的内部使用

a = 1
print(a)

def f1():
    print(a)
f1()

# 输出2个1

# 根据上述所示我们都使用全局变量不就ok了  事实上是不可以的
# 因为在满足条件的情况下  要使用作用域最小的那个变量范围
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.10 ,数据类型高级
    • 2.10.1字符串高级:
      • 2.10.2列表高级---添加:
        • 2.10.3列表高级---修改:
          • 2.10.4列表高级---查询:
            • 2.10.5列表高级---删除:
              • 2.10.6 元组高级:
                • 2.10.7切片:
                  • 2.10.8字典的高级---查询:
                    • 2.10.9字典得高级---修改:
                      • 2.10.10字典得高级---添加:
                        • 2.10.11字典得高级---删除:
                          • 2.10.12字典得高级---遍历:
                          • 2.11,函数
                            • 2.11.1函数的定义和调用:
                              • 2.11.2函数的参数:
                                • 2.11.3函数的返回值:
                                  • 2.11.4函数的局部变量和全局变量:
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档