当前位置: 首页 > news >正文

python - day 11

遍历:

zip()函数:

eg:

list1=["name","age","sex"];
tuple1=("guo",18,"male");
for q,v in zip(list1,tuple1):print(f"what is your {q}? It is {v}");

运行结果:

item()函数

字典中遍历时,关键字和对应的值可以使用 items() 方法同时解读出来:

eg:

dict1 = dict(a=1,b=2,c=3);#dict函数
for k,v in dict1.items():#items()函数print(k,v);#也可以使用下面的方式遍历
for k in dict1:#k是关键字print(k,dict1[k]);

运行结果:

enumerate()函数

序列中遍历时,索引位置和对应值可以使用 enumerate() 函数同时得到:

eg:

list1=[x*2 for x in range(1,6)];
for i,v in enumerate(list1):print("enumarate函数:",i,v);#也可以下面这种:
for i in range(len(list1)):print("直接打印:",i,list1[i]);

运行结果:

注意items()函数和enumerate()函数的使用方式不一样,一个是dict1.items(),一个是enumerate(list1)。

reversed()函数

要反向遍历一个序列,首先指定这个序列,然后调用 reversed() 函数:

eg:

list1=[x*2 for x in range(1,6)];
for i in reversed(list1):print("reversed函数,list1:",i);#如果想再加上索引位置
for i,v in enumerate(reversed(list1)):print("reversed函数,list1:",i,v);list2 = reversed(list1);
print("reversed函数,list2:",list2);
print("tyep(list2):",type(list2));#获得反转后的列表
list3 = list(reversed(list1));
print("reversed函数,list3:",list3);

运行结果:

从这里可以看出reversed函数之间反转之后的序列是一个特别的类型存在,不是那正常的四种,不过我不知道这种是什么。

sorted()函数

要按顺序遍历一个序列,使用 sorted() 函数返回一个已排序的序列,并不修改原值:

eg:

list1 = [4,6,7,1,2,9,3,6];
for i in sorted(list1):print("sorted函数,list1:",i);#如果想要在排序的时候去除重复的元素,可以用set函数,将序列转换成集合。
for i in sorted(set(list1)):print("sorted函数,去重复,list1:",i);

运行结果:

 模块

Python 中的模块(Module)是一个包含 Python 定义和语句的文件,文件名就是模块名加上 .py 后缀。

模块可以包含函数、类、变量以及可执行的代码。通过模块,我们可以将代码组织成可重用的单元,便于管理和维护。

可以先简单理解为模块就是包含了各种代码的一个文件。

模块的作用

  • 代码复用:将常用的功能封装到模块中,可以在多个程序中重复使用。

  • 命名空间管理:模块可以避免命名冲突不同模块中的同名函数或变量不会互相干扰。

  • 代码组织:将代码按功能划分到不同的模块中,使程序结构更清晰。

import 语句

想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下:

import module1[, module2[,... moduleN]

__name__ 属性

一个模块被另一个程序第一次引入时,其主程序将运行。即当一个模块被引入到另一个程序中时,模块内的所有顶层代码不在函数或类内的代码)都会被执行。这可能导致不必要的代码执行,尤其是当模块仅作为库使用时。

如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用 __name__ 属性来使该程序块仅在该模块自身运行时执行。

说明:每个模块都有一个 __name__ 属性。

  • 如果模块是被直接运行__name__ 的值为 __main__

  • 如果模块是被导入的__name__ 的值为模块名

说明:__name__ 与 __main__ 底下是双下划线, _ _ 是这样去掉中间的那个空格。

即我们可以通过__name__属性来判断当前模块是不是直接运行的,如果是,我们就可以允许它执行一些代码,否则就不允许。

eg:

#这个是我的模块,下面这部分代码我只希望该模块直接运行时才执行,而不是作为模块导入时执行。if __name__ == '__main__':#可以通过这个if判断__name__ 的值是不是'__main__',来判断是否是直接运行该模块,而不是作为模块导入时执行。#下面这两个print是随便写的,就是那些你希望在直接运行该模块时执行的东西。print("我是直接运行该模块");print('模块名为:',__name__);print('模块所在目录为:',__file__);#............这里还可以有好多实现各种功能或者目标的代码,你希望在直接运行该模块时执行的。else:#如果不是直接运行该模块,则执行else语句块,这个可以没有。print("我来自另一个模块");

