1、定义:Python中有特殊含义的单词
2、限制:不允许将保留字用作变量、函数、类、模块和其他对象
若将保留字作为以上对象的名称,则会提示:invalid syntax
3、查看方式:输入以下语句可以查看Python中所有保留字
import keyword
keyword.kwlist
1、定义:用于标识变量、函数、类、模块和其他对象的名称
2、命名规则
以字母(A~Z\a ~ z)、下划线“_”、数字组成
不允许以数字开头
不能包含特殊字符,如#、@、¥等
不允许使用保留字
3、Python中以下划线开头有特殊含义,应避免使用相似的标识符
- 以单下划线开头的标识符:如_width,表示不能直接访问的类属性,即类的保护属性(protected),仅允许类本身、子类访问,也可以通过类的实例直接访问,但是不允许通过from XXX import 导入
- 以双下划线开头:如__add,表示类的私有(private)属性,仅允许定义该方法的类本身访问,也可以通过类的实例名.类名__add访问,但是不允许通过实例直接访问
补充示例
- 以双下划线开头的和结尾的是Python专用标识,指Python中默认方法,如__init__() 表示构造函数
4、Python中支持使用汉字作为标识符,但不建议使用
▶变量
含义:将值存储在变量中,不需要知道存储位置,仅知道名字即可,可以通过变量名称来进行使用
定义:在Python中,不需要声明变量类型;直接赋值就可以创建各个类型的变量(因为Python是一种动态类型的语言,即变量类型可以随时变化;)
命名规则:
- 必须是有效的标识符
- 不能使用保留字
- 尽量不使用小写字母I以及大写字母O
- 变量名最好是有意义的
赋值:使用“=”即可赋值,同时支持多个变量使用同一个值
注:使用内置函数`type()`可以返回变量类型;内置函数`id()`可以返回变量的内存地址
▶常量:Python中没有提供定义常量的保留字
命名:大写字母以及下划线组成
▶特点:python中数字是不可改变的数据类型。如果改变变量值,实际上改变的是变量指 向的地址。
例:
a = 3
print(id(a))
140711837356904
a = 4
print(id(a))
140711837356936
▶数字类型:整数、浮点数、复数
整数:包含正整数、负整数、0.
▷ 特点:位数任意,如果使用较大整数,则指定位数即可;如果超过计算机本身 的功能,自动转换为高精度。
▷ 类型:包含十六进制、八进制、十进制、二进制。
• 十六进制:由0~ 9 ,A~F组成。以0x或0X开头。
• 八进制:由0~7组成,以0o或0O开头(Python2.x,八进制允许以0开头)
• 十进制:当使用变量较大时,则在最后加入大写字母L或小写字母l标识; 不允许以0开头
• 二进制:由0、1组成
浮点数:
▷ 组成:由整数部分以及小数部分组成
▷ 表现形式:可以使用科学计数法表示。
复数:
▷ 组成:由实部、虚部(用字母j或大写字母J)组成
例:3.14+12.5j
▷定义:连续的字符序列,也是不可变序列(即更改变量的指向地址)
▷定界符:表示字符串的边界;支持使用单引号'asd'、双引号"asd"、三引号"""asd"""、''' asd''';其中单引号、双引号中的字符串必须要在一行,三引号支持多行。
▷转义字符:使用/反斜杠对一些特殊字符转义
▷r:以r开头的字符串,字符串中包含的转义字符不再进行转义。
▷标识符True、False的值被解释为布尔值。
▷可以转换成数值型使用,True=1、False=0,支持进行数值运算,但不建议进行运算
▷所有对象在Python中均可以进行真值测试,可以用于if/while语句判断,使用内置函数bool()可以判断对象的真假值。
● 真值测试:判断对象的真假值。
● 几乎所有对象都为真值,但有以下例外:
♢ None\False的值为假
♢ 0、0.0、以及虚数0
♢ 空字符串、空字典、空列表、空元组
bool(None)
False
bool(False)
False
bool(0)
False
bool(0.0)
False
list = []
bool(list)
False
lis = {}
bool(lis)
False
bool(a)
False
♢ 自定义的对象的实例,如果有__bool__()或__len__()任意一方法,则若两种方法返回值为False或0,则该实例的值也为假;若两种方法都有,则优先取__bool__()方法的值。
#例1 本类中没有两种方法,返回真
class T():
pass
a = T()
bool(a)
True
python是动态类型的语言(也可以称之为弱类型语言),但也支持类型转换,常用的内置类型转换函数如下:
内置函数 | 函数意义 |
int(X) | 将数值类型X转换为整数 |
str(x) | 将x转换为字符串 |
repr(x) | 将x转换为表达式字符串 |
eval(str) | 计算在字符串中有效Python表达式,并返回一个对象 |
ord(x) | 获取字母对应的ASCII值 |
chr(x) |
将数字转换成对应的ASCII的字母 |
# 获取对应字符的ASCII的值
ord('a')
97
# 将数字转换,在ASCII中的字母
chr(97)
'a'
错误集合:
1、如果Python提示Note: you may need to restart the kernel to use updated packages.
有两种情况
1.1缩进是错误的,应当缩进一个空格,或者两个,但是实际上缩进的数量与要求不一致
1.2空格与Tab混合使用,建议复制代码到notepad++上,进行校验
方法:视图-显示符号-显示所有字符,查看
3、Python文件的两种使用方法
3.1作为脚本直接执行
3.2作为模块到其他脚本中重用
4、`if __name__ = __main__` 的原理
最终效果:在执行当前文件下,`if __name__ = __main__`后面的代码会被执行,但是当前文件被引用到其他文件中,则不会执行后续代码
原因:__name__ 在当前文件下,值为当前文件名,但是在其他文件中引用的时候,__name__为模块名称;__main__的值为文件名称,当前文件执行的时候,if后面的判断为true,所以会执行后面的数据
但是其他文件执行的时候为false,不执行后续代码
###### 6、Python错误提示记录
6.1 Unexpected indent----意外缩进,情况1:多加了缩进,解决办法:去掉所有缩进
6.2 针对项目安装插件时提示:`No Python at 'D:\Python\python init\python.exe`
- 解决方案1:修改本项目下的设置,更改环境
![在这里插入图片描述](https://img-blog.csdnimg.cn/f86c9d76e7e1444cb9997a09a148bdfa.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/45208bd2ae724858b4314f86a5bf977e.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/4736617c7ec442e1afe1ed84b9be3120.png)
更换新的即可重新正常安装插件
###### 7、sys包的应用:
sys.qrgv函数:
作用:从程序外部获得参数(参数指的是什么?从哪里获取参数)
返回值:返回列表,列表内容为传递给Python脚本的命令行参数
常用:argv[0]一般是脚本的名称
###### 8、OS.path.basename()的用法
os:该模块提供一些与操作系统交互的函数,同时提供了一些方法,这些方法会使用依赖于操作系统的函数
os.path 作用:通用路径名操作
os.path.basename()方法作用:获取指定路径中的基本名称
应用:os.path.basename(path):
参数:path,指的是文件的系统路径
返回值:返回一个字符串值,为指定路径的基本名称
###### 9、re模块以及正则表达式
Python独有的匹配字符串的模块
功能实现基础:基于正则表达式实现
re.findall常与page_source 结合,进行爬取数据
re.findall应用:
定义:根据正则表达式搜索字符串,并返回匹配的字符串**列表**,
正则表达式介绍:
`.`
`*`
`.*`
`.*?`
`(.*?)`
`re.S`
###### 10、[i for i in r_key if i != ''] 用法
即取所有的不等于空的数据
###### 11、strftime 应用
1、使用pip install pandas 失败,但是直接在pycharm中Python interpreter直接导入可以
2、
```c
import datetime
t1 = datetime.datetime.now()
print(t1) # 2023-04-17 14:22:14.873038
t1.strftime('%Y-%m-%d-%H_%M_%S')
print(t1.strftime('%Y-%m-%d-%H_%M_%S')) # 2023-04-17-14_23_24
```
12、pandas 中to_excel的使用