Python基础语法

Python基础语法

1、python基础概念

image-20251220210111349

image-20251220210404080

image-20251220210502591

image-20251220210723360

image-20251220210945850

image-20251220211017850

2、python虚拟机

image-20251220211259414

1、虚拟机设计降低了编程的难度。
2、增强了系统可移植性。
3、自动的内容管理,防止资源耗费。
4、解耦了程序与操作系统的依赖。


python虚拟机提供了所有python代码的执行环境,直接通过python虚拟机解释运行,极大降低了开发的难度。

image-20251220211430945

所有的虚拟机代码的转换的过程完全是由python自己完成的,用户还是按照传统的编程习惯进行代码开发,用户感觉不到虚拟机的存在,但是代码确实可以在虚拟机代码进行执行。

image-20251220211641018

3、搭建python开发环境

image-20251220211844204

python虚拟机下载站点:https://www.python.org/下载amd64版本的exe文件,双击安装。

image-20251220212058613

image-20251220212129582

python文档:https://docs.python.org/3/

image-20251220212238923

image-20251220212335323

python安装完python开发环境之后,会自动在本机的系统属性之中去添加python的执行程序路径,但是如果要没有添加上,也可以进行手工添加

image-20251220212503259

win+R>输入CMD>输入python进行验证是否安装成功!

image-20251220213009043

image-20251220213053021

4、python的编程起步

image-20251220213620742

5、PyCharm开发工具

破解方法:https://ai.feishu.cn/wiki/TT0iwvkw8iwvNyklNZSc70Cenl0

工具下载链接:https://www.jetbrains.com/pycharm/download/?section=windows(有专业版和社区版,社区版是免费试用。)

image-20251220214011490

image-20251220214112076

image-20251220214131471

image-20251220214156798

image-20251220214249415

image-20251220214303757

image-20251220214316184

image-20251220214330117

6、python基础语法

  • python的注释

image-20251220215350926

  • 标识符与关键字
只能由大小写字母、下划线、数字所组成,不能以数字开头,不能试用python关键字。

image-20251220215859211

image-20251220220014838

  • python标识符:

image-20251220220029272

  • 获取python的关键字
"""
注释方便自己 也方便别人!不写注释的代码是不合格的,不能验收!
# 单行注释
'''  '''  多行注释
"""
import keyword

if __name__ == '__main__':
    print("hello word!")
    # 获取python所有的关键字
    print(keyword.kwlist)
  • 变量与常量

image-20251220220404858

image-20251220220455929

image-20251220220949195

    python中的全部变量都保存在了一个命名空间之中,而后命名空间存储一个变量信息,同时变量具体定义是保存在栈内存,而后栈内存指向堆内存(存放具体的常量值)。所有的常量只保存在堆内存中,所有的变量只保存了一个堆内存的引用地址而已。

image-20251220221230916

image-20251220221332553

image-20251220221630865

  • 变量删除

    image-20251220221815704

在执行del之前,num变量是可以直接使用的,并且可以通过变量找到其对应的常量的内容(常量是保存在堆内存之中的),而在使用了"del num"变量删除之后,发现num变量无法使用了,直接在执行的时候出现了NameError(名称错误,没有找到指定的名称变量),需要注意的一个问题是,变量使用del之后,可能并不是真正删除操作,因为内存的释放还是需要由python虚拟机进行调度。

image-20251220222425265

变量名和常量值的内存地址是一样,可想而知有一个常量池,当变量被删除后,实际上仅仅是通过命名空间将此变量的信息删除了,但是此变量所对应的堆内存地址可能未必会及时删除。
情况一:该堆内存地址还存在有其他变量的引用,那么此内存是不会被回收。
情况二:该堆内存的地址已经没有任何变量的引用,则此部分内存将成为无用空间,随后将等待被删除(python虚拟机)。

image-20251220223026164

image-20251220223147289

image-20251220223654986

  • python的数据类型

image-20251220224305287

image-20251220224334067

image-20251220224744599

image-20251220225740099

image-20251220225832441

复数

image-20251220225906375

image-20251220230212895

(15+6j)
(30+12j)

布尔类型 True和 False

image-20251220230405289

image-20251220230637402

None类型

image-20251220231611484

None赋值的变量可以直接拿来使用,而Del删除的变量不能拿来使用。 

