Python

Python

一、 内置函数(bif)

在shell中查看python中的内置函数:

dir(__bulitins__)

完全由小写字母组成的为bif

查看用途:help()

二、字符串

1.拼接

字符串首尾拼接

![](C:\Users\H2745\Desktop\笔记\Python\屏幕截图 2025-04-22 202008.png)

2.转义字符\

2.1在字符串中使用单引号或双引号

例如打印Let's go!

使用转义字符,反斜杠

‘Let\’s go!'

3.原始字符串

打印含有反斜杠\的字符串

3.1

用反斜杠\转义反斜杠自身

print('C:\\now')

3.2

当需要在字符串中打印多个反斜杠时,利用原始字符串,在字符串前加一个小写英文字母r

str=r'C:\now'

但反斜杠不能放在字符串的结尾

4.打印多行字符串

4.1

使用转义字符\n

4.2

用三对双引号包围字符串

三、python的数值类型

主要包括整型、布尔类型、浮点型

e记法:即科学计数法的另一种表示形式(使用e记法的数都是浮点数类型)

例:1.5*10^11在python中表示为1.5e11

2.5*10^-7在python中表示为2.5e-27

1.布尔类型

在布尔值True和False参与运算时,将True看作1,False看作0(尽量不要应用)

2.类型转换

转换为整数类型:int()(取小数的整数部分)

转换为字符串类型:str()

转换为浮点数类型:float()

type():查看数据类型

四、算数运算符

+-* /

%:取余,结果为两数相除后的余数

**:幂运算操作符

例:3**6表示三的六次方

对于幂运算符与-的优先级:若出现在幂运算符左侧,-优先级更低,若出现在幂运算符右侧,-优先级更高

例如输入-3**2时,输出-9

输入3**-2时,输出0.111111111

//:取整,两数相除后的整数

五、比较操作符

< < = > >= == !=

输出布尔值True或False

六、逻辑操作符

1.二元操作符

or:至少有一边为真,则结果为真,都为假则为假

and:只有当两边都为真时,结果才为真,其余为假

2.一元操作符

not:将原本操作数将输出的布尔值取反

七、运算中的优先级问题

一般情况下,幂运算>正负号>算术操作符>比较操作符>逻辑运算符

对于幂运算符与-的优先级:若出现在幂运算符左侧,-优先级更低,若出现在幂运算符右侧,-优先级更高

逻辑运算符中的优先级:not>and>or

八、分支和循环

if elif else

break:跳出当前循环,退出程序

assert:断言,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常

例:assert 3>4

可以利用这一功能,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,就使用assert关键字

1.while循环

与if分支功能类似,但只要条件为真,就会不停地执行这段代码,一直循环,其中,循环的这段代码

被称之为循环体

2.for循环

格式如下:

for 目标 in 表达式:

​ 循环体

其中,表达式一般为列表、元组、字符串

3.range()

表示整数

当括号中只有一个整数时,表示从0到当前整数分别循环

![](C:\Users\H2745\Desktop\笔记\Python\屏幕截图 2025-04-23 222030.png)

当括号中有两个整数时,左闭右开

![](C:\Users\H2745\Desktop\笔记\Python\屏幕截图 2025-04-23 222135.png)

step:步径,表示每一次递增的数是多少

![](C:\Users\H2745\Desktop\笔记\Python\屏幕截图 2025-04-23 222203.png)

break:跳出循环体,终止当前循环

continue:终止本轮循环,开启下一轮循环,但在开启下一轮循环前,会先判断是否符合条件,若不符合,则会退出循环

九、列表

1.创建一个列表

member=[a,b,c]

2.向列表添加元素

2.1append()

member.append(d)

print(member)

输出为[a,b,c,d]

print(len(member))

输出为4

2.2extend()

用一个列表扩展另一个列表

member.extend( [e,f])

输出为[a,b,c,d,e,f]

2.3insert()

选定任意位置插入元素,顺序索引都是从0开始

3.从列表中获取元素

可以通过元素的索引值index(),输入元素,返回索引值,其中,列表索引值是从0开始的

4.从列表删除元素

4.1remove()

member.remove(f)

输出为[a,b,c,d,e]

4.2del

del为语句,不是函数

del member[0]

输出为[b,c,d,e]

4.3pop()

将指定的元素从列表中删除

5.列表切片

利用索引值可以获得一个元素,切片可以一次性获取多个元素

例member[1:3]

结果为[c,d]

左闭右开,原列表没有变化

若没有前面的索引值,则从0开始,若没有后面的索引值,则到最后一个元素,若冒号两侧都没有索引值,则可以得到源列表的拷贝

6.列表操作符

6.1比较操作符

