【Python】模块,包,库一一CSDN21天学习挑战赛



本系列文章为参与【Python】CSDN21天学习挑战赛,成为更好的自己,根据自身的学习进度并记录自己的学习过程。我也是Python纯小白,和大家一起学习,保持热爱学习的好习惯😁

活动地址:CSDN21天学习挑战赛


Python3.x内置函数

函数描述函数描述
abs()返回数字的绝对值help()查看函数或模块用途的详细说明
all()用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、None、False 外都算 True。hex()将一个指定数字转换为 16 进制数。
any()用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。元素除了是 0、空、FALSE 外都算 TRUE。id()返回对象的唯一标识符,标识符是一个整数。CPython 中 id() 函数用于获取对象的内存地址。
ascii()类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回通过 repr() 函数使用 \x, \u 或 \U 编码的字符。 生成字符串类似 Python2 版本中 repr() 函数的返回值。input()接受一个标准输入数据,返回为 string 类型。在 Python3.x 中 raw_input() 和 input() 进行了整合,去除了 raw_input( ),仅保留了input( )函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。
bin()返回一个整数 int 或者长整数 long int 的二进制表示。int()将一个字符串或数字转换为整型。
bool()将给定参数转换为布尔类型,如果没有参数,返回 False。bool 是 int 的子类。isinstance()判断一个对象是否是一个已知的类型,类似 type()。isinstance() 会认为子类是一种父类类型,考虑继承关系。如果要判断两个类型是否相同推荐使用 isinstance()。
bytearray()返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。issubclass()判断参数 class 是否是类型参数 classinfo 的子类。
bytes()返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。iter()用来生成迭代器。
callable()用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。对于函数、方法、lambda 函式、 类以及实现了 __call__ 方法的类实例, 它都返回 True。len()返回对象(字符、列表、元组等)长度或项目个数。
chr()用一个整数作参数,返回一个对应的字符。list()用于将元组或字符串转换为列表。元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。
classmethod()修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。locals()以字典类型返回当前位置的全部局部变量。
compile()将一个字符串编译为字节代码。map()根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
complex()用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。max()返回给定参数的最大值,参数可以为序列。
delattr()用于删除属性。memoryview()返回给定参数的内存查看对象(memory view)。所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。
setattr()对应函数getattr(),用于设置属性值,该属性不一定是存在的dict()用于创建一个字典
slice()实现切片对象,主要用在切片操作函数里的参数传递。dir()不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
sorted()对所有可迭代的对象进行排序操作。sorted 可以对所有可迭代的对象进行排序操作。sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。divmod()接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。在 python 3.x 版本该函数不支持复数。
staticmethod()返回函数的静态方法。enumerate()用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
str()将对象转化为字符串格式。eval()用来执行一个字符串表达式,并返回表达式的值。
sum()对序列进行求和计算。exec()执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
super()用于调用父类(超类)的一个方法。解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。filter()用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
tuple()将可迭代系列(如列表)转换为元组。float()将整数和字符串转换成浮点数。
type()如果只有第一个参数则返回对象的类型,三个参数返回新的类型对象。不会认为子类是一种父类类型,不考虑继承关系。format()增强了字符串格式化的功能。基本语法是通过 {}: 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序。
vars()返回对象object的属性和属性值的字典对象。frozenset()返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
zip()将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。getattr()返回一个对象属性值。
import()用于动态加载类和函数 。如果一个模块经常变化就可以使用 import() 来动态载入。globals()以字典类型返回当前位置的全部全局变量。
reload()用于重新载入之前载入的模块。hasattr()判断对象是否包含对应的属性。
min()返回给定参数的最小值,参数可以为序列hash()获取取一个对象(字符串或者数值等)的哈希值。
next()返回迭代器的下一个项目,要和生成迭代器的 iter() 函数一起使用。property()在新式类中返回属性值。
object()返回一个新的无特征对象range()返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
oct()将一个整数转换成 8 进制字符串,8 进制以 0o 作为前缀表示。repr()将对象转化为供解释器读取的形式。
open()用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。使用 open() 函数一定要保证关闭文件对象,即调用 close() 函数。reversed()返回一个反转的迭代器。
ord()是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。round()返回浮点数 x 的四舍五入值,准确的说保留值将保留到离上一位更近的一端(四舍六入)。精度要求高的,不建议使用该函数。
pow()返回 xy(x的y次方) 的值。set()创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
print()用于打印输出,最常见的一个函数。

