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

飞天使-python的模块与包与装饰器

文章目录

      • 模块与包
        • 标准模块
        • 第三方模块
        • 自定义模块
      • 高级语法
        • 切片
        • 迭代器/生成器
        • 高级模式(闭包)
        • 高级模式(装饰器)
      • 参考视频

模块与包

标准模块

import os
print(os.getcwd())import sys
print(sys.argv)
print(sys.platform)
print(sys.path)import timeprint(time.localtime())print("开始")
time.sleep(5)
print("结束")start=time.time()
for i in range(10000):i+=1
end = time.time()
print(end - start)import time
print(time.time())    #返回当前时间的时间戳(1970年后经过的浮点秒数)。
print(time.localtime())
time.sleep(3)
print(time.time())# struct_time元组共有9个元素:
# 0  tm_year(年)    
# 1  tm_mon(月)
# 2  tm_mday(日)
# 3  tm_hour(时)
# 4  tm_min(分)
# 5  tm_sec(秒)
# 6  tm_wday(weekday),0是周一,以此类推
# 7  tm_yday(一年中的第几天)
# 8  tm_isdst(是否是夏令时),0非夏令时、1夏令时、-1不确定是否是输出结果:
开始
结束
0.0023679733276367188
1693381095.814861
time.struct_time(tm_year=2023, tm_mon=8, tm_mday=30, tm_hour=15, tm_min=38, tm_sec=15, tm_wday=2, tm_yday=242, tm_isdst=0)
1693381098.815426import math
print(math.pi)
print(math.cos(3.14))random  随机数
整数
randrange(start,stop[,step])
randint(a,b)import random
print(random.randrange(1,20,7))   #1,8,15print(random.randint(1,100))  #[1,100]范围,而不是[1,100)for i in range(1,1000):print(random.randint(1,100))序列
choice(seq)
shuffle(x)
sample
random()
uniform(a,b)
等等,这些要有使用场景在回来看# search(pattern,string)	在字符串中寻找模式
# match(pattern,string)  	在字符串开始处匹配模式
# split(pattern,string)	根据模式分割字符串
# findall(pattern,string)	列表形式返回匹配项
# compile(pattern)	创建模式对象import re
x="李立宗的Python课程,在CSDN的课程"
print(re.search(",",x))
print(re.match("李立宗",x))
print(re.split(",",x))
print(re.findall("[nN]",x))r=re.compile("[0-9]")
x="今天是2021年6月23日"
print(r.match(x))
print(r.search(x))
print(r.findall(x))r=re.compile(":")
x="今天是:2021年6月23日"
print(r.split(x))r=re.compile("[0-9]")
x="我买了6斤土豆,8斤黄瓜"
print(r.split(x))import re
a="it's a very good lesson"x=re.split(" ",a)
print(a)
print(x)# re.match 尝试从字符串的起始位置匹配一个模式,
# 如果在起始位置匹配不成功,match()返回none。x=re.match("李立宗","李立宗的Python入门")
print(x)
print(x.span())
x=re.match("入门","李立宗的Python入门")
print(x)r=re.compile("[0-9]")
print(re.match(r,"lilizong"))
print(re.match(r,"13602153866"))
print(r.match("lilizong"))
print(r.match("13602153866"))
print(r.match("我买了6斤土豆,花了8块钱"))
print(r.search("我买了6斤土豆,花了8块钱"))
print(r.findall("我买了6斤土豆,花了8块钱"))
print(r.split("我买了6斤土豆,花了8块钱"))

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第三方模块

查看版本 pip --version
看看安装了哪些包 pip list
安装指定的包 pip install numpy
安装指定的包 pip install numpy==1.19.3
升级到指定的版本 pip install --upgrade numpy 
卸载包 pip uninstall 包名

自定义模块

__name__ 的使用from 和 import 的使用参考下面截图

在这里插入图片描述
在这里插入图片描述

高级语法

切片

在这里插入图片描述

迭代器/生成器

列表、元组、集合、字典、字符串等对象被称为可迭代对象。

高级模式(闭包)

一个稳定的输出

在这里插入图片描述

高级模式(装饰器)

