python模块

一.常见的内置函数

常见的内置函数一般配合匿名函数使用

以下是Python 3常见的一些内置函数:

1. print():输出一段文本或变量的值到控制台。
2. input():接受用户的输入,并返回输入的字符串。
3. len():返回一个对象的长度或元素个数。
4. int():将一个字符串或浮点数转换成整数。
5. float():将一个字符串或整数转换成浮点数。
6. str():将一个对象转换成字符串。
7. range():生成一个范围内的整数序列。
8. type():返回一个对象的类型。
9. abs():返回一个数的绝对值。
10. sum():返回一个序列的元素之和。
11. max():返回一个序列中的最大值。
12. min():返回一个序列中的最小值。
13. sorted():返回一个排序后的列表。
14. zip():将多个序列合并成一个元组序列。
15. input():用户输入函数返回用户输入的值。
16. open():打开文件。
17. isinstance():判断一个对象是否是某种类型。
18. all():判断可迭代对象中所有元素是否为True。
19. any():判断可迭代对象中是否有元素为True。
20. help():查看函数或模块的帮助信息。

二. 模块

1. 模块的简介

1. 什么是模块:在 Python 中,模块是包含 Python 定义和语句的文件。模块可以包含变量、类、函数等,这些都可以被其他 Python 程序引用。模块提供了解决命名空间冲突问题的方法,并且可以提高代码的可重用性。Python 自带了一些常用的模块,也可以自己编写模块并使用。模块可以通过 import 语句导入,然后使用其中的函数或变量。

2. 为什么我们要使用模块:别人写好的一些功能,我们下载后使用它可以让我们的在项目中大幅度的提高开发效率。

2. 模块的分类

分为三类:1.内置模块:在python解释器中内置的功能,可以直接拿来使用。

                 2.第三方模通过下载别人在网络上分享的开源的模块

                 3. 自己编写的,自定义模块。

3.模块的共存形式

        我们自己写的python代码 .py文件,就是模块,一个文件就是一个模块。

一系列的py文件组合就是 包。

        当我们以后编写复杂的程序时,搜索网上有没有别人写好的功能,可以直接拿来用。

二 .模块的导入方式与import句式

        模块的导入过程:1.会运行执行文件,产生执行文件的全局名称空间。2运行导入文件。 3. 会产生导入的全局名称空间,把导入文件里的名字全部放进执行文件的全局名称中。4 .会在执行文件中产生一个该文件的名称空间。


    1.搞清楚谁是执行文件,谁是被导入文件
    2.以后开发项目的时候py文件的名称一般是纯英文
        不会出现含有中文甚至空格
            01 模块简介.py    不会出现
            test.py           出现
    3.导入模块文件不需要填写后缀名

1. import语式

在文件01 模块的两种导入模式.py文件中引用aa.py中的功能,需要使用import aa,在首次导入模块中执行文件(01 模块的两种导入模式.py)发生的事有:

​ 1.执行源文件代码

​ 2.产生一个新的名称空间用于存放源文件执行过程中产生的名字

​ 3,在执行文件所在的名称中间得到一个模块名aa,该名字指向新创建的模块名称空间,若要引用模块名称空间中的名字,需要加上模块名aa:

import aa  # 导入模块aa
name = 'kiki'
print(aa.name)  # 打印引用模块aa中全局变量name的值
aa.func1()  # 调用模块aa中func1函数
aa.func2()  # 调用模块aa中func2的函数,等于再次调用模块aa中的func1函数
aa.change()  # 调用模块aa中change的函数,模块aa的全局变量name='kimi'修改为name='rose'
print(aa.name)
print(name)>>>>:执行文件中的全局变量name

"注意:若想要执行当前文件中的名称空间中存在的name,执行aa.get()操作的都是源文件中的全局变量name"

文件导入的顺序:

2.form...import 句式
	以from...import...name,func1为例研究底层原理
	"""
	1.先产生执行文件的名称空间
	2.执行被导入文件的代码将产生对应的名字放入被导入文件的名称空间中
	3.在执行文件的名称空间中产生对应的名字绑定模块名称空间中对应的名字
	4.在执行文件中直接使用名字就可以访问名称空间中对应的名字
	
	"""