运行结果:

这个运行结果,分别是我在day6模块本身下运行的,以及通过day5模块调用的day6模块然后运行的。如下图

包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。

可以理解为包就是一个专门用来存放和管理相关代码文件(模块)的文件夹或收纳盒。

目录/文件夹只有包含一个叫做 __init__.py 的文件才会被认作是一个包

eg:

sound/                          顶层包__init__.py               初始化 sound 包formats/                  文件格式转换子包__init__.pywavread.pywavwrite.pyaiffread.pyaiffwrite.pyauread.pyauwrite.py...effects/                  声音效果子包__init__.pyecho.pysurround.pyreverse.py...filters/                  filters 子包__init__.pyequalizer.pyvocoder.pykaraoke.py...

这个我的理解就是,一个名叫sound的大文件夹,然后里面包含了一个文件/模块(__init__.py,这个文件也使得这个大文件sound被视为一个包,称为顶层包)和三个小文件夹/子包(formats,effects,filters,这三个也都是包,被称为子包),然后每个小文件夹/子包有分别包含了很多文件(也就是模块,后缀为.py的,比如formats里面的wavread.py,这些子包也都有一个__init__.py,用以说明这些文件夹也是个包)

__init__.py 文件的作用

这个文件不仅仅是包的标识,它本身也是一个模块,模块名就是包名。它的主要作用有:

  • 初始化代码:当包或模块被首次导入时,会执行该文件中的代码。可以用于包的初始化设置。

  • 简化导入:可以在 __init__.py 中定义 __all__ 列表,来控制 from package import * 的行为。( __all__ 列表可以指明那些模块/内部可以被import导入到其他模块,这样可以避免自己不希望别人使用的部分也被一起导入其他模块。)

  • 提供便捷的API:可以在 __init__.py 中导入包内的关键模块、函数或类,这样用户可以直接从包顶层导入,而不需要知道内部复杂的子包结构。

(我现在不太明白第二个和第三个作用是什么意思,后面回头再看。)

http://www.dtcms.com/a/553812.html

相关文章:

  • 污水处理厂三菱FX5U系列PLC通过Modbus TCP转CCLKIE工业智能网关和多个不同的仪表进行通讯案例
  • 东莞专业网站设计建站公司无锡网站推广优化费用
  • 海南网络公司网站建设wordpress 禁止收录
  • 哪里有学习做网站的html网站模板 免费
  • 网站中的表格phonegap下载
  • JAVA攻防-专题漏洞SPEL表达式SSTI模版Swagger接口Actuator泄露Spring特检
  • vue-day03
  • 高效稳定的命理测算平台:基于Linux+Nginx+PHP+MySQL的技术架构解析
  • 威海做网站哪家好西数网站助手
  • 企业商旅平台推荐:合思——全流程合规管控与生态协同标杆
  • 专业电商网站开发自己做图网站
  • 【flutter报错:Build failed due to use of deprecated Android v1 embedding.】
  • git 命令里的存档和检出的区别
  • 杰理芯片SDK-杰理SDK工程框架介绍
  • 家教中介网站怎么做学员引流用万网做网站
  • C# TaskCompletionSource.SetResult 用法详解
  • 网站建设模板html网站开发工程师岗位职责要求
  • 【Linux network和NetworkManager双网卡主备模式绑定】
  • SSO 单点登录
  • Linux 中如何查看系统的位数
  • 云南建设企业网站修改wordpress首页缩略图尺寸
  • 网站的投票系统怎么做wordpress文章类模板
  • AI智能体如何让用户洞察更简单、更快速、更精准
  • 离线测试与在线测试
  • linux安装kafka
  • 13. React中为什么使用setState
  • 电力电子技术 第十章——可控整流器
  • 高端网站建设seo电子商务网站建设携程
  • 知名网站制作全包19寸 网站做多大
  • MoE (Mixture of Experts)