这个概念在其他的语言里面没有,相对难理解
最简单的装饰器
#在计算加减乘除前,先输出一个分隔线(=====)
#方案1:单独定义一个函数show,用于输出横线
#每次调用运算函数前,先调用函数showdef myAdd(a,b):return a+bdef mySubstract(a,b):return a-bdef myMultiply(a,b):return a*bdef myDivide(a,b):return a/bdef show():print("=====开始=======")show()
print(myAdd(3,4))
show()
print(mySubstract(3,4))
show()
print(myMultiply(3,4))
show()
print(myDivide(3,4))输出结果
=====开始=======
7
=====开始=======
-1
=====开始=======
12
=====开始=======
0.75正版装饰器
#在计算加减乘除前,先输出一个分隔线(=====)
#方案4:使用修饰器完成
# 修饰器,既可以有返回值、也可以没有返回值,他的样式是多种多样的。
# 实现方式: 实际函数名=修饰器函数名(实际函数名)def show(function):def temp(x,y):print("===========")z=function(x,y)return zreturn tempdef myAdd(a,b):return a+bdef mySubstract(a,b):return a-bdef myMultiply(a,b):return a*bdef myDivide(a,b):return a/bmyAdd=show(myAdd)
print(myAdd(3,4))
mySubstract=show(mySubstract)
print(mySubstract(3,4))
myMultiply=show(myMultiply)
print(myMultiply(3,4))
myDivide=show(myDivide)
print(myDivide(3,4))升级一版本
#在计算加减乘除前,先输出一个分隔线(=====)
#方案5:使用修饰器语法糖:@修饰器
# 修饰器,既可以有返回值、也可以没有返回值,他的样式是多种多样的。
# 实现方式: @修饰器函数名        
# 等价于: 实际函数名=修饰器函数名(实际函数名)
# 注意点:位置:实际函数前def show(function):def temp(x,y):print("===========")z=function(x,y)return zreturn temp@show
def myAdd(a,b):return a+b@show
def mySubstract(a,b):return a-b@show
def myMultiply(a,b):return a*b@show
def myDivide(a,b):return a/bprint(myAdd(3,4))
print(mySubstract(3,4))
print(myMultiply(3,4))
print(myDivide(3,4))使用 funx(*args, **kwargs):# 上述过程中,参数的个数是固定的
# 改进:能够适应不同的格式的参数# args,arguments:收集所有位置参数
# kwargs,keyword args:关键字参数(字典等)
def funx(*args, **kwargs):print(args,kwargs)funx(1)
funx(6,李立宗=13602153866)
funx(6,7,87,刘能=99,李立宗=100)
funx(刘能=99,李立宗=100)funx(刘能=99,李立宗=100)# args,arguments:收集所有位置参数
# kwargs,keyword args:关键字参数(字典等)最后一版
#在计算加减乘除前,先输出一个分隔线(=====)
#方案6:使用修饰器完成
# 修饰器,既可以有返回值、也可以没有返回值,他的样式是多种多样的。
# 不同格式的参数,2个或3个,
# 当然,参数个数、类型都是可以多样的
def zhuangshiqi(function):def wrapper(*args,**kwargs):print("============")x=function(*args,**kwargs)return xreturn wrapper@zhuangshiqi
def jiafa(a,b):return a+b
@zhuangshiqi
def jiafa3(a,b,c):return a+b+c
@zhuangshiqi
def jianfa(a,b):return a-b
@zhuangshiqi
def chengfa(a,b):return a*b
@zhuangshiqi
def chufa(a,b):return a/bprint(jiafa(3,5))
print(jiafa3(4,5,6))
print(jianfa(4,5))
print(chengfa(5,6))
print(chufa(4,8))

参考视频

https://edu.csdn.net/learn/35464/529482?spm=3001.4143

相关文章:

飞天使-python的模块与包与装饰器