image-20251220232008082

image-20251220232121389

  • 数学运算符

image-20251220232204401

image-20251220232403764

  • is/not is 判断是不是引用传递(同一内存的指向),返回布尔类型。

image-20251231140744423

  • 关系运算

image-20251231140909375

所有的关系运算符返回的都是布尔类型。

image-20251231141033787

  • 逻辑运算符

image-20251231141058948

与逻辑: 若干个布尔判断的条件返回的内容都是True的时候,最终结果才是True,有一个是False结果就是False;

或逻辑:若干个布尔条件的返回内容只要一个是True,最终结果就是True,全部是False的时候结果就是False;

非逻辑:是一个求反的过程,将True变false,将false变true。

image-20251231141811867

image-20251231142113236

image-20251231142210871

  • 位运算

image-20251231142556213

  • 移位运算

image-20251231142702110

7、序列结构

image-20251231143227807

image-20251231143353653

image-20251231143457537

image-20251231143553253

image-20251231143857938

8、字符串

image-20251231144645132

image-20251231144928258

image-20251231145132185

image-20251231145326741

image-20251231145423635

image-20251231145614125

image-20251231145717805

image-20251231145816379

image-20251231145854326

  • python预结构处理

image-20251231150055802

image-20251231150146719

image-20251231150251085

image-20251231150400501

image-20251231150422489

image-20251231150540755

image-20251231150656964

image-20251231150906375

9、列表(list)

image-20251231151137782

列表中可以定义字符串除外,也可以进行其他子列表的存储。由于列表中定义的序列没有数据类型的规定,尽量在列表中定义相同数据类型的序列对象。

image-20251231151414142

image-20251231151548309

image-20251231151755319

  • copy
拷贝列表对象相当于在复制新的列表开辟出一个新的堆内存用于使用。

image-20251231152158647

image-20251231152321093

image-20251231152419202

image-20251231152546241

image-20251231152750458

image-20251231152819497

10、 元组

元组中如果只有一个元素,会自动转型成该元素的数据类型,所以一般定义元组元素时要后面追加一个逗号。
元组可以通过下标取值,且里面的元素定义后不可更改。可以保存列表和元组两种类型。

image-20260102152750215

  • 将列表转为元组结构

    image-20260102153015061

  • 将字符串转为元组结构

image-20260102153126049

  • 将序列结构转为列表结构

image-20260102153828265

  • 列表和元组有什么不同?
元组是开辟一片连续存储空间,用于存储数据,查询效率比较高,而列表是非连续存储空间,查询效率要低一点点。

image-20260102154038825

image-20260102154053349

11、字典

image-20260102154257007

image-20260102154336790

image-20260113203634444

image-20260113204248193

image-20260113204440564

  • 字段内置函数

image-20260113204525689

  • 安全的获取字典中的数据

image-20260113204703685

  • 相同的key值会被覆盖

image-20260113205103950

  • 字段数据的删除操作

image-20260113205237958

  • 判断某一个key是否存在

image-20260113205621665

  • items函数功能

image-20260113205825652

  • 原始数据删除

image-20260113205901396

image-20260113210156520

  • 字典copy(浅拷贝,只拷贝地址)

image-20260113210343973

image-20260113210434411

image-20260113210524517

  • 深拷贝(把内存和地址都拷贝一遍)image-20260113211637774

12、序列统计函数

image-20260113212014193

image-20260113212203197

  • 重复次数的统计

image-20260113213138604

  • 没有重复的数据分析

image-20260113213726644

  • 字典数据的运算

image-20260113213926734

13、键盘数据的输入处理

image-20260113214205992

image-20260113214358511

image-20260113214530380

image-20260113214703287

14、数据类型的转换

image-20260113214819849

image-20260113215428001

image-20260113220154056

image-20260113220754554

15、数据格式化

image-20260113222740481

image-20260113225350789

image-20260113230441687

image-20260113230823486

image-20260113230932699

image-20260113231557185

16、字符串格式化

image-20260113231757820

image-20260113231810701

image-20260113231831120

  • format格式化

image-20260113231909012

image-20260113232235056

image-20260113232437274

image-20260113232538825

image-20260113232739348

image-20260113232831469

17、程序逻辑结构

