首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
14,234 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
11,473 阅读
3
gradle-5.4.1-all.zip下载
9,511 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
8,203 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
7,020 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
617
篇文章
累计收到
629
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
617
篇与
的结果
2020-06-23
Centos后台挂机Python脚本
需要用到setsid指令用法:#setsid python xxx.py然后可以输入查看所有进程#ps -aux然后可以根据PID结束进程:# kill -pid 注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。
2020年06月23日
907 阅读
0 评论
0 点赞
2020-06-22
使用Python遍历修改Excel单元格的值
这次的任务要求是这样的为了这位老哥的学习,于是就用Python帮了一把,一共300多题,要是一个个来还不得累死。于是在线学习了一下Python操作Excel,需要用到一个模块openpyxl源文件图:成品图:代码:# -*- coding: utf-8 -*- """ ------------------------------------------------- @ Author :Lan @ Blog :www.lanol.cn @ Date : 2020/6/21 @ Description:I'm in charge of my Code ------------------------------------------------- """ import re import openpyxl class QueClear: def __init__(self, file): self.file = file self.wb = openpyxl.load_workbook(self.file) self.sheet = self.wb.sheetnames[0] self.ws = self.wb[self.sheet] # 获取总行数 def getRowsClosNums(self): rows = self.ws.max_row columns = self.ws.max_column return rows, columns # 获取指定单元格的值 def getCellValue(self, row, column): cellvalue = self.ws.cell(row=row, column=column).value return cellvalue # 修改指定单元格值 def setCelValue(self, a, b, cellvalue): self.ws.cell(row=a, column=b, value=cellvalue) if __name__ == '__main__': # 实例化对象,打开文件 mytest = QueClear('errors.xlsx') # 获取总行数 rows = mytest.getRowsClosNums() # 遍历操作 for row in range(2, rows[0]): # 获取正确选项 Answer = mytest.getCellValue(row, 4) # 获取所有选项 Selects = mytest.getCellValue(row, 5) # 在答案选项中匹配正确答案 result = Answer + ':' + re.findall(f'[{Answer}]:(.*?);', Selects)[0] # 设置值 mytest.setCelValue(row, 4, result) # 输出替换的结果,以表示程序没卡死 print(result) # 保存操作结果 mytest.wb.save(mytest.file)
2020年06月22日
2,047 阅读
0 评论
0 点赞
2020-06-21
Lan的Python爬虫虚拟环境模块清单
刚刚在给服务器装python环境,然后打包了一份自己Python爬虫环境下的requirements清单。分享出来顺便备份一下。模块似乎挺多的,很多模块我也不知道啥时候装的,不过问题不大,爬虫这块应该全了至于怎么使用可以看我的这篇文章:自动生成和安装requirements.txt依赖requirements.txt大小:2kb已经过安全软件检测无毒,请您放心下载。
2020年06月21日
699 阅读
0 评论
0 点赞
2020-06-21
文字转语音保存为Mp3格式,接口:百度翻译
调用的是百度翻译的接口,成品会生成到软件目录,文件名为文字的前10个字。# -*- coding: utf-8 -*- """ ------------------------------------------------- @ Author :Lan @ Blog :www.lanol.cn @ Date : 2020/6/21 @ Description:I'm in charge of my Code ------------------------------------------------- """ import requests word = input("请输入要转换的文字:") speed = input("请输入语音的速度:") url = f'https://fanyi.baidu.com/gettts?lan=zh&text={word}&spd={speed}&source=web' result = requests.get(url).content with open(f'{word[:10]}.mp3', 'wb') as f: f.write(result) input(f"【{word}】语音成品已生成在软件根目录")
2020年06月21日
1,065 阅读
0 评论
0 点赞
2020-06-20
Python的基本骚操作(长期更新)
最近在网上看到一些Python的一些基本但是非常实用的操作。元素相关多赋值:a = b = c = 'www.lanol.cn' print('a的值:'+a) print('b的值:'+b) print('c的值:'+c)交换元素的值:a = "我是a的值" b = "我是b的值" a,b = b,a print('a:'+a) print('b:'+b)元素自操作:a = 5 a +=1 #自加1 a -=1 #自减1 a /=2 #自除2 a *=2 #自乘2 a **=2 #自己的2次方 print(a)使用三元操作符赋值:三元操作符是 if-else 语句也就是条件操作符的一个快捷方式:[表达式为真的返回值] if [表达式] else [表达式为假的返回值]这里给出几个你可以用来使代码紧凑简洁的例子。下面的语句是说“如果 y 是 9,给 x 赋值 10,不然赋值为 20”。如果需要的话我们也可以延长这条操作链。x = 10 if (y == 9) else 20同样地,我们可以对类做这种操作:x = (classA if y == 1 else classB)(param1, param2)在上面的例子里 classA 与 classB 是两个类,其中一个类的构造函数会被调用.下面是另一个多个条件表达式链接起来用以计算最小值的例子:In [10]: def small(a,b,c): ...: return a if a<=b and a<=c else ( b if b<=a and b<=c else c) ...: In [11]: small(1,0,1) Out[11]: 0 In [12]: small(1,2,3) Out[12]: 1我们甚至可以在列表推导中使用三元运算符: In [14]: [ m**2 if m > 10 else m**4 for m in range(20) ] Out[14]: [0,1,16,81,256,625,1296,2401,4096,6561,10000,121,144,169,196,225,256,289,324,61]列表相关判断列表是否为空:def test1(): arr1 = [1, 2, 3, 4, 5] arr2 = [] # 不推荐 if len(arr1)!=0: print("arr1 is not empty-len!") if len(arr2)!=0: print("arr2 is not empty-len!") # 推荐 if arr1: print("arr1 is not empty!") if arr2: print("arr2 is not empty!")遍历列表,获取索引下标:def test3(): l1 = [11, 22, 30, 41, 51] # 不推荐 for i in xrange(0, 5): print("%s->%s" %(i, l1[i])) # 推荐 for i, v in enumerate(l1): print("%s->%s" % (i, v))字典列表生成式:def test5(): dict1 = {1: "val1", 2: "val2", 3: "val3", 5: "val5"} dict2 = {k*2: v for k, v in dict1.items()} print(dict2)其他相关
2020年06月20日
1,493 阅读
0 评论
0 点赞
2020-06-19
易班易瞄瞄指定话题用户动态自动爬取并保存
因为最近有需要统计易瞄瞄指定话题下的用户发表的动态内容,还需要统计点赞数,发表时间等信息,因此随手写了一个小脚本,这个呢就不写教程了,直接放代码和效果图,需要自己手动获取易班的login_token,抓客户端包即可,或者浏览器F12,以前也写过易班登录JS。修改topicid既可切换话题import re import time import requests print('正在获取秘钥!') info = input("请输入Token") url = f'https://ymm.yiban.cn/news/list/news?loginToken={info}&page=1&size=100&topicId=2' res = requests.get(url=url).json() if res['message'] == "操作成功" and info['version'] == "暂无": data = res['data']['list'] print('正在下载数据!') with open('易喵喵点赞数量.csv', 'w', encoding='utf8') as f: f.write('用户id,学号,用户名,文字内容,11点,赞数,发布时间 ') print("正在写入数据!") for i in data: title = i['title'].replace(' ', '').replace(',', ',') likenum = i['likeNum'] time_local = time.localtime(int(i['createTime'])) date = time.strftime("%Y-%m-%d %H:%M:%S", time_local) riqi = time.strftime('%H', time_local) if int(riqi) > 11: riqi = "11点前" else: riqi = "11点后" xuehao = re.findall('([2][0][1][1-9]d*)', title) if xuehao: xuehao = xuehao[0] userid = i['origin']['User_id'] usernick = i['origin']['usernick'].replace(',', ',') f.write(f'{userid},{xuehao},{usernick},{title},{riqi},{likenum},{date} ') print(f'{userid},{xuehao},{usernick},{title},{riqi},{likenum},{date}') print("作者:Lan,www.lanol.cn") input("结果已生成在软件目录下") else: input("获取失败,请联系Lan")
2020年06月19日
2,805 阅读
0 评论
0 点赞
2020-06-18
Vue.JS基础以及本地指令:v-text,v-html,v-on,v-show
为了不让这位爷的青春终结,我来日更了。感谢各位的支持。这几天学了点Django,感觉js也得接触下了,于是看到学习站上有一套黑马程序员的4小时快速入门Vue.js的教程,发现Vue.Js似乎挺容易的。Vue.Js官方文档:https://cn.vuejs.org/v2/guide/第一个指令:v-text:设置标签的文本值(textContent)首先如果要在网页中使用Vue.Js的话就得先引用Vue(在官方文档有两句,第一句适合开发环境,会有相应提示,第二句更加的快,适合生成环境)<!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><!-- 生产环境版本,优化了尺寸和速度 --> <script src="https://cdn.jsdelivr.net/npm/vue"></script>到这里代码就分为两部分了,一部分写在html中,一部分写在JS中(大概就是用过JS渲染HTML内容了)。打开了尘封已久的VS Code,并写入了对于Vue的HelloWorld首先来解释一下这两句话(凭个人感觉理解):首先是html里面的这句,新建一个div,ID为Lan,为了方便JS操作的时候找得到这个 <!-- www.lanol.cn --> <div id="Lan"> {{ message }} </div>这里应该是新建一个app,vue型的,el是选择中我们之前创建的div,data就是数据,message就是我们要展现的text var app = new Vue({ el: '#Lan', data: { message: 'Hello Vue!' } })首先呢,这个message有两种写法,第一种就是我们刚刚写的Hello Vue这种,用{{}}包围起来,这种写法不会清除原有的内容, <!-- www.lanol.cn --> <div id="Lan"> {{ message }} </div>而另一种写法就是写在标签的属性区,这样写也是可以的。 <!-- www.lanol.cn --> <div id="Lan" v-text='message'> </div>然后我们来对比一下两者的区别。 <!-- www.lanol.cn --> <div id="Lan"> <h2>{{message}}www.lanol.cn</h2> <h2 v-text='message'>www.lanol.cn</h2> </div>由图可以看见,放在{{}}内的www.lanol.cn显示出来了而放在属性区的则看不见了,这就是两者区别了。在这里面你还可以进行字符串的拼接等操作,如果是{{}}直接加就可以了,而属性区则需要一个+号和引号(因为我包含message用的是单引号,所以里面只能用双引号了如果Python一样) <div id="Lan"> <h2>{{message}}www.lanol.cn</h2> <h2 v-text='message'>www.lanol.cn</h2> <h2 v-text='message+"www.lanol.cn"'></h2> </div>然后需要注意的是message内的内容可以是列表、字典等数据类型(用Python的话说)第二个指令:v-html:设置标签的innerhtml(说白了就是用JS写HTMl)这个指令呢就对比着上一个v-text来记录一下。<body> <!-- www.lanol.cn --> <div id="Lan"> <h2 v-text='message'></h2> <h2 v-html='message'></h2> </div> <script> var app = new Vue({ el: '#Lan', data: { message: '<h1>www.lanol.cn</h1>' } }) </script> </body>可以看见使用了v-text的被直接显示出来了,而v-html则被渲染了,就这?就这。第三个指令:v-on:为元素绑定事件(click,dblclick,monseenter)使用方法: <div id="Lan"> <input type="button" value="按钮" v-on:事件名="方法"> <input type="button" value="按钮" @事件名="方法"> </div>var app = new Vue({ el:"#Lan", methods:{ dolt:function(){ } } )}这里有两种写法,第一个是v-on:事件名="方法",第二个是比较简便的只需要@即可然后这里就只演示一下click的事件<body> <div id="Lan"> <input type="button" value="点击按钮" v-on:click="dolt"> <input type="button" value="点击按钮" @click="dolt"> </div> <script> var app = new Vue({ el: '#Lan', methods: { dolt: function() { console.log("Lan点击了按钮") } } }) </script> </body>到此,三个基本指令已经写完了,发现掌握一个东西的最好办法就是将他自己用文字写一遍,就像我这样写一篇笔记,记录一下。最后这是一个点击就数字就增加或减少的DEMO,过大过小则提示<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>VueJS基本指令学习By:Lan</title> <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="Lan"> <input type="button" value="加" @click="add"> <input type="button" value="减" @click="sub"> <h2>{{num}}</h2> </div> <script> var app = new Vue({ el: '#Lan', data: { num: 1 }, methods: { add: function() { if (this.num > 20) { alert('太大了') } else { this.num++; console.log(this.num) } }, sub: function() { if (this.num <= 0) { alert('太小了') } else { this.num--; console.log(this.num) } }, } }) </script> </body> </html>
2020年06月18日
1,323 阅读
0 评论
0 点赞
1
...
55
56
57
...
89