基本函数print & input

print()

print:在控制台打印内容,print默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

在控制台打印带特殊样式的内容

显示模式

建议常量名称颜色
MODE_DEFAULT终端默认设置0
MODE_HIGHLIGHT高亮显示1
MODE_UNDERLINE使用下划线4
MODE_FLICKER闪烁5
MODE_INVERSE反白显示7
MODE_INVISIBLE不可见8

设置打印内容的前景色,可以理解为字体颜色

前景色

建议常量名称前景色
FOREGROUND_BLACK黑色30
FOREGROUND_RED红色31
FOREGROUND_GREEN绿色32
FOREGROUND_YELLOW黃色33
FOREGROUND_BLUE蓝色34
FOREGROUND_PURPLE紫红色35
FOREGROUND_CYAN青蓝色36
FOREGROUND_WHITE白色37

设置打印内容的背景色,打印内容整块都会显示该颜色

背景色

建议常量名称背景色
BACKGROUND_BLACK黑色40
BACKGROUND_RED红色41
BACKGROUND_GREEN绿色42
BACKGROUND_YELLOW黃色43
BACKGROUND_BLUE蓝色44
BACKGROUND_PURPLE紫红色45
BACKGROUND_CYAN青蓝色46
BACKGROUND_WHITE白色47

格式:

'\033[{1}{2}{3}m{4}\033[0m'

{1}:显示模式

{2}:前景色

{3}:背景色

{4}:打印内容

例如:

print('\033[1;31;40m显示在终端的内容\033[0m')

结果:控制台打印高亮显示,并且字体为蓝色,背景为黑色
在这里插入图片描述

建议将以上信息配置为枚举值,打印也可以封装为一个函数,调用只需要传入打印内容和相应的样式参数就行,不用每次调用都单独写一次,提高效率

(已整理,可直接复制使用)

# region 控制台打印封装

# region 显示方式
# 终端默认设置
MODE_DEFAULT = 0
# 高亮显示
MODE_HIGHLIGHT = 1
# 使用下划线
MODE_UNDERLINE = 4
# 闪烁
MODE_FLICKER = 5
# 反白显示
MODE_INVERSE = 7
# 不可见
MODE_INVISIBLE = 8
# endregion

# region 前景色
# 字体黑色
FOREGROUND_BLACK = 30
# 字体红色
FOREGROUND_RED = 31
# 字体绿色
FOREGROUND_GREEN = 32
# 字体黃色
FOREGROUND_YELLOW = 33
# 字体蓝色
FOREGROUND_BLUE = 34
# 字体紫红色
FOREGROUND_PURPLE = 35
# 字体青蓝色
FOREGROUND_CYAN = 36
# 字体白色
FOREGROUND_WHITE = 37
# endregion

# region 背景色
# 背景黑色
BACKGROUND_BLACK = 40
# 背景红色
BACKGROUND_RED = 41
# 背景绿色
BACKGROUND_GREEN = 42
# 背景黃色
BACKGROUND_YELLOW = 43
# 背景蓝色
BACKGROUND_BLUE = 44
# 背景紫红色
BACKGROUND_PURPLE = 45
# 背景青蓝色
BACKGROUND_CYAN = 46
# 背景白色
BACKGROUND_WHITE = 47
# endregion


# region 控制台打印内容(带样式)
def print_c(content, mod=MODE_DEFAULT, fg=FOREGROUND_BLACK, bg=BACKGROUND_BLACK):
    """
    控制台打印内容(带样式)
    :param content: 打印内容
    :param mod: 模式
    :param fg: 字体景色
    :param bg: 背景色
    :return: None
    """
    print(f'\033[{mod};{fg};{bg}m{content}\033[0m')


# endregion

# endregion

调用方法,只需要传入:显示内容显示模式常量字体颜色常量背景颜色常量

print_c("显示在终端的内容", mod=MODE_HIGHLIGHT, fg=FOREGROUND_RED, bg=BACKGROUND_WHITE)

结果:
在这里插入图片描述


input()

