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

Day 12 python学习笔记

模块


内置模块

sys模块

概述:Python 的 sys 模块提供访问解释器使用或维护的变量,和与解释器进行交互的函数。通俗来讲,sys 模块为程序与 Python 解释器的交互,提供了一系列的函数和变量,用于操控 Python 运行时的环境

sys.argv 

sys.argv :实现从程序外部向程序传递参数

sys.argv 变量是一个包含了命令行参数的字符串列表,利用命令行向程序传递参数。其中,脚本的名称总是 sys.argv 列表的第一个参数。

import sys
print(sys.argv[0])   #sys.argv[0]表示代码本身的文件路径
print("命令行参数如下:")
for i in sys.argv:print(i)命令行输入参数如下:
D:\st13\python\1.20\python lx.py Welcome to Xian运行结果:
lx.py                #sys.argv[0]
命令行参数如下:
lx.py
Welcome
to
Xian

sys.copyright

sys.copyright           包含 Python 解释器有关的版权信息的字符串

>>> import sys
>>> sys.copyright
'Copyright (c) 2001-2022 Python Software Foundation.\nAll Rights Reserved
.\n\nCopyright (c) 2000 BeOpen.com.\nAll Rights Reserved
.\n\nCopyright (c) 1995-2001 Corporation for National Research Initiatives
.\nAll Rights Reserved.\n\nCopyright (c) 1991-1995 Stichting 
Mathematisch Centrum, Amsterdam.\nAll Rights Reserved.'
>>>

sys.exit([arg])  

sys.exit([arg])  : 一般情况下执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用 sys.exit() 函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对 sys.exit() 的调用。(0是正常退出,其他为异常)当然也可以用字符串参数,表示错误不成功的报错信息。

下面的例子,首先打印 'Hello',执行完 sys.exit(1),执行 except 语句,将 '中途退出' 作为参数传递给函数 exitfunc(),然后将 '中途退出' 打印出来,程序正常退出,不执行后面的 print("Welcome") 语句

import sys
def exitfunc(value):print(value)sys.exit(0)
print("Hello")
try:sys.exit(1)
except SystemExit as value:exitfunc('中途退出')   
print("Welcome")运行结果:
Hello
中途退出

或者在终端上退出python解释器

>>> sys.exit()C:\Users\朱俊杰>

sys.getrecursionlimit()

  • 返回当前递归的限制也就是Python解释器堆栈最大深度的值。
  • 该限制可防止无限递归导致C堆栈溢出和Python崩溃。它可以通过setrecursionlimit()设置。
>>> sys.getrecursionlimit()
1000

sys.setrecursionlimit(<limit>)

  • 设置Python解释器的堆栈最大深度为<limit>。

  • 该限制可防止无限递归导致C堆栈溢出和Python崩溃。

  • 最高可能的限制取决于平台

>>> sys.setrecursionlimit(2000)
>>> sys.getrecursionlimit()
2000

sys.getrefcount(<object>)

  • 获取引用数量 引用计数的精确分析可能受到一些内部因素的影响,通常情况下你只需要关注相对引用的变化,而不必过于关注具体的引用次数。
  • 返回<object>的引用次数。
  • 引用次数会比期望值值多一个,因为它包含getrefcount()参数的临时引用。
>>> class Test():
>>>     pass
>>> t = Test()
>>> sys.getrefcount(t)  # t本身是Test,所以被引用了一次。      
2

引出:

小整数对象池:python为了让程序简单化,运行更加迅速,在python解释器加载的那一刻将一些常用的数字创建好(范围:[-5,256])

  1. 范围内的数字称为小整数
  2. 这个范围称为小整数对象池
>>> a = [1,2,3,4]
>>> b = [1,2,3,4]
>>> id(a)
2312403015936
>>> id(b)
2312403230080    #尽管内容相同,但不同变量地址不同
>>> c = 5
>>> d = 5
>>> id(c)
2312401846640
>>> id(d)
2312401846640   #证明5是小整数对象池里的(常用)
>>> e = -10
>>> f = -10
>>> id(e)
2312402870448
>>> id(f)
2312402870704   #证明-10不是小整数对象池里的(不常用)
>>>