当列表中有一个元素时,直接比较这个元素的大小

当列表中有多个元素时,只比较第0个元素的大小,第0个元素大则列表大

字符串比较ASCII码的大小

6.2逻辑操作符

6.3连接操作符

+:将列表前后拼接

6.4 重复操作符

*:将列表复制n次

list3[123,456]

print(list3*3)

结果为[123,456,123,456,123,456]

6.5成员关系操作符

123 in list3

结果为True

123 not in list3

结果为False

若列表里含有另一个列表,不能判断最底层元素是否在列表里

例:list5=[123,[456,789],456]

789 in list5

结果为False

789 in list5[1]

结果为True

7.列表类型的内置函数(vif)

查看列表中的所有内置函数dir(list)

7.1reverse()

翻转列表

例:list1=[123,456]

print(list.reverse())

结果为[456,123]

7.2count()

计算它的参数在列表中出现的次数

例:list1=[123,456]

list2=list1*15

list2.count(123)

结果为15

7.3index()

索引,返回参数在列表中的位置

例:print2=[123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456, 123, 456]
list3.index(123)

结果为0

还可以在指定范围内查找

例:list2.index(123,3,6)

结果为4

7.4sort()

对指定列表进行排序,默认为从小到大

十、元组(tuple)

元组是不可改变的类型,不可修改

1.创建元组

大部分使用小括号,也可以用中括号

2.元组的标志,

当想要创建一个空元组时,可以直接用一组小括号,但当里面至少有一个元素时,就要加上逗号

十一、字符串

1.字符串的格式化

1.1用format作位置参数

print("{a} love {b}.{c}".format("I","FishC","com"))

结果为’I love FishC.com‘

1.2用format作关键字参数

print("{a} love {b}.{c}".format(a="I",b="FishC",c="com"))

如果综合使用位置参数和关键字参数,位置参数必须在关键字参数之前

![](C:\Users\H2745\Desktop\笔记\Python\屏幕截图 2025-04-26 204631.png)

十二、函数

1.创建函数

def 函数名()

需要执行的语句

2.执行函数

函数名()

def add(num1,num2):

eturn (num1+num2)

3.形参与实参

4.函数与过程

函数有返回值,过程没有返回值

5.全局变量与局部变量

5.1全局变量与局部变量

全局变量的作用域是整个文件的代码段,在函数内部只可以访问全局变量,如果试图修改,就会启用屏蔽机制

屏蔽:(保护全局变量)当对全局变量进行修改时,会自动先创建一个与当前全局变量名相同的局部变量再进行修改

5.2global关键字

将局部变量变成全局变量

global a

6.内嵌函数和闭包

6.1global关键字

将局部变量变成全局变量

global a

6.2闭包

如果在一个函数内部定义了另一个函数,并且内部函数引用了外部函数的变量,这个内部函数就是一个闭包了

7.lambda 表达式

省下定义函数的过程,使代码更加精简

正常定义函数:

def ds(x):

return2*x+1

使用lambda表达式:

lambda x:2*x+1

7.1filter()

过滤器函数,把所有非true的内容过滤掉

7.2map()

将函数应用于可迭代对象的每一个元素,并返回一个迭代器

8.递归

在函数内部调用该函数

十三.字典

字典的元素采用键:值的形式,其中,键可以是整型,变量,字符串等,键可以代替索引

字典中没有顺序

1.字典的创建

dict1={1:'one',2:'two',3:'three'}

1.1dict()

工厂函数(类型),可以用于字典的创建,传入一个可迭代对象时,输出一个字典

fruits = dict([('apple', 2), ('banana', 3), ('orange', 4)])

print(fruits)

结果为{'apple': 2, 'banana': 3, 'orange': 4}

1.2fromkeys()

从序列键和值设置新的字典

dict1={}

dict1.fromkeys((1,2,3),none)

输出为{(1:none),(2:none),(3:none)}

1.3copy()

前拷贝,复制前变量的内容

与赋值的区别:赋值的两个变量的内容相同,在前一个变量改变时,后一个变量也跟着改变

前拷贝则只与最开始的变量内容相同,不会跟着前变量的改变而改变

2.字典的内置方法

2.1pop()

给定键弹出对应的值

2.2popitem()

得到字典中的一项

2.3setdefault()

与get方法类似,在原本的字典中添加新的项

2.4update()

用另一个字典对原字典进行更新,在原本的字典中加入新字典的项

十四、集合

set

字典与集合的区别:字典的特征为映射关系,如果用一个花括号包围一些元素,没有体现映射关系,则将其默认为集合

集合的特征为互异性,即不能在集合中出现相同的元素

集合没有顺序,也不支持索引。

1.集合的内置方法

1.1in/not in