文章目录 模块与包标准模块第三方模块自定义模块 高级语法切片迭代器/生成器高级模式(闭包)高级模式(装饰器) 参考视频 模块与包 标准模块 import os print(os.getcwd())import sys print(sys.argv) print(sys.platform) print(…...

linux shell脚本利用 kill -0 检查进程是否存在

1.kill -0介绍 kill -0 pid用来检查进程是否存在,kill -0 pid解释(来自man kill):“If sig is 0, then no signal is sent, but error checking is still performed.”不发送任何信号,但是系统会进行错误检查。 kill -0 pid ->若存在&am…...

抖音视频删了怎么在电脑上找回来

【昨天整理电脑文件时,不小心将剪辑好的抖音作品误删了,但是回收站中找不回来了,这些视频是我花了很多心血制作的,如果没了真的十分可惜!希望大家能帮帮我,告诉我应该如何恢复这些文件。】 现在人们都喜欢…...

方面级别情感分析之四元组预测

情感四元组预测现有方法 阅读本文之前我们默认你对情感分析有基本的认识。 如果没有请阅读文章(https://tech.tcl.com/post/646efb5b4ba0e7a6a2da6476) 情感分析四元组预测涉及四个情感元素: 方面术语a,意见术语(也叫观点术语)o, 方面类别ac&#xff0c…...

算法 稀疏数组 数组优化 数组压缩 二维数组转稀疏数组 算法合集(二)

1. 五子棋游戏,玩家对战一半停战休息,此时需要存储当前对战双方棋子信息 a. 采用二维数组存储: 0为空, 1代表黑棋 2代表蓝色棋子 b. 棋盘为11行,11列 > int [][] chessArray new int [11][11]; c. 出现的问题&am…...

交换机端口安全实验

文章目录 一、实验的背景与目的二、实验拓扑三、实验需求四、实验解法1. PC配置IP地址部分2. 在SW1上开启802.1X身份验证3. 创建一个用户身份验证的用户。用户名为wangdaye,密码为1234564.创建一个端口隔离组,实现三台PC无法互相访问 摘要: 本…...

c# 本地化中英文切换

区域 线程默认区域为当前计算机所选区域 设置当前区域: Thread.CurrentThread.CurrentCulture new CultureInfo(“zh-cn”); 获取当前区域: Console.WriteLine(Thread.CurrentThread.CurrentCulture.ToString()); 区域名称: “zh-cn” 中文…...

rabbitmq的优先级队列

在我们系统中有一个 订单催付 的场景,我们的客户在天猫下的订单 , 淘宝会及时将订单推送给我们,如果在用户设定的时间内未付款那么就会给用户推送一条短信提醒,很简单的一个功能对吧,但是,tianmao商家对我们来说&#…...

SpringBoot的Cacheable缓存注解

当我们的应用程序需要频繁地读取和写入数据时,为了提高应用程序的性能,我们通常会使用缓存技术。Spring Boot 提供了一种简单而强大的缓存框架,它可以轻松地将数据缓存到 Redis 中。 在 Spring Boot 中可以在方法上简单的加上注解实现缓存。…...

uniapp的 picker 日期时间选择器

效果图&#xff1a; dateTimePicker.js function withData(param){return param < 10 ? 0 param : param; } function getLoopArray(start,end){var start start || 0;var end end || 1;var array [];for (var i start; i < end; i) {array.push(withData(i))…...

element ui-Pagination

页面分为两个表格&#xff0c;当两边的表格数据量大时&#xff0c;分页样式就会受到影响&#xff0c;可以将跳转按钮的个数减少 页面分页代码如下 页面效果...

[开发|java] 将数组使用环境变量传递配置给typesafe配置示例

参考文献 如何将一组值作为环境变量提供给 typesafe/lightbend 配置 示例 假设需要如下配置要设置环境传递 whitlist [/oauth/render,/oauth/callback]需要使用如下的方式传递到 conf 文件中: whitlist [] whitlist.0 /oauth/render whitlist.1 /oauth/render...

MAC苹果电脑如何压缩rar文件?

作为开发者&#xff0c;想必主力开发机肯定都以苹果的MacBook为主&#xff0c;究其原因&#xff0c;为非是因为其对开发者的友好性&#xff0c;且可同时进行iOS 以及android的app开发&#xff0c;但是windows在这方面就欠缺太多了&#xff0c;虽然很多人说可以使用&#xff0c;…...

浅析编程中的语法糖

1、理解语法糖 1.1.什么是语法糖&#xff1f; 语法糖是一种编程语言的特性&#xff0c;它并不引入新功能&#xff0c;而是通过提供更简洁、易读的语法形式&#xff0c;使代码编写和理解变得更加轻松。它有点像是一种“甜蜜”的语法&#xff0c;让我们在不改变底层逻辑的情况下…...

【【萌新的STM32学习23----数据通信的基本类型】】

萌新的STM32学习23----数据通信的基本类型 数据通信的基本概念 数据通信方式可以分为串行通信&#xff0c;并行通信 串行通信&#xff1a; 数据逐位按顺序依次传输 并行&#xff1a; 数据各位通过多条线同时传输 串行通信&#xff1a; 传输效率低&#xff0c;抗干扰能力强&am…...

标准库STL容器使用值语义

C自学精简实践教程 目录(必读) 标准库STL的容器都是值语义的。 即&#xff0c;无法将一个变量放到容器里。容器里存放的只是我们放进去的变量的拷贝&#xff08;副本&#xff09;。 示例&#xff1a; #include <iostream> #include <vector> using namespace s…...

dockerfile 命令详解(三)

CMD 和 ENTRYPOINT 区别 CMD #指定这个容器启动的时候要运行的命令&#xff0c;只有最后一个会生效&#xff0c;可被替代 ENTRYPOINT #指定这个容器启动的时候要运行的命令&#xff0c;可以追加命令 FROM #基础镜像&#xff0c;一切从这里开始构建 MAINTAINER #…...

使用这个插件,fiddler抓包直接生成httprunner脚本

har2case可以将.har文件转化成yaml格式或者json格式的httprunner的脚本文件&#xff0c;生成.har格式文件可以借助 fiddler 或 Charles 抓包工具 友情提示&#xff1a; 录制脚本&#xff0c;只是一个过渡&#xff0c;从0到1的一个过渡&#xff0c;如果让你直接写脚本&#xf…...

干翻Dubbo系列第十五篇:Rest协议基于SpringBoot的规范化开发

文章目录 文章说明 一&#xff1a;Rest协议简介 二&#xff1a;搭建开发环境 1&#xff1a;父项目里边引入的新的版本内容 2&#xff1a;Api中的操作 3&#xff1a;Provider模块 三&#xff1a;编码 1&#xff1a;API模块 2&#xff1a;Provider模块 3&#xff1a;Co…...

文件上传后端处理页面

最近想搭建一个完整的网站&#xff0c;加深理解&#xff0c;困难重重啊&#xff0c;遇到很多问题 前端&#xff1a;非常原始的代码&#xff0c;没有用任何框架 <form method"post" enctype"multipart/form-data" action"upfile.php"><…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...