字符串驻留机制(Intern机制):创建普通字符串(不含空格等特殊字符)时打开,不重复创建字符串地址

>>> a = "love"
>>> b = "love"   #普通字符串
>>> id(a)
2312403517808
>>> id(b)
2312403517808
>>> c = "l love you"
>>> d = "l love you"  #字符串内含空格等特殊字符,不开启字符串驻留机制
>>> id(c)
2312403517872
>>> id(d)
2312403517936
>>>

引用计数机制:python中为了知道引用我当前对象变量的个数,在每一个对象当中会存在一块小小的空间,里面存放着引用计数

优点:

  1. 简单
  2. 实时性

缺点:

  1. 消耗内存(循环引用的话计数永远不为0,即不会释放)
例:
[1,2,3]   空间存在一个数据
引用计数机制开辟一个小空间记录这个数据被引用的次数
[1,2,3]   0(被引用次数为0)
a = [1,2,3]   1(被引用一次)
b = a         2(被引用两次)
b = None      1(被引用一次,切断了b的引用)
a = None      0(没有被引用,切断了a的引用)
当引用计数为0时,证明没人使用,python解释器就会将数据释放出来

计算机垃圾回收机制:代码在内存中运行,函数等会进行弹栈进行内存释放,那么堆如何进行内存释放呢?
java、python、c++不需要程序员自行回收机制,因为对程序员的要求太高,提供复杂的回收算法,其中引用计时法(解决80%问题,缺点,循环引用)看内存有无被其他内存引用,别人指向我,我有用。
循环引用会出现问题------出现标记、清除算法。

sys.path

sys.path:获取指定模块搜索路径的目录名列表,列表中的第一项为当前的工作目录

import sys
print(sys.path)运行结果:
['D:\\st13\\python\\1.20', 'C:\\Python36\\python36.zip', 
'C:\\Python36\\DLLs', 'C:\\Python36\\lib', 'C:\\Python36', 
'C:\\Python36\\lib\\site-packages']

sys.getsizeof(<object>, <default>)

  • 返回<object>的大小。
  • 以字节为单位。
>>> class Test():
>>>     pass
>>> t = Test()
>>> sys.getsizeof(t)
64

sys.hash_info

  • 一个包含哈希参数的元祖。
  • 返回的属性包含:
>>>sys.hash_info
sys.hash_info(width=64, modulus=2305843009213693951, inf=314159, 
nan=0, imag=1000003, algorithm='siphash24', hash_bits=64, 
seed_bits=128, cutoff=0)

time模块

 time.time( )

time.time( ) :返回当前时间的时间戳

#时间戳:指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数

import time
print(time.time())
# 1596760621.3079221

time.ctime([secs])

time.ctime([secs]):返回当前时间

把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数

>>> time.ctime()
'Sun Oct 29 18:26:36 2023'
>>>

time.localtime([secs])

time.localtime([secs]):将一个时间戳转换为当前时区的struct_time(结果为元组)

import time
print(time.localtime())结果:
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=7, tm_hour=8, 
tm_min=38, tm_sec=57, tm_wday=4, tm_yday=220, tm_isdst=0)

time.strftime(格式,时间元组)

time.strftime(格式,时间元组) :将时间元组换一种格式(时间字符串)打印出来

如果时间元组未指定,则默认传入time.localtime()

%Y   四位的年

%y   两位的年

%m  月

%d   日

%H   时

%M  分

%S  秒

%X = %H:%M:%S

例:打印格式为:2023/10/21   11:11:11
>>> time.strftime("%Y/%m/%d %H:%M:%S",time.localtime())
'2023/10/29 18:39:57'
>>>
>>> time.strftime("%Y/%m/%d %H:%M:%S")  
'2023/10/29 18:42:09'
>>>

