python基础语法与基础爬虫整理——python基础语法Ⅰ
python基础语法与基础爬虫整理
刚刚学了点基础语法和爬虫入门,打算整理一下,会通俗易懂的语言来说明
基础语法,总共有13块知识点。最主要是为后边的基础爬虫作个准备工作,每一个知识点中间可能会掺杂点其他的语法,希望对你有帮助(#.#)
基础爬虫当然就是最基础的爬虫。大概就是些BeautifulSoup、json、selenium、scrapy啥的,还会有一些实操内容,比如爬取网页信息并储存、一些模块的使用、制作图灵机器人 和 翻译机 等等~
我用的是python 3.7,下载后也会自动下载集成开发环境IDLE,也可以在此编写代码。当用pycharm有更多的功能,可以去官网下载。
这里是:Python基础基础Ⅱ
这里是:Python爬虫基础Ⅰ
有俩在线编程的网站:
Python在线工具 | 菜鸟工具
Online Python Compiler
文章目录
- python基础语法与基础爬虫整理
- 基础语法部分Ⅰ
- 一、算术运算符
- 二、print()函数
- 三、基本数据类型
- (1) 整数
- (2) 浮点数
- (3) 字符串
- (4) 布尔值
- bool值之间的运算
- (5) 空值
- (6) 列表*
- 1. 列表的创建
- 2. len()获取列表元素的个数
- 3. 按照索引访问列表
- 4. 添加新元素的两种方法
- 5. 删除元素的两种方法
- 6. 替换元素
- 7. 列表的切片——列表的列表
- 8. 对字符串切片
- 9. 列表合并
- 10. 列表元素排序
- (7) 字典*
- 1. 什么是字典
- 2. len()获取字典元素的个数
- 3. 访问元素
- 4. 改变/增加dict中元素
- 5. 删除元素的两种方法
- * list和dict的小区别
- (8) 集合
- 1. 创建set
- 2. 访问set / in、not in
- 3. 增加/删除元素
- (9) 元组
- 1. 创建tuple
- 2. tuple的特点
- 四、查询数据类型:type()
- 五、数据类型转换:float()、int()、str()
- 六、input()函数
基础语法部分Ⅰ
其实很多都可以百度到,比起c++,真是“人生苦短,我用python”。
python里所有符号都是用的英文半角!
一、算术运算符
| 运算符 | 表示 | 例子 |
|---|---|---|
| + | 加 | 2+1 输出结果 3 |
| - | 减 | 1-2 输出结果 -1 |
| * | 乘 | 1*2 输出结果 2 |
| / | 除 | 1/2 输出结果 0.5 |
| % | 取模x%y–返回余数 | 5%2 输出结果 1 |
| ** | 幂x**y–返回x的y次幂 | 2**3 为2的3次方,输出结果 8 |
| // | 取整除–返回商的整数部分 | 11//2 输出结果 5 11.0//2.0 输出结果 5.0 |
二、print()函数
最简单的了,就是在终端print(打印)出括号里的。
用法:print('hello,world!'),运行后终端会显示引号内的内容。
(格式控制在后边讲)
三、基本数据类型
(1) 整数
Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0等等。
(2) 浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
(3) 字符串
字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。
(4) 布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(注意大小写),也可以通过布尔运算计算出来。
bool值之间的运算
布尔值可以用and、or、not、in、not in运算。
and运算是与运算,只有所有都为 True,and运算结果才是 True。
如print(1 and 0)结果是False
or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。
not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
(in和not in在后边 set 那里会讲到)
(5) 空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
(6) 列表*
1. 列表的创建
Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据。
>>> list1 = [1, 1, 2.0, '3'] #直接用中括号括起来,列表里每个元素用','分隔
>>> print(type(list1))
<class 'list'>
>>> print(list1)
[1, 1, 2.0, '3']
2. len()获取列表元素的个数
>>> list1 = [1, 1, 2.0, '3']
>>> print(len(list1))
4
3. 按照索引访问列表
索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。
而索引 -1、-2则表示倒数第1个、第2个元素,以此类推。
使用倒序索引时,也要注意不要越界,否则会报错。
>>> list1 = [1, 1, 2.0, '3']
>>> print(list1[0],list1[1]) #输出list1中前两个元素,中间用一个空格分隔
1 1
4. 添加新元素的两种方法
第一个方法是用 list 的append()方法,把新元素追加到 list 的末尾:
>>> list1 = [1, 1, 2.0, '3']
>>> list1.append(0)
>>> print(list1)
[1, 1, 2.0, '3', 0]
第二个方法是用list的insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素:
>>> list1 = [1, 1, 2.0, '3']
>>> list1.insert(1,'0') #在索引为1的位置插入'0'
>>> print(list1)
[1, '0', 1, 2.0, '3']
5. 删除元素的两种方法
第一个方法是del 列表名[元素的索引] 可以删除列表中的元素
>>> list1 = [1, 1, 2.0, '3']
>>> del list1[2]
>>> print(list1)
[1, 1, '3']
第二个方法是pop()方法,总是删掉list的最后一个元素,并且它还返回这个元素。
>>> list1 = [1, 1, 2.0, '3']
>>> element = list1.pop()
>>> print(element)
3
>>> print(list1)
[1, 1, 2.0]
6. 替换元素
直接赋值即可,如list1[1] = 5,是把list里第1个(索引为1)元素替换成5,注意下标不要越界。
7. 列表的切片——列表的列表
“:”切片很方便,左右空取到头,左取右不取,用法如下:
>>> list1 = [1, 1, 2.0, '3']
>>> list2 = list1[:] #左右空取到头,即整个列表
>>> list3 = list1[:2] #左空取到头,第0个;右不取,取到第1个;即第0个到第1个元素组成的列表
>>> list4 = list1[-3:-1] #左取右不取,即倒数第3个元素到倒数第2个元素组成的列表
>>> print(list2)
[1, 1, 2.0, '3']
>>> print(list3)
[1, 1]
>>> print(list4)
[1, 2.0]
8. 对字符串切片
字符串也可以看成一种list,list中的每个元素就是一个字符:
>>> 'ABCDEFG'[:3]
'ABC'
>>> string = 'ABCDEFG'[-3:]
>>> print(type(string),string)
<class 'str'> 'EFG'
9. 列表合并
列表合并直接相加'+'就行。
>>> list1 = [1,2,3]
>>> list2 = ['1','2','3']
>>> list12 = list1 + list2
>>> print(list12)
[1, 2, 3, '1', '2', '3']
10. 列表元素排序
( 好吧原谅我懒了♪(∇*) )点击这里查看。
(7) 字典*
1. 什么是字典
通常用来表示两类有一一对应关系的数据。
花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
>>> dict1 = {1: 'one', 2: 'two', 3: 'three'}
>>> print(type(dict1))
<class 'dict'>
注意:在一个dict中,key不能重复,key也不可变,如key不能为一个列表(因为list是可变的)。且dict的储存是无序的。
2. len()获取字典元素的个数
>>> dict1 = {1: 'one', 2: 'two', 3: 'three'}
>>> print(len(dict1))
3
3. 访问元素
可以简单地使用 dict[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:
>>> dict1 = {1: 'one', 2: 'two', 3: 'three'}
>>> print(dict1[2]) #访问键值为2的对应的value值
two
注意:通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。
要避免 KeyError 发生,有两个办法:
一是先判断一下 key 是否存在,用 in 操作符:
>>> dict1 = {1: 'one', 2: 'two', 3: 'three'}
>>> if 1 in dict1:
... print(dict1[1])
one
二是使用dict本身提供的一个 get() 方法,在Key不存在的时候,返回None:
>>> dict1 = {1: 'one', 2: 'two', 3: 'three'}
>>> print(dict1.get(7))
None
4. 改变/增加dict中元素
我们可以通过dict[key] = xxx而更新dict,若key已经在dict中,则对应value变为xxx;否则,就新增这一个键值对元素。
>>> dict1 = {1: 'one', 2: 'two', 3: 'three'}
>>> dict1[3] = 'san'
>>> print(dict1)
{1: 'one', 2: 'two', 3: 'san'}
>>> dict1[4] = 'four'
>>> print(dict1)
{1: 'one', 2: 'two', 3: 'san', 4: 'four'}
5. 删除元素的两种方法
第一种是pop(key)方法,删除key键值对,返回值是对应的value。如果key不存在会报错。
>>> dict1 = {1: 'one', 2: 'two', 3: 'san', 4: 'four'}
>>> k_v = dict1.pop(3)
>>> print(k_v,dict1)
san {1: 'one', 2: 'two', 4: 'four'}
>>> dict1.pop(3)
KeyError: 3
第二种方法是del [dict[key]], 删除给定key的元素。如果key不存在也会报错。
>>> dict1 = {1: 'one', 2: 'two', 3: 'three'}
>>> del dict1[3]
>>> print(dict1)
{1: 'one', 2: 'two'}
* list和dict的小区别
- dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
- 不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
- dict内元素无序,list内元素有序。两个list即使元素相同但排序不同,也是两个不同的list。
- dict作为key的元素必须不可变。但是list是可变的,就不能作为key。
(8) 集合
1. 创建set
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像,与dict唯一的区别就是不存储value。创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:
>>> list1 = [1, 1, 2.0, '3']
>>> set1 = set(list1)
>>> print(type(set1))
<class 'set'>
>>> print(set1) #自动去重
{1, 2.0, '3'}
2. 访问set / in、not in
由于set存储的是无序集合,所以我们没法通过索引来访问。但可以用in语法来判断某个元素是否在set中。
>>> list1 = [1, 1, 2.0, '3']
>>> set1 = set(list1)
>>> '3' in set1
True
>>> '1' in set1
False
not in用法一样,也可以用在list和dict中。
3. 增加/删除元素
增加新元素,用add()方法:
>>> list1 = [1, 1, 2.0, '3']
>>> set1 = set(list1)
>>> set1.add('one')
>>> set1.add(1) #若元素已经在set中,不会被加进去
>>> print(set1)
{1, 2.0, 'one', '3'}
删除元素,用remove()方法,用之前要判断元素是否存在set中:
>>> list1 = [1, 1, 2.0, '3']
>>> set1 = set(list1)
>>> set1.remove(1)
>>> print(set1)
{2.0, '3'}
>>> set1.remove(1) #删除不存在元素,会报错
KeyError: 1
(9) 元组
1. 创建tuple
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。创建tuple和创建list唯一不同之处是用( )替代了[ ]。
>>> tuple1 = (1, 1, 2.0, '3')
>>> print(type(tuple1),tuple1)
<class 'tuple'> (1, 1, 2.0, '3')
2. tuple的特点
由于tuple一旦创建不可修改,它没有 append()方法,也没有insert()和pop()方法。
获取 tuple 元素的方式和 list 是一模一样的,我们可以正常使用 t[0],t[-1]等索引方式访问元素,但是不能赋值成别的元素,不然会报错。
>>> tuple1 = (1, 1, 2.0, '3')
>>> tuple1[0] = 0
TypeError: 'tuple' object does not support item assignment
注意:如果要创建单元素tuple如(1,),元素后的','不能漏掉,不然会被Python解释器优先解释为是元素 1 ,加了','可以避免歧义。
四、查询数据类型:type()
用法:type(【查询的内容】),如:
>>> print(type('hello,world'))
<class 'str'> #字符串类型
>>> print(type(3))
<class 'int'> #整型
五、数据类型转换:float()、int()、str()
| 类型转换函数 | 说明 | 注及示例 |
|---|---|---|
| str() | 将其他数据类型转成字符串 | 注:也可以用引号转换str(7),把整形7转换为字符串 |
| int() | 将其他数据类型转成整数 | 注:1.文字和小数类字符串,无法转化成整数 2.浮点数转化成整数:去掉小数取整 num = int(7.7),num为7 |
| float() | 将其他数据类型转成浮点数 | 注:文字类型字符串无法转成浮点数num = float(1),打印num结果为1.0num = float('7.7'),打印num结果为7.7 |
六、input()函数
看名字就知道用来干嘛,input()函数可以接收在终端输入的数据,返回类型为字符串,可将函数结果赋值。input('提示信息:')可以给输入者以输入的提示信息。用法示例:
>>> x = input()
>? 1.0
>>> print(x)
1.0
>>> print(type(x)) #返回类型为字符串类型
<class 'str'>
>>> x = input('请输入:')
请输入:
>? python
>>> print(x)
python
————————每个人都在抱怨生活不易,可是都在默默为生活打拼————————
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