image-20260119213048458

image-20260119213246357

image-20260119213441176

image-20260119213755937

image-20260119214018607

18、循环语句

image-20260119214451675

image-20260119214511755

image-20260119214708847

image-20260119215215798

image-20260119215903805

19、for循环

image-20260119220445075

image-20260119220536360

image-20260119221807622

image-20260119224142995

image-20260119230247352

20、中断循环

image-20260119230932604

image-20260119231033521

image-20260119231533321

21、函数

image-20260119232156013

image-20260119233725990

image-20260119233755335

22、函数参数传递

image-20260120215210781

image-20260120215109848

image-20260120215530752

image-20260120215642770

image-20260120215834056

image-20260120220041336

image-20260120220205619

image-20260120220458349

image-20260120220516701

image-20260120220635888

23、内部函数

image-20260120220936730

image-20260120221100421

  • 闭包函数

image-20260120221258554

24、变量作用域

每个函数都有的内部的变量作用域,如果在函数外部定义相同的变量,函数内部变量不会受影响,必须在函数内部定义nonlocal和globals

image-20260120221504801

image-20260120221626943

image-20260120221839662

image-20260120221903975

image-20260120222219750

image-20260120222504842

25、lambda表达式

image-20260120222755173

lambda表达式的最终目的是简化代码量,结构定义上的简化

image-20260120222935507

image-20260120223118108

image-20260120223325317

image-20260120223458839

26、代码动态解析

image-20260120223621973

image-20260120223727663image-20260120223928421image-20260120224104222

27、生成器

image-20260120224341402

image-20260120224415031

image-20260120224549004

image-20260120224819780

image-20260120225151414

28、面向对象

image-20260120225849725

image-20260121213101623

image-20260121212857451

image-20260121213315070

image-20260121213612083image-20260121213755301

image-20260121214019751

image-20260121214059660

image-20260121214747806

image-20260121214840434

image-20260121215141245

image-20260121220441278

29、属性封装

image-20260121231715075

image-20260121231825664

image-20260121231929921

image-20260121232111160

image-20260121232155162

image-20260121232338255

  • 对于类中结构性要求较强的必须设置插槽,防止被无限扩充属image-20260121232707612

30、对象构造和析构

image-20260124145439886

如果没有使用构造方法,一样可以实例化,其中继承父类的初始化方法,所以一个类中一定会有构造方法的提供。
类的初始化步骤:1、开辟堆内存。2、实例化构造方法。3、成员属性赋值

image-20260124145956809

image-20260124150249285

  • 析构操作

image-20260124150459055

31、类属性

image-20260124150712891

image-20260124151335022

image-20260124151429437

image-20260124151849122

1231

image-20260124153000339

32、内部类

每个内部类都是一个独立的结构,只因为位置不同,调用方式不同。

image-20260124155752168

33、继承

image-20260124161120271

image-20260124161245458

image-20260124161733062

  • 多继承

image-20260124162942823

34、继承构造方法

image-20260124163305069

image-20260124163420021

image-20260124163442736

image-20260124163507443

image-20260124163711736

image-20260124164004700

35、获取类继承信息

image-20260124164915403

image-20260124165818337

image-20260124165944159

image-20260124170120821

36、方法覆写

image-20260124170404910

image-20260124171539839

37、对象的多态性

image-20260124171736813

image-20260124172146897

image-20260124172232021

image-20260124172522432

image-20260124172847795

38、Object父类

image-20260124173714428

image-20260124173809684

image-20260124174002945

  • MRO顺序错误代码:

image-20260124174227439

由于广度优先算法导致的X和Y执行的父类对象不同,然后Z去继承X和Y导致父类代码执行混乱不堪,需要修改Y类的继承父类的对象顺序成XY继承父类的方法应该对齐。

image-20260124174643379

image-20260124174722281

39、哈希编码

image-20260124174858906

image-20260124174950065

image-20260124175100286

40、获取对象信息

image-20260124181132749

image-20260124181256632

image-20260124181322058

image-20260124181421038

image-20260124182711708

41、对象格式化

image-20260124184831826

image-20260124184917166

image-20260124185244708

image-20260124185516009

image-20260124185821910

image-20260124190130817

image-20260124190158158

42、对象比较

image-20260125141944297

image-20260125142327907

