
Python
若数
连击挑战~
展开
-
Python3 js文本数据解密爬虫 AES CBC模式解密
最近采集一个网站,返回数据json数据全是这样的:很明显是这个数据是做了加密的,于是尝试在sources中寻找关键加密的关键字,诸如base64等,果不其然,打几个断点发现这里就是所有json数据解密的关键过程,搜索关键字aes相关:在结合解密代码,在一个加解密网站成功复刻了数据:接下来就是利用Python3完成对应的解密过程,对应的博客 简单分离处理后得到Python3版本的AES ...原创 2019-12-09 15:50:44 · 841 阅读 · 0 评论 -
python爬虫获取localStorage中的数据
最近采集数据遇到一个accessToken 类似微信中公众号的全局唯一接口调用凭据access_token,公众号调用各接口时都需使用access_token。但是这个可不友好,该数据是存放在localStorage,是一种可以替代cookie,存储更多地信息的本地存储方式,我们可以利用selenium执行js拿到localStorage中的目标数据:browser.get("http://j...原创 2019-12-09 15:28:57 · 6694 阅读 · 2 评论 -
Python3之递归函数简单示例
概述递归函数即直接或间接调用自身的函数,且递归过程中必须有一个明确的递归结束条件,称为递归出口。递归极其强大一点就是能够遍历任意的,不可预知的程序的结构,比如遍历复杂的嵌套列表。递归求和我们可以利用递归函数实现一个Python内置函数sum()的递归版。# 递归def d_sum(L): if not L: return 0 else: r...原创 2019-06-06 18:38:35 · 608 阅读 · 0 评论 -
Python3内置模块之base64编解码方法小结
概述Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一,Base64 就是一种基于 64 个可打印字符来表示二进制数据的方法。可查看 RFC2045 ~ RFC2049,上面有 MIME 的详细规范。Base64 编码是从二进制到字符的过程,可用于在 HTTP 环境下传递较长的标识信息。比如使二进制数据可以作为电子邮件的内容正确地发送,用作 URL 的一部分,或者作为 HTT...原创 2019-05-31 21:37:47 · 1312 阅读 · 0 评论 -
Python3内置模块之玩出花儿的random随机方法小结
概述random是Python中与随机数相关的模块,其本质就是一个伪随机数生成器,我们可以利用random模块基础生成各种不同的随机数,以及一些基于随机数的操作。生成随机数相关生成0~1之间的浮点数import randomr = random.random()print(r)r = random.random()print(r)示例结果:0.9928249533693085...原创 2019-05-28 22:10:17 · 228 阅读 · 0 评论 -
Python3之对象垃圾收集机制浅析
###概述GC作为现代编程语言的自动内存管理机制,专注于两件事:1. 找到内存中无用的垃圾资源 2. 清除这些垃圾并把内存让出来给其他对象使用。 在Python中,它在每个对象中保持了一个计数器,用于记录指向该对象的的引用的个数。一旦这个计数器为0时,则立即回收该对象,对象占用的内存空间将被释放。引用计数我们可以利用简单的变量引用和销毁窥见引用计数过程。增加引用计数增加引用计数的方式多种...原创 2019-06-05 22:14:04 · 186 阅读 · 0 评论 -
Python3内置模块之json编解码方法小结
概述Python3中我们利用内置模块json解码和编码JSON对象,JSON(JavaScript Object Notation)是指定 RFC 7159(废弃了RFC 4627)和 ECMA-404是一种轻量级数据交换格式,受 JavaScript对象文字语法的启发 (虽然它不是JavaScript 1的严格子集)。下面为Python对象–>JSON对象的对照关系表。Pyth...原创 2019-05-30 22:12:01 · 325 阅读 · 0 评论 -
Python3之enumrate和range对比及示例
概述在Python中,enumrate和range都常用于for循环中,enumrate函数用于同时循环列表和元素,而range()函数可以生成数值范围变化的列表,而能够用于for循环即都是可迭代的。range概述range是用于产生连续或者带步长的数字元素组成的列表,下面是一些基本使用及场景示例。产生数字序列# 产生0-9的序列for i in range(0, 10): p...原创 2019-05-23 21:58:16 · 885 阅读 · 0 评论 -
Python增强赋值及共享引用注意事项
概述Python中的增强赋值是从C语言中借鉴出来的,所以这些格式的用法大多和C一致,本身就是对表达式的简写,即二元表达式和赋值语句的结合,比如a += b 和a = a + b 就是一致的,比如还有以下的增强赋值语句。----a += ba &= ba -= ba |= ba *= ba ^= ba /= ba >>=ba %...原创 2019-05-27 21:56:18 · 210 阅读 · 0 评论 -
Python3之字符串格式化format函数详解(上)
概述在Python3中,字符串格式化操作通过format()方法或者f’string’实现。而相比于老版的字符串格式化方式,format()方法拥有更多的功能,操作起来更加方便,可读性也更强。该函数将字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号{}作为特殊字符代替%。位置设定默认位置不指定格式化位置,按照默认顺序格式化S = 'I {} {}, and I\'am lea...原创 2019-06-01 22:48:24 · 406 阅读 · 0 评论 -
Python函数参数匹配模型(上)
概述Python3中函数参数一般都是通过赋值进行传递的,而调用者只需要知道如何正确的传递参数即可直接使用函数,位置参数即我们使用最频繁的参数传递方法,通过参数的默认位置从左到右进行匹配def f(x, y, z): print(x, y, z)f(1, 2, 3)示例结果:1 2 3关键词参数我们可以通过函数参数关键字进行参数传递,此时参数的传递是通过变量名匹配,...原创 2019-06-07 20:59:15 · 558 阅读 · 0 评论 -
Python3内置模块之pprint让打印比print更美观
概述在我们使用内置打印函数print时,打印出的Python数据结构对象总是一行的输出的方式,这样对数据结构较复杂或数据较多的对象的显示并不美观,这时我们可以利用pprint输出美化数据结构对象。pprint方法概览美化输出我们可以利用pprint中的PrettyPrinter控制输出的打印时的缩进,行宽、甚至打印深度等,定义类如下class pprint.PrettyPrinter(i...原创 2019-05-29 21:56:10 · 1085 阅读 · 0 评论 -
Python3之字符串格式化format函数详解(下)
格式限定符format通过丰富的的“格式限定符”(语法是 {}中带:号)对需要格式的内容完成更加详细的制定。进制转换我们可以再限定符中制定不同的字符对数字进行进制转换的格式化,进制对应的表格:字符含义b二进制cUnicode 字符d十进制整数o八进制数x十六进制数,a 到 f 小写X十六进制数,A 到 F 大写N = 99...原创 2019-06-02 22:09:08 · 345 阅读 · 0 评论 -
Python函数参数匹配模型(下)
任意参数 *当我们的函数接收参数为任意个,或者不能确定参数个数时,我们,可以利用*来定义任意数目的参数,这个函数调用时,其所有不匹配的位置参数会被赋值为元组,我们可以在函数利用循环或索引进行使用def f(*args): # 直接打印元组参数 print(args) print('-'*20) # 循环打印元组参数 [print(i) for i in ...原创 2019-06-08 17:46:56 · 236 阅读 · 0 评论 -
Python函数参数匹配模型通用规则keyword-only参数
概述Python3对函数参数的排序规则更加通用化了,即Python3 keyword-only参数,该参数即为必须只按照关键字传递而不会有一个位置参数来填充的参数。该规则在处理人一多个参数是很有用的。keyword-onlykword_only(1, 2, 3, c=4)print('-' * 20)kword_only(a=1, c=3)示例结果:1 (2, 3) 4-----...原创 2019-06-09 21:55:16 · 629 阅读 · 0 评论 -
Python3日期与时间戳转换的几种方法
概述日期和时间的相互转换可以利用Python内置模块time和datetime完成,且有多种方法供我们选择,当然转换时我们可以直接利用当前时间或指定的字符串格式的时间格式。获取当前时间转换我们可以利用内置模块datetime获取当前时间,然后将其转换为对应的时间戳。import datetimeimport time# 获取当前时间dtime = datetime.datetime....原创 2019-06-03 21:47:14 · 4898 阅读 · 0 评论 -
Python3之数据指纹MD5校验与对比
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。概述MD5校验码通过散列函数计算而成,可以生成任何数据的数据“...原创 2019-06-10 22:14:10 · 487 阅读 · 0 评论 -
Python3内置模块之Pickle和cPickle数据持久化方法小结
概述模块Pickle实现了对一个 Python 对象结构的二进制的序列化和反序列化。 即当Python程序持续运行一些字符串、列表字典、甚至自定义的类等数据对象,需要持久化存储,即存储在磁盘中,防止运行在内存中,因断电等情况丢失数据。那么Pickle模块就派上用场了,它可以将对象转换为一种可以传输或存储的格式。python的pickle模块实现了基本的数据序列和反序列化。通过pick...原创 2019-06-04 22:03:40 · 483 阅读 · 0 评论 -
Python3中一些高阶函数map、reduce、filter详解及示例
在编程语言中,高阶函数指的是接受函数作为输入或输出的函数。map概述python中的map()函数是一个内置的高阶函数,一般用法是map(function, iterable)。需要传入一个函数,这个函数可以是内置的,也可以是自己定义,也可以是匿名函数即lambda。第二个参数是一个可迭代对象,如列表、字典字符串等。map函数返回的是一个map对象,也是一个可迭代对象,可以利用for循环迭...原创 2019-05-17 22:00:27 · 1517 阅读 · 2 评论 -
Python3除法之真除法、截断除法和下取整对比
概述在Python3中,数学运算中的除法被分为两种,分别是“真除法”,即无论任何类型相除的结果都会保留小数点,和我们实际的数学运算结果一致,而“截断除法”,则是无论任何类型相除的结果都会省略结果的小数部分,剩下最小的能整除的整数部分。以下是两种除法的基本形式:# 真除法X / Y# 截断除法X // Y真除法X = 8Y = 2Z = 3print(X / Y)prin...原创 2019-05-22 21:35:59 · 513 阅读 · 0 评论 -
Python3多目标赋值及共享引用注意事项
概述Python中多目标赋值即将等号左边所有的变量名都赋值给右边的对象,完成赋值操作,比如将三个变量同时赋值给一个字符串。a = b = c = 'Python'print(a)print(b)print(c)示例结果:PythonPythonPython在多目标赋值中,其本质即类似三个变量的指针指向了同一个内存空间,即三个变量共享了内存内同一对象。不可变对象对于不可变...原创 2019-05-26 21:42:57 · 384 阅读 · 0 评论 -
Python列表赋值,复制,深拷贝以及5种浅拷贝详解
概述在列表复制这个问题,看似简单的复制却有着许多的学问,尤其是对新手来说,理所当然的事情却并不如意,比如列表的赋值、复制、浅拷贝、深拷贝等绕口的名词到底有什么区别和作用呢?列表赋值# 定义一个新列表l1 = [1, 2, 3, 4, 5]# 对l2赋值l2 = l1print(l1)l2[0] = 100print(l1)示例结果:[1, 2, 3, 4, 5][100,...原创 2019-05-08 23:52:47 · 3749 阅读 · 2 评论 -
Python3序列赋值、序列解包详解(下)
扩展序列解包上节我们提到解决赋值中等号两边参数不一致的方法可以通过切片,但在Python3中我们可以利用特定的语法更加方便的处理这种情况,如下示例。当带*出现在结尾间时L = [1, 2, 3, 4, 5]a, *b = Lprint(a, b)示例结果:1 [2, 3, 4, 5]我们可以看到a匹配了列表中第一个元素值,而b匹配了后面所有的内容,并且为列表。即当我们利用带*符...原创 2019-05-13 22:26:34 · 613 阅读 · 0 评论 -
利用Python3内置文档资源高效学习及官方中文文档
概述从前面的对Python基础知识方法介绍中,我们几乎是围绕Python内置方法进行探索实践,比如字符串、列表、字典等数据结构的内置方法,和大量内置的标准库,诸如functools、time、threading等等,而我们怎么快速学习掌握并学会使用这个Python的工具集呢? 我们可以利用Python的内置文档大量资源既可以掌握许多关于Python工具集的基本使用。dir函数Python中内...原创 2019-05-18 23:33:45 · 1108 阅读 · 0 评论 -
总结:44个Python3字符串内置方法大全及示例
概述Python中字符串是作为一种强大的处理工具集的存在,而不是类C中使用的那么难受。因为Python提供了一系列字符串操作的方法,从大小写转换、切片操作到查找等等应有尽有,几乎满足日常的使用场景,当然如果满足不了需求还可以得助于更加强大的第三方库比如string,re等。下面就介绍了Python3中44个字符串内置方法的基本概述及简单示例。44个字符串内置方法概述方法描述...原创 2019-05-06 22:03:04 · 1170 阅读 · 3 评论 -
Python不可变对象元组(tuple)详解
概述元组和列表很相似,不过元组是不能在原处改变的对象,这点性质和字符串一致,虽然元组不支持任何方法调用,但是元组具有列表的大多数属性,以下是元组的一些特性。支持索引和切片 既可以通过索引和切片读取元组内的数据固定长度 由于元组为不可变的序列,所以是不能在生成一个拷贝的情况下进行增删的任意嵌套 即元组和列表、字典都支持其他的复合对象,比如其他的元组,字典,列表等常见使用示例一些基础定...原创 2019-05-19 22:20:38 · 1741 阅读 · 0 评论 -
总结:11个Python3列表内置方法大全及示例
概述Python中的列表是简直可说是有容乃大,虽然看似类似C中的数组,但是Python列表可以接受任意的对象元素,比如,字符串,数字,布尔值,甚至列表,字典等等,自由度提升到一个新的高度,而Python也提供了大量列表相关的内置方法来有效操作列表:方法描述append将单个对象添加至列表末尾clear删除列表中所有项目copy列表的浅拷贝,参见上篇文章《P...原创 2019-05-09 22:06:16 · 1176 阅读 · 0 评论 -
Python3 对象组合zip()和回退方式*zip详解
zip概述zip即将多个可迭代对象组合为一个可迭代的对象,每次组合时都取出对应顺序的对象元素组合为元组,直到最少的对象中元素全部被组合,剩余的其他对象中未被组合的元素将被舍弃。keys = ['one', 'two', 'three']values = [1, 2, 3]d = zip(keys, values)print(list(d))示例结果:[('one', 1), ('t...原创 2019-05-14 22:11:39 · 1426 阅读 · 2 评论 -
python3切片使用方法及一些技巧介绍+leetcode题例
概述在Python中,字符串是定义为字符的有序集合,即我们可以像使用列表一样在字符串中自由翱翔-使用索引和切片操作字符串,比如通过指定的索引获取字符串某个位置的字符。# 示例字符串s = 'python str with slice'索引的简单使用在Python中字符串的索引可以是正数,正数即从左向右索引,索引从0开始,也可以是负数,负数即从右向左开始索引,索引从-1开始。如果超出了正...原创 2019-05-07 23:06:51 · 1027 阅读 · 2 评论 -
Python3列表解析之任意迭代、表达式、条件和嵌套循环等特性详解
概述列表解析即利用现有的可迭代对象创建新的列表的Python语法,其过程完全可以用for循环复刻,但其解析效率比for循环快一些,缺点也很明显,即不适合用于大数据迭代对象的解析,因为会占用大量内存,导致MemoryError。当然列表解析让人爱不释手的另一个原因就是简洁。列表解析基础示例解析列表L = [1, 2, 3, 4, 5]LL = [x ** 2 for x in L][pr...原创 2019-05-20 21:39:29 · 2529 阅读 · 5 评论 -
总结:11个Python3字典内置方法大全及示例
概述字典有着类似列表的高灵活度的特点,而与列表通过偏移索引的存取元素的方式不同,字典是通过无序的键来存取键值对的,即字典是任意对象的无需集合,可在原处增加或减少,且支持任意深度的嵌套(即可以包含诸如列表,其他的字典等),下面就介绍了Python提供的11个字典内置方法的基本概述及简单示例。方法描述clear清除字典中所有键值对copy对字典进行浅拷贝,如需详细了解...原创 2019-05-10 21:02:56 · 1413 阅读 · 3 评论 -
python3迭代器之for循环迭代及原理浅析
概述当我们在使用for循环时,即重复运行一个代码块,或者不断迭代容器对象中的元素,比如一些序列对象,列表,字典,元组,甚至文件等,而for循环的本质取出可迭代对象中的迭代器然后对迭代器不断的操作。一些迭代方法迭代列表L = [1,2,3,4,5]for element in L: print(str(element) * 3)# 利用enumerate获取索引进行迭代for...原创 2019-05-15 21:49:54 · 3014 阅读 · 10 评论 -
Python3之打印操作print详解(上)
概述一般学习一门编程语言,我们完成的第一个动作就是通过该语言输出Hello, world在cmd或者其他程序上,而Python也不例外,我们利用内置函数print完成输出需要的内容,那么print有哪些具体的用法呢?print语法形式:print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout])基本打印打印字符串print...原创 2019-05-24 22:06:46 · 2987 阅读 · 4 评论 -
Python3中真真假假True、False、None等含义详解
概述在Python中,不仅仅和类C一样的真假类似,比如1代表真,0代表假。Python中的真假有着更加广阔的含义范围,Python会把所有的空数据结构视为假,比如[](空列表)、{}(空集合)、''(空字符串)等,而与之相反的非空数据结构即为真。简单对比代码:# 遍历列表中的示例元素,获取对应的真假:for elenment in ['', 'S', [], [1, 2], {}, {3,...原创 2019-05-11 22:03:52 · 4234 阅读 · 8 评论 -
Python3之手动创建迭代器
概述迭代器即可以遍历诸如列表,字典及字符串等序列对象甚至自定义对象的对象,其本质就是记录迭代对象中每个元素的位置。迭代过程从第一个元素至最后一个元素,且过程不能回滚或反方向迭代。两个基本方法iter、next序列对象可以利用iter()直接创建迭代器,并通过next()即可迭代迭代器。利用for循环迭代S = 'PYTHON'IT = iter(S)for it in IT: ...原创 2019-05-21 22:15:30 · 202 阅读 · 0 评论 -
Python3匿名函数lambda详解及使用示例
概述匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值,表达式本身结果就是返回值。),而def创建后则赋值给一个变量名,在Python中,我们利用关键词lambda创建匿名函数,以下是匿名函数lambda表达式的形式:lambda arg1,arg2,.....argn:expression以下为一些lamb...原创 2019-05-16 21:21:07 · 2813 阅读 · 11 评论 -
Python3序列赋值、序列解包详解(上)
###概述赋值是各个编程语言通用的概念,而在Python有多种赋值方法以供选择,比如元组、列表、序列赋值运算等,甚至还有扩展的序列解包赋值方法完成更加复杂的赋值运算。一些基本赋值运算下面示例介绍了元组赋值运算、列表赋值运算及任意对象的序列赋值的简单使用# 元组赋值运算one, two, three = (1, 2, 3)print(one, two, three)# 列表赋值运算o...原创 2019-05-12 22:01:55 · 1794 阅读 · 0 评论 -
Python3之打印操作打印流重定向(下)
概述当我们在Python的print打印时,我们到底在使用什么? 其实print语句不过是Python简便使用的特性体验而已,其背后就是sys.stdout对象的简单接口,即我们也可以利用sys.stdout完成所有print打印行为,比如打印Hello, world!。import syssys.stdout.write('Hello, world!')示例结果:Hello, wor...原创 2019-05-25 21:50:25 · 951 阅读 · 0 评论 -
一些最基本的python方法和函数
首述:什么是方法? 方法是Python可对数据执行的操作,比如在name.title()中,name后面的句点(.)让Python对变量name执行方法title指定的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息,来完成其工作。这种信息是在括号内提供的。比如函数title()不需要额外的信息,因此它后面的括号是空的原创 2017-10-10 21:40:56 · 4328 阅读 · 1 评论