time.strptime(string[, format])

time.strptime(string[, format]): 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。在这个函数中,format默认为:"%a %b %d %H:%M:%S %Y" 

time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X')  #要一一对应
Output: time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, 
tm_hour=16, tm_min=37, tm_sec=6, tm_wday=3, tm_yday=125, tm_isdst=-1)

time.mktime(t)

time.mktime(t):将一个struct_time(时间元组)转化为时间戳

time.mktime(time.localtime())
#Output: 1634864031.0

time.sleep(secs)

time.sleep(secs):线程推迟指定的时间运行。单位为秒

import time
time.sleep(2)
print("我执行了...")
# 线程推迟2秒后执行

datetime模块

datetime.datetime模块

datetime.now( )

datetime.now( ) :返回当前时间(注意这是datetime.datetime里的方法)

>>> import datetime
>>> datetime.now()
Traceback (most recent call last):File "<stdin>", line 1, in <module>
AttributeError: module 'datetime' has no attribute 'now'
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2023, 10, 29, 18, 58, 18, 486190)
>>>

相关文章:

Day 12 python学习笔记

模块 内置模块 sys模块 概述&#xff1a;Python 的 sys 模块提供访问解释器使用或维护的变量&#xff0c;和与解释器进行交互的函数。通俗来讲&#xff0c;sys 模块为程序与 Python 解释器的交互&#xff0c;提供了一系列的函数和变量&#xff0c;用于操控 Python 运行时的环境…...

DBA笔记(1)

目录 1、rpm yum 命令的使用&#xff0c;参数的含义 rpm命令&#xff1a; yum命令&#xff1a; 2、上传镜像至虚拟机搭建本地yum源 3、chown chomd 命令每一个参数的含义 chown命令&#xff1a; chmod命令&#xff1a; 4、fdisk partd 硬盘分区命令用法 fdisk命令&am…...

C++设计模式_15_Proxy 代理模式

Proxy 代理模式也是属于“接口隔离”模式&#xff0c;通过增加一层间接层来解决问题的模式。 文章目录 1. 动机( Motivation)2. 模式定义3. 结构( Structure )4. 代码演示Proxy 代理模式4.1 常规方法4.2 Proxy 代理模式 5. 要点总结6. 其他参考 1. 动机( Motivation) 在面向对…...

Go学习第十四章——Gin请求与响应

Go web框架——Gin请求与响应 1 响应1.1 String1.2 JSON&#xff08;*&#xff09;1.3 HTML&#xff08;*&#xff09;1.4 XML1.5 文件&#xff08;*&#xff09; 2 请求2.1 请求参数查询参数 (Query)动态参数 (Param)表单参数 (PostForm)原始参数 (GetRawData) 2.2 请求头2.3 …...

【多线程面试题十】、说一说notify()、notifyAll()的区别

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;说一说notify()、notify…...

【Element UI】解决 el-button 禁用状态下,el-tooltip 提示不生效问题

文章目录 问题描述解决方法 问题描述 关键代码&#xff1a; <el-tooltipcontent"一段提示内容"placement"bottom"effect"light":disabled"count > 100" ><el-buttontype"text"class"dl-button":dis…...

C++单元测试GoogleTest和GoogleMock十分钟快速上手(gtestgmock)

C单元测试GoogleTest和GoogleMock(gtest&gmock) 环境准备 下载 git clone https://github.com/google/googletest.git # 或者 wget https://github.com/google/googletest/releases/tag/release-1.11.0安装 cd googletest cmake CMakeLists.txt make sudo make instal…...

Starknet的去中心化路线图

1. 引言 StarkWare正以2条路线在迈向去中心化&#xff1a; planningimplementation 以让Starknet协议 走向 去中心化proof-of-stake协议。 Starknet向以太坊发送STARK proofs来验证其状态变更。 一年前Starknet就在做去中心化规划&#xff0c;相关提案见&#xff1a; Sim…...

python基础语法(十二)

