
python
文章平均质量分 61
一心月
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python 字符 大小写分析
l=[]u=[]for i in range(0,0x110000): c=chr(i) if c.islower():l.append(c) elif c.isupper():u.append(c)for c in l: if len(c.swapcase())!=1:print(c,c.encode('ascii',errors='namereplace')) ß b'\\N{LATIN SMALL LETTER SHARP S}'ʼn b'\\N{LA原创 2021-05-27 22:57:41 · 474 阅读 · 0 评论 -
Python方法与函数的区别
方法是类内置的函数,与类相关联,无法单独调用,调用时通常都引用了类的一些属性方法和函数都是人对其定义的概念,用于人对其功能的区分,并不会真的对使用有什么影响类内置的方法必定要与类相关联,不然调用时会报错type(str.__add__)Out[1]: wrapper_descriptor # 封装_描述符type(str.find)Out[2]: method_descriptor # 方法_描述符type('abc'.find)Out[3]: builtin_function_or_m原创 2021-05-15 20:11:44 · 4197 阅读 · 0 评论 -
python 遍历的同时,删除列表指定元素的方法
l=os.listdir() # 文件来自于vivo的阅图锁屏,其中有重复的四张图片,好在文件名就能找到规律,不需要再对文件本身进行分析,例如hash或sizel=['PictureUnlock_general_operation_na_1222.pictureunlock.jpg', 'PictureUnlock_general_operation_na_1226.pictureunlock.jpg', 'PictureUnlock_general_operation_na_1233_user0.原创 2021-03-21 13:57:32 · 1648 阅读 · 0 评论 -
python按照尺寸筛选适合做壁纸的图片
思路很简单,过程很波折1、找到需要的库和方法:目录设置、文件读取、尺寸获取、文件移动2、debug:文件排除,文件读取错误等import os,shutilfrom PIL import Imagel=l1=os.listdir() # listdir可以读取到子目录和隐藏文件等,于是使用下面的集合推到式过滤出后缀名,这是之后的,之前还或其了ini,通过后缀名过滤掉不需要的文件名/目录名,其实只有两个,一个是子目录,一个是隐藏的ini文件{i.split('.')[1] for i in l原创 2021-03-21 11:19:37 · 479 阅读 · 0 评论 -
【连载】笨办法学Python3 笔记
换换书,缓解下心态,当然我更建议是两本不一样类型的书同步进度,例如我看完一本书或看了大半再看这本,完全变成回顾和补全,而非同步互补,一下是我之前学习中很少见的或没见过的用法和理念!练习2 注释和井号倒着读文件,是一个让你的大脑不专注于每行代码意思的小技巧,这样做能够让你更准确地检查出错误,可以说是一个很好用的纠错技巧了。练习3 数字和数学运算顺序是怎样的? 在美国我们遵循 PEMDAS 规则,即“括号,指数,乘,除,加,减(Parentheses Exponents Multiplication D转载 2021-03-18 10:15:02 · 167 阅读 · 0 评论 -
[待]limit_denominator算法
在看Fraction的时候,看到了limit_denominator的方法,很感兴趣!按照概念写一个代码是很简单的,暴力的从头到尾,但是应该还有优化的空间!全文还不完善,可以当作抛砖引玉,毕竟如果深度的优化,会涉及高数的知识,玩不起~日后会陆续完善!Fraction('3.141592653589793').limit_denominator(1000)Out[52]: Fraction(355, 113)从图上看到的结果是周期性,但是你不能确定一个周期的谷底是整个范围的谷底,我目前还没研究原创 2021-03-11 23:44:14 · 2400 阅读 · 0 评论 -
将Python脚本放置在任务栏
偶尔写几个小脚本,处理字符串。第一个小鸟是之前忘了用什么打包的exe了。但突然想到之前jupyter,可以在程序后带命令,于是这样写了!而且还可以将运行方式最小化,这样很方便用win+数字的方式快速启动了!...原创 2021-03-10 09:06:17 · 652 阅读 · 0 评论 -
Python 运算符优先级
整理自《Python学习手册 第五版》147p优先级从上至下,依此增加运算符描述yield , lambda函数组成部分x if y else z三元表达式x or y , x and y逻辑与,逻辑非not x逻辑或(一元表达式)x in y , x not in yx is y , x is not yx<y , x<=y , x>y , x>=y , x==y , x!=y成员关系,y是容器,x不能是表达式对象同一性测试原创 2021-03-07 09:50:38 · 1491 阅读 · 0 评论 -
Python ctypes内存读取技巧
因为很喜欢看内存里面的变量结构,所以早早的接触了这个库,今天查到另一种用法,所以整理下!读取内存中,变量的内容ctypes.string_at(ptr, size=-1)获取内存中,指定地址、指定长度的字节,默认只获得一个字节ctypes.string_at(id(a),sys.getsizeof(a))因为Python变量的前16个字节固定显示(未知 types),从后面开始才是数据内容。所以可以略过前16个字节。判断内存地址的变量内容ctypes.cast(obj, typ)ctypes原创 2021-03-04 16:48:41 · 4660 阅读 · 1 评论 -
IPython使用技巧
此篇未纯IPython使用技巧,而非Jupyter,因为我喜欢简单。IPython教程快捷键Ctrl-o 输入多行语句块原创 2021-03-04 00:04:19 · 226 阅读 · 1 评论 -
IPython、Jupyter 简单教程
内容精简自《利用Python进行数据分析·第2版》第2章 Python语法基础,IPython和Jupyter Notebooks有一些来自其他地方的收集整理!适用于IPython shell和Jupyter QtConsoleIPython,一个强化的 Python 解释器,或 Jupyter notebooks,一个网页代码笔记本,它原先是 IPython 的一个子项目。notebook 是 Jupyter 项目的重要组件之一,它是一个代码、文本(有标记或无标记)、数据可视化或其它输出的交互式文档原创 2021-03-03 08:55:32 · 997 阅读 · 1 评论 -
Python 书籍整理 ~随缘更新,欢迎荐书~
暂时这些,其他的之后有时间再说最受推荐的10本Python书籍7本Python必读的入门书籍学 Python 必看书单汇总不可错过的十本Python好书想学python 这5本书籍你必看!书名 豆瓣 总结从简单了解到应用:《零基础入门学习Python》8.7分 118人 小甲鱼的Python书《Python编程从入门到实践》9.1 3568入门:《Python基础教程(第3版)》8.0 1797 简洁,丰富,明确,居然有对取模运算的解释,喜欢精髓、快节奏、对知识渴求的推原创 2021-02-28 10:42:00 · 472 阅读 · 2 评论 -
Python %取模小故事
以前,有个地方,这里住着东之人和西之人,东之人只能往东走,西之人只能往西走。好在这个地方有公共马车,可以搭载他们向东和向西走。例如一个东之人,要向他东边4公里的一个地方,马车每隔3公里可以停一下,于是他坐车到3公里处下车,再向东走了一公里。divmod(4,3)(1, 1)而一个西之人,也是要到东边4公里的地方,但是因为他只能往西走,所以他必须坐车经过目的地,在下一站即6公里处下车,此时他做了2站,然后向此时位于他西边的目的地走2公里。divmod(4,-3)(-2, -2)一个东之人向西4公原创 2021-02-27 19:20:30 · 246 阅读 · 1 评论 -
python(x,y) 组件一览,轻量级IPython界面推荐jupyter-qtconsole、ConEmu
ConsoleZ:没有中文,很久没更新,输入行会置顶,放弃cmder:据说很棒,装上了,分享下,还没开始用链接:https://pan.baidu.com/s/1quLNfyzC4Uckih3my_03PQ 提取码:k0roConEmuSetup:有中文,迅雷下载这个链接,很快https://download.fosshub.com/Protected/expiretime=1614381909;badurl=aHR0cHM6Ly93d3cuZm9zc2h1Yi5jb20vQ29uRW11Lmh0b原创 2021-02-26 17:52:47 · 796 阅读 · 0 评论 -
Python 二进制相关操作
10<<10 # 15.2 ns 仅整数b'\x5f'.hex() # 111 ns'香香香'.encode() # 139 ns 仅字符串binascii.b2a_hex(b'\xb9\x01\xef') # 172 ns 仅字符串struct.pack('>i',65535) # 211 ns 仅符合C语言标准结构int('101',8) # 224 nsbytes.fromhex('ff ff ff') # 231 ns 仅hex字符int.to_bytes(1111,原创 2021-02-26 12:19:35 · 482 阅读 · 0 评论 -
Python 对于不可变类型的分析
不可变类型没有可变的方法如题,那么为什么,因为不可变类型恰恰是Python的核心类型中的核心类型!例如数字、字符串,可以说其他所有的类型都是基于这类不可变类型之上的。而元组,是为了安全,而将一个可变类型的列表去掉可变的方法,在一些严格的环境下应用。因为方法少,所以效率高,因为不可变,所以安全。Python的变量机制1、生成变量内容2、在区域内写入变量名称和对应的地址所以是先有内容,再有变量,当变量被重新赋值时:1、生成新的变量内容2、将区域内变量名称对应的地址用新的变量内容的地址覆盖3原创 2021-02-24 17:50:45 · 171 阅读 · 0 评论 -
Python 内置方法、类型 小归纳
参考:Python学习笔记 (2)变量、常量和数据类型dir(__builtin__)Out[24]: ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'C原创 2021-02-23 18:36:57 · 289 阅读 · 1 评论 -
Python Decimal的内存结构
import ctypes,decimal# for i in range(0x8000000000000000,0x8fffffffffffffff):# d=decimal.Decimal(i)# if i.to_bytes(length=8, byteorder='little')!=ctypes.string_at(id(d)+72,8):breakt=i=s=0x8ac7200000000000sep=0x100000000000while 1: for .原创 2021-02-23 12:49:07 · 358 阅读 · 0 评论 -
Python 探索set集合的算法 貌似看出苗头了
import ctypes,randomdef setdata(): lens=int.from_bytes(ctypes.string_at(id(set1)+32,8),byteorder='little')+1 addr=int.from_bytes(ctypes.string_at(id(set1)+40,8),byteorder='little') l=[] for i in range(lens): if ctypes.string_at(a原创 2021-02-22 21:55:37 · 132 阅读 · 0 评论 -
Python 转义字符
inputreprprinthexName名称应用\"""22Quotation Mark引号\’’’27Apostrophe撇号\N---\N{name}字符按照unicode name显示字符\U---\UXXXXXXXX字符Unicode : 0XFFF~0X110000\\\\\2FSolidus斜线号\a\x07-7同\7同\7\b\x08-8Backs...原创 2021-02-19 12:26:21 · 3624 阅读 · 0 评论 -
Python 转义字符namereplace \N{...} Unicode全支持代码
# -*- coding: utf-8 -*-"""Created on Fri Feb 19 11:35:04 2021@author: Jone"""import red={'\x00': 'NULL', '\x01': 'START OF HEADING', '\x02': 'START OF TEXT', '\x03': 'END OF TEXT', '\x04': 'END OF TRANSMISSION', '\x05': 'ENQUIRY', '\x06': 'AC原创 2021-02-19 12:25:29 · 565 阅读 · 1 评论 -
Python 推导式的内存变化
import time,os,psutilpid=os.getpid()m1=psutil.Process(pid).memory_info().rssprint('内存占用:%.2f MB'%(m1/1024/1024))t1=time.time()s=' '*2**20*100t2=time.time()m2=psutil.Process(pid).memory_info().rssprint("s=' '*2**20*100\n耗时:%f秒\n变量:%f MB"%(t2-t1,(m2.原创 2021-02-13 23:26:31 · 174 阅读 · 0 评论 -
Python 截取字符串的效率对比
l[i]'0000—007F'l[i][:l[i].index('—')] # 464 nsl[i][:l[i].find('—')] # 468 nsre.match('(.*)—',l[i]).group(1) # 1.92 µsre.search('(.*)—',l[i]).group(1) # 2.09 µsre.findall('(.*)—',l[i])[0] # 2.88 µs我想使用后面的数减去前面的数…再加一,就是这个字符集子集所包含字符的数量,准确的说是所占数量。毕竟一原创 2021-02-11 11:13:33 · 321 阅读 · 0 评论 -
Python 正则 findall 多规则匹配问题 结果是元组 解决过程
举例:s='123456're.findall('1(.)3|4(.)6',s1)Out[135]: [('2', ''), ('', '5')]re.findall('1|4(.)3|6',s1)Out[136]: ['', '']re.findall('(?:1|4)(.)(?:3|6)',s1)Out[137]: ['2', '5']re.findall('(?:1|4).(?:3|6)',s1)Out[138]: ['123', '456']re.findall('(?原创 2021-02-11 10:40:40 · 2334 阅读 · 2 评论 -
Python 查看支持的字符编码
参考:如何以编程方式查找Python已知的编解码器列表?import encodingsimport osimport pkgutilmodnames=set([modname for importer, modname, ispkg in pkgutil.walk_packages( path=[os.path.dirname(encodings.__file__)], prefix='')])aliases=set(encodings.aliases.aliases.values()原创 2021-02-10 17:08:23 · 2865 阅读 · 0 评论 -
Python 函数扁平化管理,第一次画程序结构图的心得
软件:dia这是我昨天画的图,其实完成了绝大多数的功能,但是因为都是关于unicode字符集的功能,所以想写到一个文件中,但是今天写的时候,发现真难将各个模块关联好,于是否决了这个结构图。其实流程图是可以随意画的,怎么想怎么画,但只适用于一个函数内。当把多个功能集合在一块时,第一次画图和第一次整合的我,发现这个和流程图不一样,所以我称之为结构图,而最关键的就是整合的方法。例如我现在是在字符集对比之后,但是我想返回到首页,我要返回到上一页,再返回到上一页,就不能直接返回到首页吗?虽然我可以把首页写成一原创 2021-02-07 10:43:43 · 335 阅读 · 0 评论 -
Python 关于set的数字元素的顺序问题
无序的这个是str.isspace,看似有序的是str.isascii,除了shell输入set的变量,是有序显示,但是无论是str()还是repr()还是list(),并非顺序显示print(d['isspace']){5760, 8192, 8194, 8195, 8193, 133, 8196, 8197, 8198, 9, 10, 11, 12, 13, 8199, 8200, 8201, 8202, 12288, 28, 29, 30, 31, 32, 160, 8232, 8233, 823原创 2021-02-06 16:41:12 · 2002 阅读 · 0 评论 -
Python 大小等于比较效率
12!=12 # 44.9 ns12>=12 # 45 ns12==12 # 45.3 ns10!=12 # 47.4 ns12>=10 # 47.5 ns12>=13 # 47.6 ns10<=11 # 47.7 ns10<=12 # 47.7 ns10<12 # 48.3 ns10==12 # 48.4 ns10<11 # 48.5 ns原创 2021-02-06 12:23:52 · 665 阅读 · 0 评论 -
Python 正则表达式同时删除多种匹配
这是输入:%%timeit12!=1245.8 ns ± 0.242 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)这是想要的输出:12!=1245.8 ns这是表达式:r=re.sub('(%%timeit\n)|(\n\n)|( ±.*$)','',s)顺便提一下这个:r=re.sub('(%%timeit\n)|(\n(?=\S))','',s)print('处理结果:\n%s'%r)决不能原创 2021-02-06 08:55:11 · 1209 阅读 · 1 评论 -
Python exec eval 整理,随缘更新
exec('print("%s"%{})'.format('alnum'))如果都用传统的%s写法,会出现混乱'print("%s"%s)'%('%s','%'+'a')'print("%s"%a)'很艰难的写出来了,但其实还是没有办法把%s停止转换掉'print("%'+'s"%s)'%('%'+'a')'print("%s"%a)'或者这样for ss in ['isalnum','isalpha','isascii','isdecimal','isdigit','islower'原创 2021-02-04 08:55:08 · 259 阅读 · 0 评论 -
Python 随手用的内存分析模块
import os,psutilfrom ctypes import string_atfrom sys import getsizeofdef mem(): # 查看Python进程当前占用 print('内存占用:%.2f MB'%(psutil.Process(os.getpid()).memory_info().rss/1024/1024))def data(d): # 查看传入的变量、字面量的内存结构(一级) b=string_at(id(d)+16,getsizeof(d)-原创 2021-02-03 14:32:46 · 146 阅读 · 0 评论 -
Python 快速生成指定大小的变量
我没能找到凭空出现变量的方法,那就利用字符串运算生成,我想大家都想到了,但是有一个细节:s=' '*2**30*4s=2**30*4*' '前者通常飙到5G左右,落到4G后者稳定停在4G这个说明了运算式的过程前者的运算:1、230 2、’ '*230 3、过程2的结果*4 4、清理垃圾,最大的垃圾就是过程2的结果,5G就是这个过程中的1G+结果的4G,然后清理掉过程中的1G,造成5G跌落回4Gimport timei=' '*2**30*2time.sleep(2)del itime原创 2021-02-02 14:38:15 · 392 阅读 · 0 评论 -
Python 十进制转二进制
# 计算机中的存储、运算单位都是二进制的0或1,该程序演示计算机如何将十进制转化成二进制,进而处理的。# 理论上说,计算机可以处理无限长度的十进制,当然如果真的是无限长度,那也是无限时间的一直在处理而# 没有最终结果。而如果问计算机又如何识别我们所输入的键是代表什么数字,进而转化成什么二进制的,那# 说不定需要更专业的电子技术的知识,这对于程序员来说,就如数学家和哲学家探讨为什么1+1=2一样。try:i=int(input('输入整数:'))except:print('输入格式错误!')el原创 2021-02-01 16:21:30 · 1389 阅读 · 2 评论 -
Python 整数类型的内存读取和结构分析 代码
分析工具:HxD绘图工具:Dia,有没有更好的?求推荐程序流程i=int(2**100-1)# 1267650600228229401496703205375addr=id(i)# 2333541932752size=sys.getsizeof(i)# 40bytes_=ctypes.string_at(addr,size)# b'\x01\x00\x00\x00\x00\x00\x00\x00\xd0\x0f+\xd1\xfc\x7f\x00\x00\x04\x00\x00\x00\原创 2021-01-30 17:43:26 · 433 阅读 · 1 评论 -
Python,关于各种串的切片逆序处理界限问题
本想写在杂记里面,奈何过程比较丰富,于是另开一篇:python的串:字符串、字节串,还有列表、元组,以及一些第三方,例如比特串等,都继承了切片操作。而range()的操作数也和切片的一致。python的切片既可以从0开始顺序标记,也可以从-1开始,倒着标记。l=list(range(16))Out[125]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] l[7]Out[128]: 7l[6:9]Out[135]: [6, 7,原创 2021-01-30 16:17:42 · 482 阅读 · 0 评论 -
Python 字节串比特串转换以及大小端相关的几个方法
查看当前系统是大端还是小端:sys.byteorder,Windows是小端的,而小端在我们看来是和常规反向地字节串的赋值表达式其他类型与字节串互转· 字符串 str.encode;bytes.decode· 整数 int.to_bytes;int.from_bytes,这里有一个btyeorder的参数,可以直接设置输出是大端还是小端int.to_bytes(16,length=2,byteorder='big')Out[78]: b'\x00\x10'· 十六进制字符串 bytes.fr原创 2021-01-27 17:18:15 · 4035 阅读 · 0 评论 -
Python 字符串/字节串 拼接、追加,推荐使用join
节选自Python,查看内存内容,类似HxD的排列b.hex() # 192 nsb.hex(' ',-3) # 239 nsb.hex(' ') # 242 nsb.hex(' ',3) # 247 ns如果使用字符串的方法的话s=b.hex() # 不讨论这个的意义,仅讨论下边的方法s1=''for i in range(0,len(s),2): s1=s1+s[i:i+2]# 3.83 µsl=[]for i in range(0,len(s),2):原创 2021-01-27 09:27:14 · 1864 阅读 · 0 评论 -
Python 杂记
ctypes.string_at(id(data),getsizeof(data)),读取内存指定地址和长度的字节内容_ctypes.PyObj_FromPtr(id(data)),读取指定位置为头部的变量内容btyes.hex([’ '[,-5]]),字节转换成以十六进制表示的字符串,插入字符,默认隔两个,可以设置隔开数量以及从左还是右开始算隔开数量for i in range(0,100,5)????[i:i+5],每隔5个一输出,本来是为了上面的功能,既然有现成的,就用上面的...原创 2021-01-26 18:06:55 · 294 阅读 · 0 评论 -
Python,查看内存内容,类似HxD的排列
输入:range(100)01 00 00 00 00 00 00 00 10 2C E9 71 FB 7F 00 00 10 69 71 D7 87 01 00 00 D0 55 74 D7 87 01 00 00 30 69 71 D7 87 01 00 00 D0 55 74 D7 87 01 00 00from sys import getsizeoffrom ctypes import string_ats=input('''请输入一个赋值表达式,例如:123,'123',1.1原创 2021-01-26 17:45:10 · 272 阅读 · 0 评论 -
Python,关于字符串间隔分割的while、for代码测试,近乎完美
之前看到一个代码,可以获取内存内容,我的目的是做数据类型的内存存储形态分析。但获取后,如何明了的展示,就如HxD那般,FF FF,16个字节(即128位)一行。虽然两个字符一个空格,32个字符一行,很简单的逻辑,但是我觉得太低效而陷入焦躁,于是搜了下力扣和网友的文章,网友中一个思路让我思考,那个方法是:while len(s)>8: print(s[:8]) s=[8:]字符串分割(leetcode)但和for的效率比,如何呢,我之前一直是for的思路,于是这里做一个测试。导入的文件原创 2021-01-25 22:15:26 · 531 阅读 · 0 评论