目录
写在前面
为什么要把数据类型作为理论系列第一章呢?其实呢我们使用爬虫得到的数据需要处理,比如字符串,字典,列表,元组,我们爬取的数据就是这些类型,如何操作数据成为我们想要的.就需要熟练掌握这些数据类型的API,就像spider实战系列爬取一人之下那一文中Spider实战系列-抓取《一人之下第三季》_浅辄的技术博客_51CTO博客里的密钥解密那一部分,就使用了字符串替换.我个人是学Java出身的,因为Java是驼峰命名,而且还是个强类型语言,但python就不一样,定义一个变量就能使用,哈,其实有时候还是挺不方便的.
所以,爬虫要想学好,下面的数据类型操作要熟练使用.
数据类型
一.基础数据类型
- int
#int:整数,加减乘除,大小比较
a=10
- float
#float:小数
a=10.5
print(a)
print(10/3) #小数:数据范围是无限的。整数:在某一个特定的区间内是可以表示的很清楚的
#1~100000000
#0~1
#计算机是一个二进制的产品:0,1
#计算机表示一个小数是会有误差的,
- boolean
#bool:用来做条件判断的
# 取值范围:True,False
#基础数据类型之间的转化
a ='10'
print(type(a))
b=int(a)#把字符串转化成int()
print(type(b))
a=10 #在python中,所有的非零的数字都是True,零是Fasle
b=bool(a)
print(type(b))
print(b)
while 1: #死循环,恒为真
print("给我钱")
s = ""#在python中,所有的非空字符串都是True,空字符串是False
print(bool(s))
#综上,在pythont中,表示空的东西都是False,不空的东西都是True
二.字符串
1.字符串格式化
字符串的格式化问题
#我叫xxx,我住在xxx,我几年xxx岁,我喜欢xxx
name = input("输入你的名字:")
address = input("输入你的地址:")
age = int(input("输入你的年龄:"))
hobby = input("输入你的爱好:")
# %s字符串占位
# %d占位整数
# %f占位小数
s = "我叫%s,我住在%s,我几年%d岁,我喜欢%s" % (name,address,age,hobby)
s1 = "我叫{},我住在{},我几年{},我喜欢{}".format(name,address,age,hobby)
s2 = f"我叫{name},我住在{address},我几年{age},我喜欢{hobby}"# f-string
print(s)
2.索引和切片
# 索引和切片
# 索引:按照位置提取元素
s = "我叫Lee"
# 可以采用索引的方式来提取某一个字符(文字)
print(s[2]) # 程序员都是从0开始数数
print(s[-1]) # -表示倒数
# 切片:从一个字符串中提取一部分内容
s = "我是Lee,你是小黄么"
print(s[3:6]) # 从索引3位置进行切片,切到6结束 坑:切片拿不到第二个位置的元素
# 语法:s[start:end]从start到end进行切片,但是取不到end[start,end)
print(s[0:6])
print(s[:6]) # 如果start是从开头进行切片,可以省略
print(s[6:]) # 从start开始一直截取到末尾
# : 如果左右两端有空白,表示开头或者结尾
print(s[:])
print(s[-3:-1]) # 目前还是只能从左往右切片
print(s[-1:-3]) # 没结果,这是个坑!!!
s = "我爱你"
# 可以给切片添加步长来控制切片的方向
print(s[::-1]) # 一表示从右往左
# 语法:s[start:end:step]从start切到end,每step个元素选出来一个元素
s="abcdefghijklmnopq"
print(s[3:8:2])
print(s[-1:-10:-3])
3.常用操作
# 字符串常用操作
# 字符串的操作一般不会对原字符串产生影响,一般是返回一个新的字符串
# 3.1字符串大小写转换
s = "python"
s1 = s.capitalize()
print(s1)
s = "I have a dream!"
s1 = s.title() # 单词的首字母大写
print(s1)
s = "I HAVE A DREAM"
s1 = s.lower() # 变成小写字母
print(s1)
s = "i have a dream"
s1 = s.upper() # 把所有字母变成大写字母
print(s1)
# 如何忽略大小写来进行判断 => upper()
verify_code = "xAd1"
user_input = input(f"请输入验证码({verify_code}):")
if verify_code.upper() ==