【Python爬虫开发基础①】Python基础(变量及其命名规范)

由于本专栏的文章偏向于爬虫,所以对于python的介绍不可能面面俱到,在这里只讲重点。
如果大家觉得有没讲到的地方,欢迎补充~



1 python变量类型及其详解

变量是每一门编程语言必不可少的,相较于C语言或者Java,python的变量定义比较简单,不需要在变量名前面事先声明变量的类型,只需要写出 变量名=变量值 即可,python解释器会自动识别并将变量名设定为该变量类型。

每一门语言中都有不同类型的变量,python也不例外,提供了6种数据类型,分别是数字(Number)、字符串(String)、列表(List)、元组(Tuple)、集合(Set)、字典(Dictionary),下面来详细的介绍一下:

1.1 数字

它支持4种类型,分别是整数、浮点数、复数、布尔类型

  • 整数的定义非常简单,相当于C语言的int类型,定义方法如下:
a = 10	# 定义了一个整型变量a,其值为10
  • 浮点数也就是小数,但是与C或者Java不一样,python不需要事先说明是长整形还是短整型,定义方法如下
b = 3.1415926
  • 复数用的比较少,它分为实部和虚部,在python中,实部用数字表示,虚部用数字+j来表示,定义方法如下:
c = 3+4j	# 定义了一个复数c,实部为3,虚部为4
  • 布尔类型用来判断真假,只有True、False两个取值,定义方法如下:
d = True	# 定义了一个布尔类型的变量d,取值为“真”

1.2 序列

1.2.1 字符串

字符串在python中是比较方便定义和使用的,它是描述文本的一种数据类型,可以由任意数量的字符组成。其定义和使用需要遵循以下规则:

  • 在python的字符串中,可以使用单引号或双引号来定义。例如:
str1 = 'I am a student.'
str2 = "I am a student too."
  • 如果一个字符串包含一个单引号,应该使用双引号来定义,例如:
str3 = "It's a big city!"
  • 当一个字符串包含双引号时,要使用单引号来定义,例如:
str4 = 'When I was doing homework, "I love you!", she said.'
  • 反斜杠(\)在python字符串中表示“转义字符”,例如:
str5 = 'It\'s a big city!'	# 输出It's a big city!
  • 对于转义字符,也可以通过在第一个引号前添加字母r来使用原始字符串,例如:
str6 = r'D:\nBaiduNetdiskDownload'	# 输出D:\nBaiduNetdiskDownload
  • 多行字符串,也可以作为多行注释,使用三对单引号来创建
'''
这是一个多行字符串
这是一个多行字符串
'''

1.2.2 列表

其实,列表、元组、集合、字典,都是python的数据容器,下面来介绍其中之一——列表(List)
列表相当于C语言中的数组,是基于链表这个数据结构实现的,但是比它的定义要简单,而且python还提供了对列表对象的各种操作方法。python列表规范如下:

  • 列表内的每一个数据,称之为元素
  • 以 [] 作为标识
  • 列表内每一个元素之间用, 逗号隔开
  • 一个列表中,可定义单个、多个或者嵌套类型的数据

创建列表的方法也有很多,例如:

  • 直接在方括号内放入元素定义列表
list1 = [1, 2, 3, 4]
list2 = ['IT', 123, True]
list3 = [[1, 2, 3], [4, 5, 6]]
list4 = []	# 也可直接定义空链表

列表作为容器的一种,当然在应用方面有较多的需要,比如元素的选取方式,决定了代码的书写效率。所以python提供了多种多样的访问方式,后面的元组、集合、字典也不例外。

  • 首先,和C、Java一样,python当然也可以通过下标来访问,在这里就不多说了。其次,列表等容器在for循环中运用的比较广泛,使用方法如下:
list5 = [1, 2, 3, 4, 5, 6]
for num in list5:
	print(num)

1.2.3 元组

与列表不同,元组一经定义不可修改,但元组同列表一样,都是可以封装多个、不同类型的元素在内。所以,当我们需要在程序内封装数据,又不希望封装的数据被篡改,那么元组就非常合适了。
定义元组需用小括号,且使用逗号隔开各个数据,同时,数据可以是不同的数据类型。

  • 创建元组的方式也和列表类似:
t1 = (1, 2, 3, 4)
t2 = ('IT', 123, True)
t3 = ((1, 2, 3), (4, 5, 6))

python也对于元组提供了多个方法来实现相关的操作,比如index()用于查找某个数据,如果数据存在返回对应的下标,否则报错;count()用于统计某个数据在当前元组出现的次数;len()用于统计元组内的元素个数等。

1.2.4 序列的切片操作

首先,什么是序列?

序列是指内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以可以视为序列。

什么是切片呢?

切片是指从一个序列中,取出一个子序列

在python中,切片使用的语法是:序列[起始下标:结束下标:步长],表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列

切片操作需要注意的是:

  1. 起始下标表示从何处开始,可以留空,留空视作从头开始
  2. 结束下标不含)表示何处结束,可以留空,留空视作截取到结尾
  3. 步长表示,依次取元素的间隔

对于步长,有很多的编程技巧:

  • 步长1表示,一个个取元素
  • 步长2表示,每次跳过1个元素取
  • 步长N表示,每次跳过N-1个元素取
  • 步长为负数表示反向取(注意,起始下标和结束下标也要反向标记

序列切片操作的演示(正向操作):

my_list = [1, 2, 3, 4, 5]
new_list = my_list[1:4]	# 下标1开始,下标4(不含)结束,步长1
print(new_list)		# 结果:[2, 3, 4]

my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:]	# 从头开始,到最后结束,步长1
print(new_tuple)		# 结果:(1, 2, 3, 4, 5)