目录 标准库认识标准库使用 import 导入模块代码示例: 字符串操作剑指offer 58, 翻转单词顺序题目题目做法代码 leetcode 796, 旋转字符串题目题目做法 leetcode 2255, 统计是给定字符串前缀的字符串数目题目题目做法 代码示例: 文件查找工具 感谢各位大佬对我的支持,如果我的文…...

【开源】基于SpringBoot的农村物流配送系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理&#xff1a;2.2.2 位置信息管理&#xff1a;2.2.3 配送人员分配&#xff1a;2.2.4 路线规划&#xff1a;2.2.5 个人中心&#xff1a;2.2.6 退换快递处理&#xff1a;…...

【2024秋招】2023-9-16 贝壳后端开发一面

1 秒杀系统 1.1 如何抗住高并发 1.2 数据一致性你是怎么处理&#xff0c;根据场景来说明你的设计思路 1.3 你们当时系统的架构是怎么样的 秒杀表做节点隔离&#xff0c; 1.4 为了保证数据一致性&#xff0c;引入了redission的锁&#xff0c;你是为了抗住高并发而去为了引入…...

BI是什么?想要了解BI需要从哪些方面入手?

企业为了执行数字化战略&#xff0c;实行数字化转型&#xff0c;实现数据价值&#xff0c;除了需要相关数字化技术及理念、人才等&#xff0c;还需要借助数字化相关应用&#xff0c;例如商业世界中广受企业欢迎的ERP、OA、CRM等业务信息系统&#xff0c;以及上升势头非常迅猛的…...

软件测试---等价类划分(功能测试)

能对穷举场景设计测试点-----等价类划分 等价类划分 说明&#xff1a;在所有测试数据中&#xff0c;具有某种共同特征的数据集合进行划分分类&#xff1a; 1&#xff09;有效等价类 2&#xff09;无效等价类步骤&#xff1a;1&#xff09;明确需求 2&#xff09;确定有效和无…...

javascript原生态xhr上传多个图片,可预览和修改上传图片为固定尺寸比例,防恶意代码,加后端php处理图片

//前端上传文件 <!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml" lang"UTF-8"></html> <html><head><meta http-equiv"Content-Type" content"text/html;charsetUTF-8;"/><title…...

【Java】Map集合中常用方法

Map集合的常用方法 方法名称作用V put(Key k,V value)添加元素V remove(K key, V value)根据键值删除对应的值void clear()清除所有键值元素boolean containsKey(Object key)判断集合中是否包含指定的键boolean containsValue(Object value)判断集合中是否包含指定的值boolean …...

方太描画未来厨房的模样

作者 | 辰纹 来源 | 洞见新研社 不知不觉中&#xff0c;iPhone已经更新到15代了&#xff0c;家里的电视变成了越来越轻薄的液晶屏&#xff0c;过去被称为“老三样”的富康&#xff0c;捷达、桑塔纳&#xff0c;如今也被以特斯拉为代表的新能源智能汽车们所取代…… 类似以上的…...

ELASTICO-A Secure Sharding Protocol For Open Blockchains

INTRO 在中本聪共识中&#xff0c;通过POW机制来公平的选举leader&#xff0c;不仅非常消耗power&#xff0c;并且拓展性也不好。现在比特币中是7 TPS&#xff0c;和其他的支付系统相比效率相差甚远。 当前的许多拜占庭共识协议&#xff0c;并不支持在一个开放的环境中使用&a…...

【数据结构】Map和Set

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈数据结构 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; Map、Set 1. 搜索树1.1 概念1.2 性能…...

Python Flask

Python Flask是一个轻量级的web开发框架&#xff0c;用于快速地构建web应用程序。以下是Python Flask的基本使用步骤&#xff1a; 安装Flask&#xff1a;使用pip安装Flask包。在命令行中输入以下命令&#xff1a; pip install flask创建Flask对象&#xff1a;在Python文件中&am…...

时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测

时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测 目录 时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Python实现ARIM…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...