
笔记
李木子木子
这个作者很懒,什么都没留下…
展开
-
python判断文件存在方式
判断文件不存在后,按照惯例,下一步应该是新建文件、文件夹,然后再进行对文件、文件夹的操作。原创 2022-09-08 23:13:31 · 1066 阅读 · 1 评论 -
python not常见用法
现在再看第一和第二种,我们可能会分不清一个变量a到底是None,还是空的类表,还是False因为not a都为true} , not tuple() , not set() , not False , not None) 输出: True True True True True True True True因此在使用if not a时要分清a扮演着什么角色。......原创 2022-08-09 00:26:58 · 3671 阅读 · 0 评论 -
python nonlocal变量
python nonlocal 关键字和global 关键字区别全局关键字,全局可修改变量的值自由关键字,把变量标识为自由变量,可以给不可变类型赋予新值,但是要用在闭包中。原创 2022-08-04 16:18:16 · 412 阅读 · 0 评论 -
python 判断字符串是否存在另一个字符串中
有很多的场景都要用到在一个文本中匹配字符串的需求二.正则判断正则判断思路:完全匹配,根据返回结果来判断,这里用re.findall()来试。总结:以后见到的匹配方式仍会添加。原创 2022-07-08 17:39:37 · 1842 阅读 · 0 评论 -
python实用函数
函数和类是一种封装好的代码块,可以让代码更加简洁、实用、高效、强壮,是python的核心语法之一。原创 2022-06-29 09:03:07 · 236 阅读 · 0 评论 -
python单例模式
#单例模式是指让一个类只能创建出唯一的实例,下面用装饰器和元类这两种方式来实现单例模式,因为这两种方式的通用性最强。创建一个字典,类名设为键,类的实例设为键的值。每次创建实例时,都会先看是否有实例存在,存在实例就直接返回该实例即可。当然你也可以不用字典来接收,大可以用一个值来接受类的实例如果生成一个连接数据库的类,可以给类传入参数...原创 2022-06-13 23:27:58 · 1273 阅读 · 0 评论 -
python 拼接字符串
join(iterable) 方法用于将可迭代序列中的元素以指定的字符连接生成一个新的字符串。(既可以连接列表List,也可以连接元组tuple)二.+方法要求+号两边必须是相同类型,当然在拼接过程中,两个被操作的序列都不会被改变,而是会新建一个包含同类型数据的序列来作为拼接结果。可以比较一下上述两个方法是那个快。至于其他方法像是格式化%,format等并不算是官方的字符串拼接方法,说是格式化字符串更准确一些。...原创 2022-06-13 22:08:45 · 981 阅读 · 0 评论 -
牛客网华为机试(python)
牛客网华为机试(https://www.nowcoder.com/exam/oj/ta?tpId=37)按难度分为入门,简单,中等,困难,较难五个等级HJ7 取近似值HJ9 提取不重复的整数提取到输入字符串后就对其进行倒置,排序时直接按ls1的顺序进行排列HJ46 截取字符串字符串切片HJ58 输入n个整数,输出其中最小的k个map()函数是为了初始化n,k以及列表中的str类型为int类型最后输出的*nums[:k]是对num[:k]的解包。HJ101 输入整型数组和排序标识,对其元素按原创 2022-06-09 23:54:11 · 3745 阅读 · 0 评论 -
python统计列表中重复元素的出现次数
1.用count()函数(对字符串\列表\元组进行计数)2.用Counter类(对字符串\列表\元组\字典进行计数)python字典中不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住3.用双层循环计数...原创 2022-06-09 00:24:30 · 12762 阅读 · 0 评论 -
python实现1-100的累加的多种方法
1.用for循环2.用sum()函数3.用while循环4.用reduce函数,reduce()的作用是接受一个函数和一个可迭代序列,在每次迭代中,当前元素和前一个元素的输出都传递给函数,函数最后返回一个值。lambda函数接受两个参数,并返回两个元素的累加。我马上就有疑问了?reduce只是不断相加相邻的两个元素,为什么到最后会返回一个数呢,事实上reduce的工作过程是这样的:迭代序列的过程中,首先把 前两个元素(只能两个)传给 函数,函数加工后,然后把 得到的结果和第三个元素 作为两个参数原创 2022-06-08 17:14:28 · 33092 阅读 · 0 评论 -
python函数参数前面单星号(*)和双星号(**)的区别
*args接收多个参数,传入后是元组形式。**kwrags接收多个键值对,传入后是字典形式。def cdl(*args,**kwrags): print(args) print(kwrags)cdl(1,2,3,a=1,b=2,c=3) #输出>>>#(1, 2, 3)#{'a': 1, 'b': 2, 'c': 3}#该表达式和上个表达式返回结果相同cdl(*(1,2,3),**{'a':1,'b':2,'c':3}) # *作用于元组返回多个原创 2022-03-20 15:12:42 · 799 阅读 · 3 评论 -
python io.StringIO函数
python3中:from io import StringIOStringIO的行为与file对象非常像,但它不是磁盘上文件,而是一个内存里的"文件",在内存中读写str,我们可以像操作磁盘文件那样来操作StringIO,主要用于在内存缓冲区中读写数据。output=StringIO([buf])创建一个StingIO对象,寄存在缓冲区,可选参数buf是一个str或unicode类型,它将会与后续写的数据存放一起。如:‘Hello\n’和Word\n’会被放在一个缓冲区中。output=Str转载 2022-03-03 15:54:26 · 4656 阅读 · 1 评论 -
python 装饰器
装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短。函数从主代码抽离出来实现复用,把函数里面可复用的部分再抽离出来就要用到装饰器。*当你把一对小括号放在函数后面,这个函数就会执行;然而如果你不放括号在它后面,那它可以被到处传递,并且可以赋值给别的变量而不去执行它1.函数是可以嵌套的# 函数可以嵌套def one(name=None): def two(): pass if name:原创 2021-09-23 00:45:13 · 920 阅读 · 0 评论 -
python replace 函数
1.功能Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。2.语法str.replace(old, new[, max])str.replace(旧,新[,更换的最大次数])3.应用实例不支持多参数替换,但是可以套娃替换,无限套娃。a = ''' “我希望!……” '''b_1 = a.replace('!','JAPAN_is_shit') b_2 = a.replace(原创 2021-09-20 12:16:46 · 1515 阅读 · 0 评论 -
python request爬虫获取不到正文
如果排除代码问题的话,还有可能是编辑器问题,换个编辑器可能就会有正解。1.pycharm获取不到正文。2.同样的代码,sublime能获取到小说正文。3.同样的代码,命令行获取不到正文。原创 2021-09-20 11:45:19 · 2029 阅读 · 0 评论 -
python map函数
文章目录1.功能2.语法3.应用场景1.功能map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。2.语法map(function, iterable, …)map(函数,一个或多个可迭代对象)a = ['a', 's', 'd', 'f', 'g']b_1 = map(lambda x: x == 'f', a)print(b_1) # <map原创 2021-09-19 23:14:16 · 1133 阅读 · 0 评论 -
python lambda函数
1. python 使用 lambda 来创建匿名函数lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。2.语法lambda [arg1 [,arg2,…argn]]:expression原创 2021-09-19 10:24:21 · 1215 阅读 · 0 评论 -
python BeautifulSoup模块
2. 基本用法from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc,"html.parser")3. 应用场景爬虫原创 2021-09-19 10:08:49 · 983 阅读 · 0 评论 -
python filter函数
1. 功能filter()作用为筛选,接受一个筛选函数和一个序列;筛选函数作用于序列的每一个元素,根据筛选函数的返回值(True或者False)决定该序列中的该元素是否保留,返回一个迭代器对象,可以用list()函数返回一个列表。2. 语法filter(function_or_None, iterable)。function – 判断函数名,不加括号,可以为None,相当于不过滤。iterable – 可迭代对象。a = ['a', 's', 'd', 'w', 'q', 'e', 'r']原创 2021-09-18 20:16:05 · 1344 阅读 · 0 评论 -
python迭代器
迭代器有两个方法:iter()和next()方法。一个类(对象)只要含有__iter__、__next__两个方法,就将其称为迭代器。__iter__方法返回一个特殊的迭代器对象,而这个迭代器对象自动实现了__next__方法,并返回一个值,最后通过抛出异常StopIteration来结束迭代。迭代器最核心的功能就是可以通过__next__方法的调用来返回下一个值。而这个值不是从已有的数据中读取的,而是通过程序按照一定的规则生成的。这也就意味着我们可以不再依赖一个现存的数据集合来存放数据,而..原创 2021-09-16 10:12:27 · 1321 阅读 · 0 评论 -
python enumerate函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。语法:enumerate(sequence, [start=0])start参数改变新生成的索引序列,不改变原有数据对象。list_1 = ['I', 'love', 'Python']list_2 = [i for i in enumerate(list_1)]print('li原创 2021-09-15 09:13:01 · 1365 阅读 · 0 评论 -
python列表推导式
**一. 为什么要用推导式**推导式是Python中按照固定的条件表达式,自动生成数据的一种语法规则。通过推导式,可以直接优化传统的通过循环结构和选择结构实现的列表操作,简化传统语法生成数据的规则或者过滤数据的规则。在执行时间和效率方面也比较快。场景1:从一个列表里挑出来一部分生成另一个列表。常用方法:list_1 = [1,2,3]list_2 = []for num in list_1: if num ==2: list_1.append(num)推导式方法:list_原创 2021-09-15 09:00:16 · 1390 阅读 · 0 评论 -
python进程池
我看大家说win系统不加if main不能跑,但是我的能跑起来。为什么?from multiprocessing.dummy import Pooldef sa(l): print(l)if __name__ == '__main__': # cpu核心数 pool = Pool(4) # 第一个参数是函数,第二个是可迭代参数 pool.map(sa, range(10000)) pool.close() pool.join()原创 2021-09-13 12:29:38 · 1448 阅读 · 0 评论 -
python函数默认参数
def aa(one,two=None,three=None): if two == None: two = 2 if three== None: three = 3 return(one,two,three)print(aa(1)) #(1,2,3)print(aa(1,1,1))#(1,1,1)原创 2021-09-11 13:43:02 · 1464 阅读 · 0 评论 -
with open和open
两者推荐使用with open,可以不用close()方法关闭文件,无论在文件使用中遇到什么问题都能安全的退出,即使发生错误,退出运行时环境时也能安全退出文件并给出报错信息。open的f.close()函数 在出现读写问题报错时,并不会关闭文件,而是直接报错。...原创 2021-09-10 13:45:03 · 1628 阅读 · 0 评论 -
python当行刷新
总结:加上\rend = ‘’加上循环,就能实现当行刷新。import timefor i in range(10): time.sleep(0.5) print('\r' + str(i),end='')原创 2021-09-09 21:26:11 · 1635 阅读 · 0 评论 -
python去除空格和换行
长字符串替换的话最好用正则,短字符替换一眼就可以看出来替换的对不对,用哪种方法都行。原创 2021-09-09 12:06:30 · 10357 阅读 · 0 评论 -
python爬虫检测ip是否有效
httpbin.org 这个网站能测试 HTTP 请求和响应的各种信息,比如 cookie、ip、headers 和登录验证等,且支持 GET、POST 等多种方法,对 web 开发和测试很有帮助。它用 Python + Flask 编写,是一个开源项目。官方网站开源地址今天使用的是它的ip检测功能,能够返回本机ipip检测import requests,sysip_port = '222.74.202.233:80'#ip_port为空时只返回本机ip,为代理ip时返回本机ip和代理ip原创 2021-08-13 13:55:50 · 6750 阅读 · 0 评论 -
Sublime Text3快捷键大全
Sublime Text3快捷键大全选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等。Ctrl+L 选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样。Ctrl+Shift+L 先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行。Ctrl+Shift+M 选择括号内的内容(继续选择父括号)。举个栗子:快速选中删除原创 2021-06-15 20:56:29 · 1879 阅读 · 0 评论 -
os._exit() 和 sys.exit()
os._exit()会直接将python程序终止,之后的所有代码都不会继续执行。sys.exit()会引发一个异常:SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获此异常的代码,那么这些代码还是会执行。捕获这个异常可以做一些额外的清理工作。0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。综上,sys.exit()的退出比较优雅,调用后会引发SystemExit异常,可以捕获此异常做清理工作。os._exit()直接将python解释器退出,余下的原创 2021-06-15 20:55:41 · 1820 阅读 · 1 评论 -
pip换源
单次换源pip install itchat -i https://pypi.tuna.tsinghua.edu.cn/simplepip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simplepip install -i https://pypi.tuna.tsinghua.edu.cn/simple安装的东西都通过清华源就好 -i参数永久换源pip config set global.index-url https://mir原创 2021-06-15 20:54:36 · 1811 阅读 · 0 评论 -
攻防世界 Web进阶之upload1
打开环境,就是一个上传文件界面,这种题一般就是上传一句话了。开发者模式直接看到了过滤规则,只能传.jpg和.png文件。.php文件被警告,修改网页代码试试如图,将上传后面的disable删除删除后,就直接能上传原来的文件了。我看好多人都是用bf改后缀,其实这种最简单了之后就是菜刀连接,由于没有菜刀,就不给大家展示了。cyberpeace{5424056c1c4d35b8fc267df74b70bdea}...原创 2020-09-16 08:28:23 · 1846 阅读 · 0 评论 -
dirsearch下载
目录爆破脚本,仍然两种下载方式一个源地址,一个镜像地址git clone https://github.com/maurosoria/dirsearch.gitcdgit clone https://github.com.cnpmjs.org/maurosoria/dirsearch.gitcd最基本使用方法:python3环境使用python3 dirsearch.py -u 220.249.52.133:53675 -e php...原创 2020-08-04 20:08:40 · 4567 阅读 · 0 评论 -
GitHack 下载
做ctf可能用的比较多,我这里提供两种方法1.直接通过git下载git clone https://github.com/lijiejie/GitHack2.通过git镜像站下载git clone https://github.com.cnpmjs.org/maurosoria/dirsearch.gitcd使用方法:脚本是python2环境python GitHacker.py http://220.249.52.133:53675/.git/执行后会在本目录生成以网址为名字的文件夹原创 2020-08-04 19:59:22 · 7460 阅读 · 0 评论 -
ssh 密钥连接
一切操作均在用户目录下的.ssh文件夹下操作第一步:服务器生成密钥对id_rsa和id_rsa.pub,两者就像是锁与门的关系.kali@kali:~/.ssh$ ssh-keygen -t rsa锁 = id_rsa --------锁拿在自己手里(本地)门 = id_rsa.pub —门安在外边(服务器)第二步:服务器上安装门(id_rsa.pub),配置sshd.config 文件,开放密钥登录,关闭密码登录.kali@kali:~/.ssh$ cat id_rsa原创 2020-05-28 16:40:44 · 2070 阅读 · 0 评论