input函数可以用来接收用户在控制台的输入,它可以传入一个字符串,当input函数调用的时候,会在控制台打印input(“提示信息”)中的提示信息

input函数会在用户输入完内容后,按下Enter回车键,才会往下执行

例如:

in_put = input("请输入内容:") # 执行后控制台会打印 请输入内容:,并且等待用户输入,直到用户按下Enter键后,程序才往下执行,将输入值付给in_put,并打印
print(in_put) # 控制台会打印用户输入的内容
print(type(in_put)) # 查看输入内容变量的类型

# 当然也可以不接收input的输入内容,这里就只是提示用户按Esc建后程序才往下执行
input("请按Esc键退出程序")

控制台输入验证必填,是否输入范围内(已封装可直接使用)

# region 控制台输入必填
def input_not_null(tips: str, *args) -> str:
    """
    控制台输入必填
    :param tips: 提示
    :param args: 控制必须输入元组中的字符
    :return: 输入内容
    """
    while (True):
        in_put = input(tips)
        if args:
            if in_put in args:
                return in_put
        else:
            if in_put:
                return in_put


# endregion

控制台必填

# 必需输入
strs = input_not_null('请输入您的昵称:')
print(f'您的昵称是:{strs}')

在这里插入图片描述

控制台输入元组内字符才行

# 必须输入🚹或者🚺
strs = input_not_null('请选择您的性别(🚹/🚺):', '🚹', '🚺')
print(f'您的性别是:{strs}')

在这里插入图片描述


模块&包&库

模块->包->库


模块

模块定义

模块 module: 主要是以*.py为后缀的文件。当然也可以有其他的文件后缀,例:*.pyo.pyc.pyd.so.dll
module 可看作一个工具类,可共用或者隐藏代码细节,将相关代码放置在一个module以便让代码更好用、易懂,让coder重点放在高层逻辑上。module里面能定义函数、类、变量,也能包含可执行的代码。

当一个文件夹下有 __init__.py时,意为该文件夹是一个包(package),其下的多个模块(module)构成一个整体,而这些模块(module)都可通过同一个包(package)导入其他代码中。

__init__.py文件用于组织包(package),方便管理各个模块之间的引用、控制着包的导入行为。在__init__.py导入我们需要的模块,以便避免逐一导入、方便使用。


常用基础模块

模块名称描述
os多种操作系统接口
os.path常用路径操作
sys系统相关的参数和函数
jsonJSON 编码和解码器
time时间的访问和转换
csvCSV 文件读写
re正则表达式操作
loggingPython 的日志记录工具
urllibURL 处理模块
httpHTTP 模块
sqlite3SQLite 数据库 DB-API 2.0 接口模块
random生成伪随机数
math数学函数
datetime基本日期和时间类型
enum对枚举的支持
email电子邮件与 MIME 处理包
threading基于线程的并行
itertools为高效循环而创建迭代器的函数
functool高阶函数和可调用对象上的操作
shutil高阶文件操作

包定义

Python包一般包含多个模块,其中属性大致相同的功能。包是一个类似文件夹,它里面包含了很多.py文件还有一个__init__.py文件,__init__.py这个文件是描述有多少个模块的东西。


库定义

库就是一个整体,它是一个完整的项目打包,可直接调用或者运行,一个库中可能有多个包!


常用第三方库

持续更新

安装命令库名称描述
pip install requestsrequests网络请求库,提供多种网络请求方法并可定义复杂的发送信息,对HTTP协议进行高度封装,支持非常丰富的链接访问功能。
pip install seleniumselenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。
pip install pycryptodomeAESAES加密解密
pip install apschedulerapscheduler提供了基于日期、固定时间间隔以及 crontab类型的任务。还可以在程序运行过程中动态的新增任务和删除任务。在任务运行过程中,还可以把任务存储起来,下次启动运行依然保留之前的状态。另外最重要的一个特点是,因为他是基于 Python语言的库,所以是可以跨平台的,一段代码,处处运行!

总结

不知不觉已经两周过去了,对Python也越来越熟悉,下班后回酒店第一件事情就是放下书包,打开笔记本,启动PyCharm,启动Typora。下周也将根据自己所学,实现定时每天发送天气信息。
让自己保持繁忙!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小呆瓜耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值