my_list = [1, 2, 3, 4, 5]
new_list = my_list[::2]		# 从头开始,到最后结束,步长2
print(new_list)		# 结果:[1, 3, 5]

my_str = "12345"
new_str = my_str[:4:2]	# 从头开始,到下标4(不含)结束,步长2
print(new_str)		# 结果:"13"

序列切片操作的演示(反向操作):

my_str = "12345"
new_str = my_str[::-1]	# 从头(最后)开始,到尾结束,步长-1(倒序)
print(new_str)		# 结果:"54321"

my_list = [1, 2, 3, 4, 5]
new_list = my_list[3:1:-1]	# 从下标3开始,到下标1(不含)结束,步长-1(倒序)
print(new_list)		# 结果:[4, 3]

my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:1:-2] 	# 从头(最后)开始,到下标1(不含)结束,步长-2(倒序)
print(new_tuple)		# 结果:(5, 3)

1.3 集合

与上面三个类似,集合也是python提供的一个数据容器,但是它有着特殊的功能,就是去重操作。无论是列表、元组还是字符串,都允许相同元素重复出现,但是对于集合,当要插入的元素在里面已经出现时,就不能重复插入了

集合可以使用大括号 { } 或者 set() 函数创建

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

  • 去重功能的展示:
s1 = {1, 2, 3, 4, 4, 3, 2, 1}
print(s1)		# {1, 2, 3, 4}
  • 集合存储元素是无序的:
a = set('abcdefg')
b = set('abc')
print(a)	# {'f', 'd', 'e', 'b', 'g', 'c', 'a'}
print(b)	# {'b', 'c', 'a'}
  • 集合之间可以进行一些集合操作,例如交并差补
print(a - b)	# {'d', 'g', 'f', 'e'}	
print(a ^ b)	# {'e', 'f', 'd', 'g'}
print(a & b)	# {'b', 'c', 'a'}
print(a | b)	# {'b', 'e', 'f', 'd', 'g', 'c', 'a'}

1.4 字典

在爬虫操作中,很多相应得到的响应体的部分都由字典组成,所以它在爬虫的开发中尤为重要。同时,它还可以与json对象相互转换,后面的文章会做专门的介绍。

字典与集合一样,都是用{}来表示,但是不同的是字典每个元素有两个值,中间用冒号隔开,前面的叫做key,后面的叫做value。语法如下:

  • 使用{ }存储原始,每一个元素是一个键值对
  • 每一个键值对包含Key和Value(用冒号分隔)
  • 键值对之间使用逗号分隔
  • Key和Value可以是任意类型的数据key不可为字典
  • Key不可重复,重复会对原有数据覆盖

字典的定义可以使用以下形式:

dict = {"nane": "张三", "age": 18, "sex": "男"}
dict1 = {}	# 定义了一个空字典

同时,字典还可以嵌套使用,但key不可以为字典类型,例如:

stuScore = {"张三" : {"语文" : 89, "数学" : 78, "英语" : 77}, "李四" : {"语文" : 69, "数学" : 94, "英语" : 79}}

当需要获取字典中的内容时,可以利用key中的值来取value,例如:

print(stuScore["张三"])	# {'语文': 89, '数学': 78, '英语': 77}

除此之外,还可以对字典进行增删改操作:

dict = {"nane": "张三", "age": 18, "sex": "男"}	# 定义了一个空字典
dict["score"] = 100	# 增加元素
del dict["name"]	# 删除元素
dict["name"]="老六"	# 修改元素

对于字典,python提供的操作有:

  • len(字典):用于返回字典中键值对个数
  • 字典.pop(Key):用于取出Key对应的Value并在字典内删除此Key的键值对
  • 字典.clear():清空字典
  • 字典.keys():获取字典的全部Key,可用于for循环遍历字典

其中的keys,values,items方法,可用于字典的遍历

# 1.使用keys
for i in dict.keys():
    print(i)
# 2.使用values
for i in dict.values():
    print(i)
# 3.使用items
for i in dict.items():
    print(i)
# 4.可使用items获取key和value
for key,value in dict.items():
    print(key,value)

1.5 数据容器的比较

列表元组字符串集合字典
元素类型任意任意仅字符任意Key除字典外任意, Value任意
下标索引支持支持支持不支持不支持
重复元素支持支持支持不支持不支持
可修改性支持不支持不支持支持支持
数据有序
使用场景可修改、可重复的一批数据记录不可修改、可重复的一批数据记录一串字符的记录不可重复的数据记录以Key检索Value的数据记录

2 python变量命名规范

首先,变量的命名规则与C、Java等语言一样:

  1. 只能由字母、数字、下划线组成
  2. 不能是数字开头,比如1s就是错误的变量名
  3. 不能是python内置关键字,比如forwhile
  4. 严格区分大小写,比如Stustu就不是一个变量

其次,变量的命名习惯一般都用小驼峰命名法,即除了第一个单词首字母小写,其余单词首字母大写,比如pageRank

最后,还要注意的一点是:变量的命名要见文知义,比如说姓名这个变量名就要写成name或者my_name等,如果写成a, b, c这种的就会影响项目的开发。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为梦而生~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值