image-20260125154140125

43、数据转换操作

image-20260125154502584

image-20260125155106405

image-20260125155455930

image-20260125160055946

44、数学计算支持

image-20260125160448047

image-20260125160656813

image-20260125160822151

image-20260125173721207

45、可调用对象

image-20260125191523548

image-20260125193906684

image-20260127213533994

image-20260127213707458

46、集合迭代支持

image-20260127214021470

image-20260127214038451

image-20260127215525676

image-20260127215725512

47、装饰器

  • 代理模式

image-20260127221518870

image-20260127221757717

image-20260127222135301

image-20260127222358414

  • 装饰器

image-20260127222446675

image-20260127222909504

image-20260127223008170

image-20260127223204254

48、属性访问支持

image-20260127223637826

image-20260127223653958

49、静态方法

image-20260127224628343

image-20260127224840077

image-20260127225218804

image-20260127225234200

image-20260127225439334

  • 工厂模式

image-20260127225657002

image-20260127225835347

image-20260127225907887

50、metaclass

image-20260128214845570

image-20260128215139419

image-20260128220636404

image-20260128220659882

image-20260128230223401

image-20260128230428710

51、classmethod image-20260128230846487

  • 获取python调用源代码

image-20260128231042831

  • 定义抽象类和抽象方法(一定要实现抽象方法)

image-20260128231419710

  • 判断是否覆写属于正确的子类

image-20260128231817690

image-20260128231844374

52、异常捕获和处理

image-20260128231945459

image-20260128232601216

image-20260128232930632

  • 断言处理

image-20260128233118198

image-20260128233149332

  • 处理多个异常

image-20260128234136379

image-20260128234752813

image-20260128234816632

image-20260128235110601

image-20260128235321737

  • 抛出异常

image-20260128235457808

image-20260128235605551

image-20260128235722962

image-20260128235748939

image-20260129000434307

image-20260129000540860

image-20260129000620981

53、with关键字

image-20260129230731988

image-20260129230940797

image-20260129231133681

54、模块的定义与使用

image-20260129231507257

image-20260129231547335

image-20260129232004228

image-20260129232123475

image-20260129232601283

  • __init__.py 文件定义父包可自动导入的模块

image-20260129232851169

  • 要使用父包导入以外的模块,需要使用from com.yootk.data import *,不能使用from com.yootk import *。

image-20260129233108947

  • python禅道

image-20260129233459509

55、数学模块

image-20260129233636665

image-20260129233810036

image-20260129233940255

56、随机数

image-20260129234210781

image-20260129234452202

57、偏函数

image-20260129234819067

image-20260129235009859

image-20260129235023740

58、枚举

image-20260129235327313

image-20260130000055753 image-20260129235412315

image-20260129235744028

59、双端队列

image-20260129235912424

image-20260130000014331

image-20260130000216947

image-20260130000251443

image-20260130000359566

60、set集合

image-20260130000509618

image-20260130000600804

image-20260130000641033

image-20260130000757116

61、正则表达式

image-20260130000901514

image-20260130001046493

image-20260130001154376

![image-20260130001409874](https://img2024.cnblogs.com/blog/1996755/202601/1996755-20260130001410943-526139446.png

image-20260130002119411

image-20260130002158816

62、日期时间

image-20260130002405445

image-20260130002425726

image-20260130002539266

image-20260130002713835

63、pip模块管理工具

image-20260130002806277

image-20260130002834530

image-20260130002917595

  • 换镜像

image-20260130003100997

image-20260130003140990

image-20260130003227876

image-20260130003323678

63、虚拟环境

image-20260130003437334

image-20260130003531727

image-20260130003555806

image-20260130003637603

image-20260130003738440

image-20260130003754684

64、模块打包

image-20260130003928882

image-20260130003948920

image-20260130004048766

image-20260130004200975

image-20260130004341898

image-20260130004358933

image-20260130004436415

65、Pypi项目发布

image-20260130004622893

image-20260130004641043

image-20260130004712278

image-20260130004821789

image-20260130004840806

image-20260130004925186

image-20260130004959001

image-20260130005016341

image-20260130005118352

image-20260130005134104

posted @ 2026-01-30 00:55  戴莫先生Study平台  阅读(3)  评论(0)    收藏  举报