在集合中,可以使用in和not in判断一个元素是否在集合中

1.2add/remove

add和remove内置方法可以用于在集合中添加或删除元素

2.不可变集合

frozen set

当使用frozen这个内置方法创建集合后,这个集合无法添加或删除元素,也无法修改

十五、文件

1.文件的打开方式

![](C:\Users\H2745\Desktop\笔记\Python\屏幕截图 2025-05-10 200054.png)

2.文件对象方法

2.1f.close()

当完成写入文件操作时,需要关闭文件,否则写入的内容有可能丢失

2.2f.read(size=-1)

从文件读取size个字符,当为给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回

2.3f.readline()

以写入模式打开,如果文件存在,则在末尾追加写入

2.4f.write(str)

将字符串str写入文件

2.5f.writelines(seq)

向文件中写入字符串序列seq,seq应该是一个返回字符串的可迭代对象

2.6f.seek(offset,from)

在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节

2.7f.tell()

返回当前在文件中的位置

3.文件系统

3.1模块

模块是一个包含所有你定义的函数和变量的文件,其后缀名为.py。模块可以被别的程序引入,以使用该模块中的函数等功能

OS:操作系统

有了OS模块,我们不需要关心什么操作系统使用什么模块,OS模块可以帮我们选择正确的模块并使用

3.2os模块中关于文件/目录的常用函数

getcwd() :返回当前工作目录

chdir(path):改变工作目录

listdir(path='.'):列举指定目录中的文件名(‘.’表示当前目录,'..'表示上一级目录)

mkdir(path):创建单层目录,如该目录已存在抛出异常

makedirs(path):递归创建多层目录,如该目录已存在抛出异常,注意:‘E:\\a\\b’和'E:\\a\\c'并不会冲突

remove(path):删除文件

rmdir(path):删除单层目录,如该目录非空则抛出异常

remopvedirs(path):递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常

rename(old,new):将文件old重命名为new

system(command):运行系统的shell命令

os.curdir:指代当前目录('.')

os.pardir:指代上一级目录('..')

os.sep:输出操作系统特定的路径分隔符(Win下为'\\',Linux下为'/')

os.linesep:当前平台使用的行终止符(Win下为'\r\n',Linux下为'\n'

os.name:指代当前使用的操作系统(包括:‘posix’,'nt','mac','os2','ce','java')

十六、异常处理

try:

​ 检测范围

except Exception[as reason]:

​ 出现异常(Exception)后的处理代码

十七、类和对象

1.封装

把数据存储在列表中,用函数书写语句,都是封装

把数据和代码都封装,对象=属性+方法,属性是静态的特征,而方法是动态的

类(class)是对对象的大致描述,第一个字母用大写

容器:数据的封装

函数:语句的封装

类:方法和属性的封装

2.面向对象(OO)的特征

OO是面向对象的缩写,OOP为面向对象编程

2.1封装

一种信息隐蔽技术,使信息更加安全

2.2继承

继承是子类自动共享父类之间数据和方法的机制

class DerivedClassName(BaseClassName):

其中:括号外的是继承者即子类,括号内的为被继承者(基类、父类或超类)

如果子类中定义与父类同名的方法或属性,则会自动覆盖父类对应的方法或属性

2.3多态

不同对象对同一方法响应对象的行动

3.self

3.模块

模块就是程序

在另一个文件调用这个函数时,使用import

命名空间:在程序中使用其他程序中

十八、爬虫

1.url

url:网页地址,由三部分组成

1.1协议

http,https,ftp,file,ed2k

1.2服务器域名或ip地址(有时候要包含端口号)

每个协议都有对应的端口号,如http的默认端口为80

1.3资源的具体地址

目录或文件名等

2.urllib

python中的urllib库主要用于网页操作url,并对网页内容进行抓取和处理

urlopen():打开并读取网页

import urlib.request

response=urllib.rrequest.urlopen('http://www.fishc.com')

html=response.read()

print(html)

输出的结果为一个二进制字符串

使用encode()函数,将字符串(str)转换成指定编码格式的字节序列

decode()函数:将字节类型转变为字符串类型

2.1urllib.request

打开和读取URL

2.2urllib.error

包含 urllib.request 抛出的异常

2.3urllib.pase

解析 URL

2.4urllib.rebotparser

解析 robots.txt 文件

3.隐藏(修改headers)

有些网站会识别到python并拦截,因此需要模拟浏览器或普通用户对网站进行访问

3.1通过request的headers参数修改

直接设置一个字典作为参数传给request

3.2通过request.add_header()

在request生成之后,通过调用add_header把它加进去

posted @ 2025-05-23 20:45  KXKX77  阅读(15)  评论(0)    收藏  举报