python爬虫前需具备知识(1)

本文介绍了Python中的随机数生成、列表排序(包括升序、降序和自定义函数),字符串操作如统计子串、编码解码、查找替换以及日期时间处理的相关函数和方法,展示了如何使用这些功能进行数据操作和格式转换。
摘要由CSDN通过智能技术生成

列表

随机数(random)

import random

   random.randint表示生成一个随机数

#生成10个1-10之间的整数   ----random.randint随机数
 list_2=[random.randint(1,10) for j in range(10)]

对列表升序sort

list_2.sort(reverse=True)#reverse 是倒置的意思 设置成TRUE 则倒叙。

用切片方式实现降序排序([::-1] 降序)

#针对增序排列的列表进行反向切片   list_1[::1]增序
list_3=list_1[::-1]

例子

#使用匿名函数实现:
team.sort(key=lambda x:x[1],reverse=True)
team=[
    ['拉拉',20,'身高:120'],
    ['娜娜', 23, '身高:140'],
    ['五五',10,'身高:110'],
    ['哈哈',27,'身高:170']
]
'''
按照年龄排
list.sort( key, reverse)
key : 是一个针对列表中所有的元素都可以进行操作的函数,如果加入了key参数,那就是先用key的函数对列表中的每一项进行处理,按函数返回的结果进行整体的排序
'''
#需要一个函数访问到子列表的第二项
def get_two(x):#x是要获取子列表第二项---就是年龄。
    return x[1]
team.sort(key=get_two)#  key的函数对列表中的每一项进行处理   就是子列表
#对身高来排序

def get_third(x):
    a=''
    return x[2].split(':')[1]  #split是把对字符串按照符号分开
team.sort(key=get_third)

字符串

count : 统计子串在字符串中出现的次数

#用count实现统计一个字符串中各字符出现的次数
str='aaaabbbcccddd'
'''
直接获取会有重复的,故而可用字典,因为字典是键值对存在,不会有重复
只可以用在字符、字符串中'''
dic_count = {}
for s in str:
    dic_count[s]=str.count(s)
print(dic_count)
for i_key in dic_count:
    print(i_key, dic_count[i_key])

编码解码

# 字符串 str : 给人看,以''作为标识
# 字节 bytes : 用来存储二进制的字符流,主要用来进行信息的存储和传递,给计算机看,以b''作为标识
# 字符串和字节可以进行相互转换
# str.encode() 将字符串转换为字节
# bytes.decode() 将字节转换为字符串
str2 = '你好,中国'
bytes2 = str2.encode('utf-8')  # utf-8 是一种编码规范,这条语句的作用是将字符串’你好,中国‘转换为utf-8编码的字节
str2x = bytes2.decode('utf-8') # 将字节转换为字符串,解码

# 注意在编码和解码过程中要使用相同的编码规范,否则容易出现乱码或报错
# print(bytes2.decode('GBK')) # 程序一旦遇到异常就会导致运行中断,后面的代码就无法运行了
print(bytes2.decode('GBK', errors = 'ignore')) # 设置errors = 'ignore'可以忽略解码中出现的错误

 查找和替换

find
replace

print('hello'.find('x'))   # 返回的是要查找的子串在字符串中的起始索引位置
# 如果要查找的子串在字符串中不存在,则返回-1

print('hello'.index('o'))   # 返回的是要查找的子串在字符串中的起始索引位置
# index查找不到会报错

print('2022-11-11'.replace('-', '/'))

判断字符串是否为某种类型

print('123'.isdigit())#是否为 数字
# 返回True/False,返回Ture 说明字符串是数值类型的字符串

print(isinstance(1234.1 , float))  # 判断1234.1 是否为浮点数  True
# isinstance : 判断对象是否为某种类型

print(eval('1+2-2'))
# print(eval('abc')) 去掉之后相当于一个变量
# eval函数的作用是将字符串的标识去掉,并对字符串中的内容进行自动识别,并按照其类型执行相关的操作
print(isinstance(eval('12.1'),float))

 字符串的拆分与合并

split  join
print('拆分','2022-1-2'.split('-'))
print('合并:', '2022' + '-' + '11' + '-' + '11' )
print('合并,join:', '-'.join(['2022', '11', '11']))
print('合并','/'.join(['2001','2','2']))
# 用给定的分隔符对字符串容器中的每个子串进行连接,返回一个长字符串
str_1='上海-长宁区 | 3-4年经验 | 本科'
print('拆分',str_1.split('|'))
list_1=str_1.split('|')
print(list_1)
print('城市:',list_1[0].split('-')[0])

strip 去除字符串两端的特殊字符

print('              Hello        World     '.strip())
# 中间不处理
print('              Hello        World     '.strip().replace('  ',' '))#超过一个以上的空格替换成一个空格
# 无法简单处理得比较完善,后续会用正则表达式进行处理

日期和时间的操作

import time
print('当前时间(时间戳):',time.time())# 返回当前时间到1970.01.01 00:00:00 的时间长度
print('当前时间(结构体时间)',time.localtime())#由很多个时间单元构成的而对象
# 结构体时间,包含很多时间单元
print('日期时间字符串',time.asctime(time.localtime()))# 将结构体时间转换为西方文化习惯的日期时间字符串
# 年 - 月 - 日 时 : 分 : 秒
print(' 年 - 月 - 日 时, : 分 : 秒:',(time.strftime('%Y-%m-%d %H:%M:%S %A',time.localtime())))
print('将日期时间字符串转换为日期时间对象:', time.strptime('2022/11/11', '%Y/%m/%d'))
# 2.datetime模块 https://docs.python.org/zh-cn/3.7/library/datetime.html
import datetime
print('当前日期时间',datetime.datetime.now())
d_mow=datetime.datetime.now()#获取当前时间
a = d_mow.year#获取当前年
b= d_mow.month#当前月
c=d_mow.weekday()#返回周几  但是返回的是一个数==》目的是:为了和索引对引起来  从0 开始  周一开始计算
d=d_mow.isoweekday()  #  iso 国际标准换算啊
print(a,'\n',b,'\n',c,'\n',d)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值