Python爬虫-第一章-3-基础语法

时间:2022-12-20 22:59:55
  1. list 列表

# Demo Describe:list 列表

# 列表中可以存储任意数据结构,用 [] 来表示

# # =================示例1,索引,切片,步长,循环,查看长度==========
# try:
# content = ['火影忍者','死神','Fate命运之夜','叛逆的鲁鲁修','心里测量者','海贼王','银魂','龙珠Z']
# print(content[0]) # 火影忍者
# print(content[2:4]) # ['Fate命运之夜', '叛逆的鲁鲁修']
# print(content[::-1]) # ['龙珠Z', '银魂', '海贼王', '心里测量者', '叛逆的鲁鲁修', 'Fate命运之夜', '死神', '火影忍者']
# print(len(content)) # 8
# for item in content: # 遍历输出成员
# print(item)
#
#
# except ZeroDivisionError as e:
# print(e)


# =================示例2,CURD==========
try:

# content = ['火影忍者', '死神', 'Fate命运之夜', '叛逆的鲁鲁修', '心里测量者', '海贼王', '银魂', '龙珠Z']
# #-------------1,C-增 start---------------------------------
# content.append('犬夜叉') ## 追加
# print(content) #['火影忍者', '死神', 'Fate命运之夜', '叛逆的鲁鲁修', '心里测量者', '海贼王', '银魂', '龙珠Z', '犬夜叉']
# content.insert(0, '犬夜叉') ##插入
# print(content) #['犬夜叉', '火影忍者', '死神', 'Fate命运之夜', '叛逆的鲁鲁修', '心里测量者', '海贼王', '银魂', '龙珠Z', '犬夜叉']
# content.extend(['犬夜叉', '空之境界', '死亡笔记', '地狱少女']) ## 连结列表
# print(content) #['犬夜叉', '火影忍者', '死神', 'Fate命运之夜', '叛逆的鲁鲁修', '心里测量者', '海贼王', '银魂', '龙珠Z', '犬夜叉', '犬夜叉', '空之境界', '死亡笔记', '地狱少女']
# # -------------1,C-增 end---------------------------------

# # -------------2,D-删 start---------------------------------
# result = content.pop(3) #给出删除索引,返回剔除元素
# print(content) #['火影忍者', '死神', 'Fate命运之夜', '心里测量者', '海贼王', '银魂', '龙珠Z']
# print(result) #叛逆的鲁鲁修
# content.remove('龙珠Z')
# print(content)
#
# # -------------2,D-删 end---------------------------------

# # -------------2,U-删 start---------------------------------
# content[4]='魔法少女小圆'
# print(content) #['火影忍者', '死神', 'Fate命运之夜', '叛逆的鲁鲁修', '魔法少女小圆', '海贼王', '银魂', '龙珠Z']
#
# # -------------2,U-删 end---------------------------------

# -------------移出列表中超过4个字符的元素---------------------------------
content = ['火影忍者', '死神', 'Fate命运之夜', '叛逆的鲁鲁修', '心里测量者', '海贼王', '银魂', '龙珠Z']
box = []
# for i in range(len(content)): #通过下标操作
# if len(content[i]) > 4:
# box.append(content[i])
# print(box) #['Fate命运之夜', '叛逆的鲁鲁修', '心里测量者'] 得到所有符合条件的元素列表
# for j in box:
# content.remove(j) #移出
# print(content)

for i in content: # 直接操作元素
if len(i) > 4:
box.append(i)
print(box) # ['Fate命运之夜', '叛逆的鲁鲁修', '心里测量者'] 得到所有符合条件的元素列表
for j in box:
content.remove(j) # 移出
print(content)

# ##下面错误方式
# for i in content:
# if len(i) > 4:
# print('元素长度【'+str(len(i))+'】'+'移出元素:'+i)
# content.remove(i)
# print(content) #['火影忍者', '死神', '叛逆的鲁鲁修', '海贼王', '银魂', '龙珠Z']
# '''
# 上面输出内容中有一个符合条件的元素未移出,
# 原因是元素remove后,原列表中后一位元素将前移,元素位置发生改变,列表长度改变
# '''
except ZeroDivisionError as e:
print(e)

# # =================示例3,排序==========
# try:
#
# content = ['1火影忍者', '45死神', '66Fate命运之夜', '33叛逆的鲁鲁修', '12心里测量者', '65海贼王', '3银魂', '53龙珠Z']
# #------升序-----------
# content.sort()
# print(content) #['12心里测量者', '1火影忍者', '33叛逆的鲁鲁修', '3银魂', '45死神', '53龙珠Z', '65海贼王', '66Fate命运之夜']
# # ------降序-----------
# content.sort(reverse=True)
# print(content) #['66Fate命运之夜', '65海贼王', '53龙珠Z', '45死神', '3银魂', '33叛逆的鲁鲁修', '1火影忍者', '12心里测量者']
#
#
# except ZeroDivisionError as e:
# print(e)


  1. set集合 去重

# Demo Describe:集合 去重

# =================示例1,==========
try:
'''
set 集合:集合用 {} 表示,存储不可变得数据类型,对存入得元素进行Hash计算后,根据Hash值排列显示
由于程序运行时Hash计算值固定,所以集合中用来做Hash运算的值必须为不可变类型,当程序重新运行,Hash的运算值会发生改变(算法:散列函数),
set 集合中没有索引的概念(*),所以对集合进行操作处理时不可以用索引
并且相同值只显示一次,可以利用此特性对无排序需求(*)的数据进行去重
>Hash的目的:在同一个解释器进程里相同字符串hash一致(*)。
>散列函数简介:散列(英语:Hashing)是电脑科学中一种对数据的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来
检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结构(称为散列表)。旧译哈希(误以为是人名而采用了音译)。它也常用作一
种信息安全的实现方法,由一串数据中经过散列算法(Hashing algorithms)计算出来的数据指纹(data fingerprint),经常用来识别文件与数据
是否有被窜改,以保证文件与数据确实是由原创者所提供。

'''
# st = {'青瓷',1,3,5,(1,3,5)}
# print(st, type(st))
# # st.pop() # 随机剔除一个元素
# st.add('天道')

# ---------------集合运算:元素移除(差集)---------------------------
# st = {'青瓷', 1, 3, 5, (1, 3, 5)}
'''
Remove elements of a set from an another set using set.difference()
'''
# st = st.difference({(1,3,5)})
'''
Using – operator to remove elements of a set from an another set
'''
# st = st - {(1,3,5)}
'''
Using difference_update() to remove elements of one set from an another set
'''
# st.difference_update({(1,3,5)})
'''
Remove elements of one set from an another set using for loop
'''
# set_to_delete = {5, '青瓷', (1, 3, 5)}
# for item in set_to_delete:
# st.discard(item)
# # ---------------集合运算:元素合并(并集)两组集合中得元素合并并且去重---------------------------
# st = {'青瓷', 1, 3, 5, (1, 3, 5)}
# set_to_union = {5, '青瓷', (1, 3, 5, 888)}
# # st = st.union(set_to_union)
# st = st | set_to_union

# # ---------------集合运算:交叉元素(交集)两组集合中的交叉元素---------------------------
# st = {'青瓷', 1, 3, 5, (1, 3, 5)}
# set_to_union = {5, '青瓷', (1, 3, 5, 888)}
# # st = st.intersection(set_to_union) #{'青瓷', 5} <class 'set'>
# st = st & set_to_union
# print(st, type(st))

# ---------------Hash 计算测试---------------------------
str = '12345'
print(hash(str)) # 每次重新运行程序时Hash计算值都不一致

except ZeroDivisionError as e:
print(e)