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])
- 范围内的数字称为小整数
- 这个范围称为小整数对象池
>>> 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中为了知道引用我当前对象变量的个数,在每一个对象当中会存在一块小小的空间,里面存放着引用计数
优点:
- 简单
- 实时性
缺点:
- 消耗内存(循环引用的话计数永远不为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模块 概述:Python 的 sys 模块提供访问解释器使用或维护的变量,和与解释器进行交互的函数。通俗来讲,sys 模块为程序与 Python 解释器的交互,提供了一系列的函数和变量,用于操控 Python 运行时的环境…...
DBA笔记(1)
目录 1、rpm yum 命令的使用,参数的含义 rpm命令: yum命令: 2、上传镜像至虚拟机搭建本地yum源 3、chown chomd 命令每一个参数的含义 chown命令: chmod命令: 4、fdisk partd 硬盘分区命令用法 fdisk命令&am…...
C++设计模式_15_Proxy 代理模式
Proxy 代理模式也是属于“接口隔离”模式,通过增加一层间接层来解决问题的模式。 文章目录 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(*)1.3 HTML(*)1.4 XML1.5 文件(*) 2 请求2.1 请求参数查询参数 (Query)动态参数 (Param)表单参数 (PostForm)原始参数 (GetRawData) 2.2 请求头2.3 …...
【多线程面试题十】、说一说notify()、notifyAll()的区别
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:说一说notify()、notify…...
【Element UI】解决 el-button 禁用状态下,el-tooltip 提示不生效问题
文章目录 问题描述解决方法 问题描述 关键代码: <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条路线在迈向去中心化: planningimplementation 以让Starknet协议 走向 去中心化proof-of-stake协议。 Starknet向以太坊发送STARK proofs来验证其状态变更。 一年前Starknet就在做去中心化规划,相关提案见: Sim…...
python基础语法(十二)
目录 标准库认识标准库使用 import 导入模块代码示例: 字符串操作剑指offer 58, 翻转单词顺序题目题目做法代码 leetcode 796, 旋转字符串题目题目做法 leetcode 2255, 统计是给定字符串前缀的字符串数目题目题目做法 代码示例: 文件查找工具 感谢各位大佬对我的支持,如果我的文…...
【开源】基于SpringBoot的农村物流配送系统的设计和实现
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理:2.2.2 位置信息管理:2.2.3 配送人员分配:2.2.4 路线规划:2.2.5 个人中心:2.2.6 退换快递处理:…...
【2024秋招】2023-9-16 贝壳后端开发一面
1 秒杀系统 1.1 如何抗住高并发 1.2 数据一致性你是怎么处理,根据场景来说明你的设计思路 1.3 你们当时系统的架构是怎么样的 秒杀表做节点隔离, 1.4 为了保证数据一致性,引入了redission的锁,你是为了抗住高并发而去为了引入…...
BI是什么?想要了解BI需要从哪些方面入手?
企业为了执行数字化战略,实行数字化转型,实现数据价值,除了需要相关数字化技术及理念、人才等,还需要借助数字化相关应用,例如商业世界中广受企业欢迎的ERP、OA、CRM等业务信息系统,以及上升势头非常迅猛的…...
软件测试---等价类划分(功能测试)
能对穷举场景设计测试点-----等价类划分 等价类划分 说明:在所有测试数据中,具有某种共同特征的数据集合进行划分分类: 1)有效等价类 2)无效等价类步骤:1)明确需求 2)确定有效和无…...
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 …...
方太描画未来厨房的模样
作者 | 辰纹 来源 | 洞见新研社 不知不觉中,iPhone已经更新到15代了,家里的电视变成了越来越轻薄的液晶屏,过去被称为“老三样”的富康,捷达、桑塔纳,如今也被以特斯拉为代表的新能源智能汽车们所取代…… 类似以上的…...
ELASTICO-A Secure Sharding Protocol For Open Blockchains
INTRO 在中本聪共识中,通过POW机制来公平的选举leader,不仅非常消耗power,并且拓展性也不好。现在比特币中是7 TPS,和其他的支付系统相比效率相差甚远。 当前的许多拜占庭共识协议,并不支持在一个开放的环境中使用&a…...
【数据结构】Map和Set
⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈数据结构 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 Map、Set 1. 搜索树1.1 概念1.2 性能…...
Python Flask
Python Flask是一个轻量级的web开发框架,用于快速地构建web应用程序。以下是Python Flask的基本使用步骤: 安装Flask:使用pip安装Flask包。在命令行中输入以下命令: pip install flask创建Flask对象:在Python文件中&am…...
时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测
时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测 目录 时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Python实现ARIM…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
2025.6.9总结(利与弊)
凡事都有两面性。在大厂上班也不例外。今天找开发定位问题,从一个接口人不断溯源到另一个 接口人。有时候,不知道是谁的责任填。将工作内容分的很细,每个人负责其中的一小块。我清楚的意识到,自己就是个可以随时替换的螺丝钉&…...