from aa import name,func1,func2,change  # 导入模块aa中的全局变量name,函数func1,func2,change
print(name) # 打印模块aa中的全局变量name的值
func1()  # 调用模块aa中func1函数
func2()  # 调用模块aa中func2函数
change()  # 调用模块aa中change函数
print(name)  # kimi
''' 
change是aa中的change,
change代码中的global name是aa全局的name,
所以不会影响执行文件的name
 '''

顺序图:

3. 导入语句的其他用法

1. 起别名

1. 起别名
   
    from md import money as m
    from md import read1 as r1
    from md import read2 as r2
    import md

    def read1():
        print('from read1')
    read1()
    r1()

    md.read1()

2. 连续导入

import aa

import read 1

import read 2

import change

3. 通用导入

form aa import *(代表导入所有名字)

print(read1)

primt(read2)

4. 选择性导入

关键字:__all__

在导入文件中,__all__[read1,read2]字符串类型的句式。

4. 判断类型

关键字 __name__区分导入或形式文件。

如果在执行文件中打印,类型是str字符串的类型,但是在导入文件里执行,那就是文件名或模块名。

5. 循环导入

        当导入文件时,出现了循环导入那就是自己编写的问题,是坚决不允许的。解决办法就是重新编写,找到原因。

6.名字的查找顺序

查找顺序:从内存中查找------>从内置里查找--------->从环境变量sys.path中查找

如果都没找到,则会报错。在起名时,不要与内置的名字起冲突。

当找不到模块时,把模块添加到sys.path中

sys.path.append(r'D:\Python27\day20\aaa\bbb')##路径地址
    2. 使用from...import句式
    	from aaa.bbb.ccc import m1
        from aaa.bbb.ccc.m1 import f1

        f1()##d调用m1里面的f1
        m1.f1()
4. 相对导入和绝对导入

        相对导入和绝对导入是Python中import语句中用于引入模块的两种方式。

相对导入是指从当前模块的相对位置开始引入其他模块。例如,在同一目录下有一个名为utils.py的模块,另一个名为main.py的模块想要引入utils模块,则可以使用相对导入:

from . import utils

其中"."表示当前目录,因此.utils即为相对路径。

绝对导入是指从项目根目录开始引入其他模块。例如,在项目的根目录中有一个名为package的包,其中包含了名为module.py的模块,如果想要在项目任意位置引用该模块,则可以使用绝对导入:

from package import module

其中package即为包名,module即为模块名。

需要注意的是,Python 3中默认使用绝对导入,并且不支持隐式相对导入,因此在引用其他模块时应当尽可能使用绝对导入。同时,相对导入只能在包中使用,而不能在单个模块中使用。

三. 包的使用

        什么是包:指的是一系列模块的集合体,也就是文件夹。

包和模块的区别:在包中有个__init__.py文件,导包其实就是在导包下的__init__文件的!

init.py文件是一个空文件,用于标识一个包(package)所在的目录。它在Python包(package)中是一个必要的文件,如果没有这个文件,Python解释器就无法识别该目录为一个包

在__init__.py文件中,一般会导入该包的子模块,以便在使用包时可以方便地访问子模块

四. 正则表达式

1.正则表达式

  正则表达式是一种用来描述字符串模式的语言。它包括一些特殊字符和语法,可以用来匹配、替换和提取字符串中的内容。正则表达式在编程语言、文本编辑器。如果想在Python中使用正则表达式,需要借助于re模块,内置的
import re

使用正则表达式实现手机号登录:

import re
phone_number = input('please input your phone number : ')
if re.match('^(13|14|15|18)[0-9]{9}$',phone_number):
        print('是合法的手机号码')
else:
        print('不是合法的手机号码')

2. 字符组

正则表达式的字符组:

[0123456789]  # 0-9之间的数字
[0-9]  # # 0-9之间的数字
[A-Z]  # # A-Z之间的字母
[a-z]  # # a-z之间的字母

当然,我们也可以通过网站上的正则表达式转换来编写:正则表达式在线测试 - 站长工具

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值