python基础语法与基础爬虫整理——python基础语法Ⅰ

python基础语法与基础爬虫整理

刚刚学了点基础语法和爬虫入门,打算整理一下!其实之前也整理过,只是太乱了想重新弄。比较简单,我也会通俗易懂的语言来说明(主要是我讲不出什么高大上的话!!本身语文也很差(ಥ﹏ಥ))

基础语法,总共有13块知识点。最主要是为后边的基础爬虫作个准备工作,每一个知识点中间可能会掺杂点其他的语法,希望对你有帮助(#.#)

基础爬虫当然就是最基础的爬虫。大概就是些BeautifulSoup、json、selenium、scrapy啥的,还会有一些实操内容,比如爬取网页信息并储存、一些模块的使用、制作 My图灵机器人 和 My翻译机 等等~
还有还有,这里只是个vegetable的女生,说不出什么高大上的东西鸭 ┭┮﹏┭┮
我用的是python 3.7,下载后也会自动下载集成开发环境IDLE,也可以在此编写代码。当然我用的是pycharm,可以去官网下载。


这里是:Python基础基础Ⅱ
这里是:Python爬虫基础Ⅰ

有俩在线编程的网站:
Python在线工具 | 菜鸟工具
Online Python Compiler






基础语法部分Ⅰ

其实很多都可以百度到,比起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程序中,整数的表示方法和数学上的写法一模一样,例如:1100-80800等等。

(2) 浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。浮点数可以用数学写法,如1.233.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) 布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布尔值(注意大小写),也可以通过布尔运算计算出来。

bool值之间的运算

布尔值可以用andornotinnot in运算。

and运算是与运算,只有所有都为 True,and运算结果才是 True。

print(1 and 0)结果是False

or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。

not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。

innot 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的小区别

  1. dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
  2. 不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
  3. dict内元素无序,list内元素有序。两个list即使元素相同但排序不同,也是两个不同的list。
  4. 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.0
num = 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


————————每个人都在抱怨生活不易,可是都在默默为生活打拼————————

发布了16 篇原创文章 · 获赞 113 · 访问量 4897

猜你喜欢

转载自blog.csdn.net/qq_43280818/article/details/95948542