- 博客(70)
- 收藏
- 关注
原创 mpi出现的问题
#include <iostream>#include "mpi.h"using namespace std;int main(int argc, char* argv[]) { MPI_Status status; int myid, numprocs; int n = 6; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_
2022-05-06 19:00:54
434
原创 pytorch基本语法
1.list、numpy.darray转tensorx = torch.tensor([[1, -1], [-1, 1]])x = torch.from_numpy(np.array([[1, -1], [-1, 1]]))2.生成全为0或全为1的tensorx = torch.zeros([2, 2])x = torch.ones([1, 2, 5])3.tensor的数学运算两个矩阵加法:z = x + y两个矩阵减法:z = x - y矩阵求次方:y = x.pow(2)矩阵
2022-03-10 11:33:45
1556
原创 leetcode 刷题总结
2.28题目:最多可达成的换楼请求1.这里使用了dfs遍历算法,但是,没能引用每次的数组,导致每次都要拷贝数组,增加了时间复杂度。2.__builtin_popcount(n) 计算一个 整数 n 有多少个位为13.fill(delta.begin(), delta.end(), 0); ,将数组dalta全部填充为 04.all_of(delta.begin(), delta.end(), [](int x) { return x == 0; })区间[开始, 结束)中是否所有的元素都满足_P
2022-02-28 10:38:24
110
原创 c++ 读取数量不定的数据
用c++读入数量不定的数据,代码如下:#include <iostream>using namespace std;int main(){ int value; while(cin >> value) // 每读入一个数据就输出 1 cout<<1; return 0;}当我们使用一个 istream 对象作为条件时,其效果是检测流的状态。如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符(e
2022-02-20 09:39:31
1003
原创 c++ 函数改变原始值大小的两种办法
1.传入原始值的地址,通过指针改变原始值的大小#include <iostream>using namespace std;void func(int *a) { *a = 5;}int main(){ int a = 3; func(&a); cout << a;}输出:52.引用的方法,直接改变原始数值#include <iostream>using namespace std;void func(int &a) {
2022-01-14 09:57:09
488
原创 单调递增或非递增子序列的长度
在数列{x1,x2,x3,…,xn}\lbrace x_1,x_2,x_3,\ldots,x_n \rbrace{x1,x2,x3,…,xn}中,寻找最长单调递增子序列{xi,xj,…,xk}\lbrace x_i,x_j,\ldots,x_k \rbrace{xi,xj,…,xk}的长度,其中1≤i<j<k≤n1 \leq i < j<k\leq n1≤i<j<k≤n同时:xi<xj<…<xkx_i<xj<\ldots<
2021-12-19 19:06:36
211
原创 c++ 排序函数使用模板
sort(nums.begin(), nums.end(),[&](const auto& a, const auto& b){(填写cmp函数)});
2021-12-01 10:51:36
457
原创 20s内爬取百度西游记
import requestsimport reimport timeimport asyncioimport aiohttpimport aiofiles# 对指定的url内容进行读取到文件的操作async def get_content(title ,page_url): async with aiohttp.ClientSession() as session: async with session.get(page_url) as resp:
2021-11-11 16:50:52
263
原创 python 线程池和进程池
python可以自己建立线程池,和进程池,而且可以自己进行调度,大大提高了程序的运行效率。线程池的写法:from concurrent.futures import ThreadPoolExecutor# 需要放到线程里的函数def fn(name): for i in range(100): print(name, i) if __name__== '__main__': # 初始化一个容量为50的线程池 with ThreadPoolExecu
2021-11-10 13:49:57
465
原创 python 多线程写法
进程:资源的管理单位线程:cpu执行单位引入多线程,可以提供程序执行效率写法1(主要写简单的函数):from threading import Threaddef func(): for i in range(1000): print("func", i)if __name__ == '__main__': # 调用多线程 t = Thread(target=func) t.start() for i in range(1000):
2021-11-07 10:05:53
292
原创 异或的运算
运算规则:x ^ x = 0x ^ 0 = x设 y != xx ^ y 得到的是x + y 没有进位的结果涉及得到的leetcode题目:easy:查找数列里缺失的数字
2021-11-06 10:06:32
3821
原创 python 爬取17k网址的个人书架内容
import requestssession = requests.session()data = { 'loginName': 账号, 'password': 密码}# url = 'https://passport.17k.com/ck/user/login'resp = session.post(url, data=data)resp1 = session.get('https://user.17k.com/ck/author/shelf?page=1&appK
2021-11-02 22:46:44
496
原创 python爬取猪八戒网的内容
from lxml import etreeimport requests# 爬取页面def get_page(url): resp = requests.get(url) resp.encoding='utf-8' return resp.text# 从页面中提取所需要的信息def get_info(s): html = etree.HTML(s) divs = html.xpath('/html/body/div[6]/div/div/div[3]/d
2021-11-02 18:31:55
713
原创 leetcode 出租车问题的一些思考
题目链接求解思路:动态规划,并且记录下搭配方案。时间复杂度:O(n)空间复杂度:O(n * m)class Solution {public: long long maxTaxiEarnings(int n, vector<vector<int>>& rides) { sort(rides.begin(), rides.end()); // 计算收入的dp数组 vector<long long> d
2021-10-31 10:08:18
358
原创 c++ vector操作
1.一维vector变量设置。# include <iostream># include <vector>using namespace std;int main(){ vector<long long> nums(10, 12); for(auto& num: nums){ cout<<num<<' '; }}12 12 12 12 12 12 12 12 12 122.二维vector变量设置:# inclu
2021-10-24 22:43:37
395
原创 python re模块
re模块包含对于正则表达式的运用的函数。重点知识:findallfinditersearch(?P正则)group()import retest = "我今年18888岁, 有4个爱好"# # 1.从一个字符串中提取到所有的数字# lst = re.findall('\d+', test)# print(lst)# # 2.判断一句话中是否有数字,搜索数据常用# # search的特点:匹配字符串,匹配到第一个结果就返回,不会匹配多个结果# res = re.searc
2021-10-24 09:26:14
87
原创 正则表达式
正则表达式是对字符串操作的一种逻辑公式,我们一般使用正则表达式对字符串进行匹配和过滤。使用正则的优缺点:优点:灵活,功能性强,逻辑性强缺点:比较难正则表达式由普通字符和元字符组成。1.字符组:字符组用[ ] 在[ ]中出现的内容会被匹配,例如[abc]匹配a或b或c如果字符组的内容过多还可以使用-.例如:[a-z]匹配a到z之间所有的字母。2.简单元字符:. : 匹配除换行符外的一个任意字符\w :匹配字母或数字或下划线\W :匹配非字母或数字或下划线\D :匹配非数字\S :匹配非
2021-10-22 22:00:52
91
原创 python traceback模块
在通过try…except捕获到异常后,用traceback模块记录异常到日志里。import tracebackimport logging# 建立日志logging.basicConfig(filename='d.txt', format='%(asctime)s - %(filename)s - %(levelname)s - %(module)s : %(message)s', datefmt='%Y-%m-%d
2021-10-18 20:47:31
351
原创 python logging模块
logging模块主要用来生成日志,记录报错信息,方便处理import loggingimport logging# filename: 文件名# filemode: 文件访问的格式# format: 数据的格式化输出,最终在日志文件中的样子# 时间-名称-级别-模块:错误信息# 名称如果不给出,默认为root# datefmt: 时间的格式# level: 错误的级别权重,当错误的级别权重大于等于level的时候写入文件loggin
2021-10-18 20:36:12
76
原创 python 对于程序异常的处理
1.try…except…:处理异常try: print(1 / 0)except FileNotFoundError: print("出错了")finally: # 无论程序执行的结果怎么样,都会执行这一步,运用在处理数据库时,及时退出数据库 print("程序执行结束")对于无法预料的错误,还是会出现报错信息。程序执行结束Traceback (most recent call last): File "C:/Users/DELL/PycharmProjects/
2021-10-18 18:59:24
2614
原创 python hashlib模块 md5加密
进行md5加密。import hashlib# 创建md5对象, 正常的默认加密方式容易撞库,解决的方法:加盐obj = hashlib.md5('12121'.encode(('utf-8')))# 把要加密的信息传递给objobj.update("6666".encode('utf-8'))# 从obj中拿到密文mi = obj.hexdigest()print(mi)输入账号,密码,对密码进行md5加密后存储再test.txt。后将账号,加密后的密码存储在test.txt里im
2021-10-17 22:17:39
644
原创 python json模块
1.json是一种数据交互的数据格式2.来自于前端3.json可以和python互相转换4.dumps: python数据结构转为json格式的数据import jsondic = {"id" : 1, "age": 21, "name": "盖伦", "LOGGING":True,'Remark':None}# ensure_ascii=False 确保中文不会被转为ACSII码s = json.dumps(dic, ensure_ascii=False)print(s, type(s))
2021-10-17 21:29:30
63
原创 python pickle模块
序列化:把对象转化成二进制文件,方便传输存储反序列化:把二进制字节转化为对象利用pickle模块里的函数1.dumps: 把对象(数据)转化为字节import picklelst = [1, 2, 3, 4, 5]# 将lst转为二进制t = pickle.dumps(lst)print(t)输出:b'\x80\x03]q\x00(K\x01K\x02K\x03K\x04K\x05e.'2.loads:把字节转为对象(数据)t = b'\x80\x03]q\x00(K\x01K\
2021-10-17 20:38:05
91
原创 python random模块
random模块用于生成随机数。import randomprint(random.random()) #[0, 1]之间的随机小数print(random.uniform(5, 9)) #输出[5, 9]之间的随机小数print(random.randint(5, 9)) #随机输出[5, 9]之间的整数输出:0.086656242837248388.6558291059071159同时,可以随机取出列表,元组里的元素import randomlst = ["上单", "中单",
2021-10-17 20:03:41
98
原创 python 生成n位随机数
# 生成数字def rand_num(): return str(random.randint(0, 9))# 生成大写字母def rand_upper(): return chr(random.randint(65, 90))# 生成小写字母def rand_lower(): return chr(random.randint(97, 122))# 生成n位随机验证码def rand_verify_code(n=4): lst = ["rand_num"
2021-10-17 19:59:17
2038
原创 python datetime模块
now()当前的系统时间计算时间差from datetime import datetime# 输出当前时间print(datetime.now())# 得到一个时间 年月日时分秒t1 = datetime(2018, 1, 2, 12, 12, 14)t2 = datetime(2019, 1, 2, 12, 12, 12)# 求两个时间的差值dif = t2 - t1# 将时间的差值转为秒print(dif.total_seconds())输出:2021-10-17 18:
2021-10-17 19:22:04
94
原创 python time模块
一般使用time模块1.让程序休息n秒,可以在爬虫时,有效地降低访问频率。import timeprint("Let's go")# 让下一个程序暂停3s再执行time.sleep(3)print("oh!")2.简单的时间差计算,计算代码段的执行时间。import timea = time.time() # 当前的系统时间,从 1970年1月1日0点0分0秒开始到现在经过了多少秒for i in range(10000): print(i)b = time.time()
2021-10-17 18:20:47
60
原创 python 汉诺塔问题
汉诺塔问题:相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。解决办法:1.将 n - 1个铜块从A经过C移动到B2.将最底下的铜块从A移动到C3.将 n - 1个铜块从B经过A移动到Cdef hon
2021-10-17 16:06:45
2077
2
原创 python 递归查看文件夹里的文件
#导入文件操作模块import os# 定义递归访问文件的函数readdef read(path,ceng): # 访问path路径下的文件或文件夹 lst = os.listdir(path) # 打印每一层的文件或文件夹 for name in lst: # 拼接名称,得到绝对路径,判断该文件是否符合是文件夹 real_path = os.path.join(path, name) # 如果是文件
2021-10-17 15:26:35
310
原创 python 利用product找数组里数字的所有可能的集合
import itertoolsnums = [1, 2, 3, 4]# 生成 2^n 个集合for mask in itertools.product([True, False], repeat=len(nums)): sub = [] # 根据得到的集合,把数字填进去 for i in range(len(nums)): if mask[i]: sub.append(nums[i]) print(sub)
2021-10-17 12:49:31
197
原创 python 递归深度
import sysprint(sys.getrecursionlimit())输出:1000由此可得默认的最大递归深度为1000但是,在实际操作时,递归深度到不了1000下面测试:def fun(cnt): print(cnt, end=" ") fun(cnt + 1)fun(1)最后到998就截止了。当然,可以人为更改递归深度。import sysprint(sys.getrecursionlimit())#更改递归深度为2000sys.setrecu
2021-10-15 22:27:03
317
1
原创 python 内置函数filter
filter(筛选函数, 筛选对象)之后要用迭代器不断地取出对象#筛选出lst里能整除3的数,之后,返回迭代器。lst = [1, 323, 43, 6435, 54, 2452, 4352]f = filter(lambda x : x % 3 == 0, lst)print(type(f))it = iter(f)while True: try: print(next(it)) except StopIteration: brea
2021-10-15 22:07:41
231
原创 python 内置函数sort
sort(排序元素,key = 排序规则, reverse = True(从小到大) Fasle(从大到小))lst = [{"id": 1, "name": '盖伦', "age": 18}, {"id": 2, "name": '杰斯', "age": 16}, {"id": 1, "name": '压缩', "age": 19}]# key 是排序的规则制定res = sorted(lst, key=lambda dic: dic["age"], reverse=Tr
2021-10-15 21:56:43
93
原创 python 内置函数
一、作用域相关1.globals:查看全局作用域里的内容a = 10def func(): a = 10print(globals())打印结果:{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000205433B9240>, '__spec__':
2021-10-15 20:46:30
119
原创 python 匿名函数
为了解决一些简单的需求而设计的一句话函数。fn = lambda a, b: (a + b, a - b)print(fn(1, 2))打印结果:(3, -1)lambda 表示的是匿名函数,不需要def来声明,一句话就可以声明一个函数语法:函数名 = lambda 参数 : 返回值注意:1.函数的参数可以有多个,多个参数之间用逗号隔开2.匿名参数不管多复杂,只能写一行,且逻辑结束后直接返回数据3.返回值和正常函数一样,可以是任意数据类型匿名函数并不是一定没有名字,这里前面的变
2021-10-15 18:12:08
86
原创 python 各种推导式
列表推导式的基本语法:[结果 for循环 if条件]lst = [f"k * {i}" for i in range(1, 11) if i % 2 == 1]print(lst)输出:['k * 1', 'k * 3', 'k * 5', 'k * 7', 'k * 9']字典推导式:{key : value for循环 if}lst = ["a", "b", "c"]di = {lst[i] : i for i in range(len(lst))}print(di)输出:{'
2021-10-09 12:39:44
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人