Python学习

编译与解释:

        编译定义:源代码(常为高级语言)转换成目标代码(常为机器语言,如0,1)

                转换成目标代码后,保留目标代码,源代码不做保留

        编译的好处:

                1、相同源代码,编译产生的目标代码执行速度更快

                2、目标代码不需要编译器可以运行,在相同操作系统上使用灵活(跨平台)

        静态语言(以编译形式执行):C、java

        解释定义:将源代码逐条转换成目标代码并同时运行的过程

        解释的好处:

                1、解释执行需要保留源代码,程序易维护

                2、只有有解释器,源代码可以在任何操作系统上运行,可移植性好

                3、更容易定位到问题所在位置(逐行运行)

         脚本语言(已解释方式执行):JavaScript、PHP、Python

注:Python解释器中保留了部分编译器的功能(在解释时也生成了完整的目标代码),可以有效提升计算性能

        Python限制:

  • Python是解释型语言,逐行运行速度较慢
  • Python是一种动态语言,需要做额外的工作(如分配数据类型)
  • Python内存效率不高(所以Python常用于服务端编程)
  • 与关系型数据库交互性不好
  • Python语言中数据类型可能会变更,一开始是int,后来是string,这将导致最终运行时才会出现错误,测试力度需要增加

IPO程序编写方法

1、IPO:程序的运算模式:输入数据、处理数据、输出数据

常见函数

1、输出函数print()

        print()支持输出数字、字符串(需要使用单引号、双引号、三引号包含)以及表达式(直接输出计算结果)

  • 若输入内容不换行,以英文逗号分割,输出结果中以空格分割

 Python变量

前提:Python中区分大小写,相同字母,大小写不一致,则不是同一个变量
         ▶保留字

                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的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值