Python随笔
文章平均质量分 57
惊瑟
坚持!坚持!
展开
-
python初始化多维列表的坑
python初始化多维列表的坑原创 2023-03-19 13:52:15 · 214 阅读 · 1 评论 -
ray简单介绍
ray使用也有一段时间了, 这篇文章总结下ray的使用场景和用法原创 2023-02-16 16:49:56 · 1144 阅读 · 0 评论 -
将atan2的坐标转化为(0, 2pi)或(0, 360)
atan2(), 反正切函数, 可以用来计算两点之间的弧度/角度, 但是该角度是在它特有定义下角度(-180~180], 但有时候我们需要转化为[0, 360), 本篇文章提供一种转化思路i。如何将该坐标系转为(0~360)呢?原创 2023-02-14 19:55:34 · 2046 阅读 · 0 评论 -
ForkingPickler(file, protocol).dump(obj) TypeError: ‘NoneType‘ object is not callable
在使用multiprocessing时出现该报错,不知问题出在哪,网上找了好久,最终问题解决了,但具体原因仍然不是很清楚,暂且记录一下,也给有同样问题的伙伴提供一些思路。原创 2022-10-11 11:24:43 · 1322 阅读 · 0 评论 -
pytorch dataloader详解
构建自己的dataloader是模型训练的第一步,本篇文章介绍下pytorch与dataloader以及与其相关的类的用法。原创 2022-08-25 17:56:21 · 12736 阅读 · 1 评论 -
numpy关于两个array叠加操作
numpy中有很多关于两个array的操作,叠加方式以及叠加后的维度经常令人迷惑,这篇文章总价一下原创 2022-08-01 15:48:10 · 2975 阅读 · 0 评论 -
python二进制串转字符串,正常显示中文
python二进制串转化为字符串,正常显示中文原创 2022-07-12 16:42:36 · 4143 阅读 · 0 评论 -
multiprocessing.pool详解
由于python有全局锁限制,如果想利用多核,就需要使用多进程模块,但该模块有很多坑,本篇文章记录一下其用法以及踩过的坑。原创 2022-06-24 10:59:35 · 4870 阅读 · 1 评论 -
赋值、浅拷贝和深拷贝
python中为声明一个变量有三种方法:赋值、浅拷贝(shadow copy)、深拷贝(deep copy),相信每个pythoner或多或少都知道他们之间的区别,但在某些点上,还是会踩坑,这篇文章记录下所有关于这三者区别的疑问。...原创 2022-06-15 10:22:46 · 284 阅读 · 0 评论 -
python os.path.join
os.path.join用于将多个路径拼接为一个完整路径。经常使用,但没了解过细节,直到今天遇到一个令人疑惑的问题,最后发现是`os.path.join`的问题,借此机会,记录下os.path.join的用法原创 2022-06-13 12:12:04 · 2118 阅读 · 0 评论 -
python sorted函数详解
sorted()函数可以对可迭代对象进行排序,并且可以人为指定排序的依据以及方式。原创 2022-06-06 16:57:31 · 12144 阅读 · 2 评论 -
python创建生成器以及访问的方法
与列表一次性地将数据全都加载到内存不同的是,生成器使用推断加载数据,每次只推断出一个对象,在数据量比较大时,可以节省内存。这篇文章简单总结下创建生成器的方法,并用举一个生成器在斐波那契应用的例子。...原创 2022-06-06 14:39:38 · 507 阅读 · 0 评论 -
python 将字典改造为对象
在实际项目中,当使用json模块加载一个深度很深的字典类型的json文件时,使用字典的访问方式,将会出现很多中括号,即不直观也不美观,可以将这个字典转化为对象,使得可以用.的方式访问。......原创 2022-06-06 11:29:22 · 2837 阅读 · 0 评论 -
pytest无法导入项目module
一、问题在使用pytest进行单元测试时,往往要先将要测试的模块import过来,再编写具体的测试文件。测试文件写好后,加入直接执行 pytest test_xx.py,就会收到报错: ModuleNotFoundError: No module named 'xxx'二、解决方法在项目顶层目录下,同时保证测试文件中的import都是项目顶层目录开始的绝对导入,使用python -m pytest your_prj_path/test_xx.py来启动pytest。三、原因python -m原创 2022-05-26 19:40:57 · 680 阅读 · 0 评论 -
python getattribute 、getattr、setattr 详解
python类中默认有一些特殊方法,这篇文章记录一下特殊方法的功能及用法。一、__getattribute__()顾名思义,当访问object的属性会调用该方法,可以测试:class A(object): def __init__(self, name,age): self.name = name self.age = age def __getattribute__(self, attr): print("__getattrib.原创 2022-05-12 16:23:50 · 1097 阅读 · 0 评论 -
python *args和**kwargs详解
一、使用场景在定义类或函数时,以下场景会用到*args和**kwargs,前者叫位置参数,后者叫关键字参数不确定传入参数的数量或形式不关心传入参数的数量或形式(此时该类或函数多作为一个中间件的角色,接收参数后只是做了一些预处理,最后将这些参数传递给其他类或函数做进一步处理,如装饰器)二、使用方法基本使用:def receive_args(*args, **kwargs): print(f'args type is: {type(args)}, value is: {args}')原创 2022-05-12 14:13:21 · 10534 阅读 · 1 评论 -
python import详解
在使用python做一些简单项目时,import一般不会出现问题,但项目结构复杂时,import可能发生报错。最常见的错误是:ImportError: attempted relative import with no known parent package,要弄清楚问题本质,就需要了解import的工作机制了。众所周知,import分为绝对导入和相对导入,两者的唯一区别就是是否使用了"."为一探究竟,构建以下项目目录:一、绝对导入先明确下,python中modules的概念并不统一,官方文档.原创 2022-05-10 11:19:29 · 5340 阅读 · 1 评论 -
Python装饰器详解
Python装饰器可以在不改变函数原实现方式的前提下,为函数添加额外的功能。装饰器的功能并不费解(fun = decorator(fun) ),但具体实现时有一些细节还是需要搞明白。一、函数装饰器为表述方便,下面例子decorator开头的表示装饰器函数,func表示被装饰函数。decorator不带参数#不带参数的装饰器def decorator_without_args(func): def wrapper(msg): print('I got a decor.原创 2022-04-28 19:49:45 · 2459 阅读 · 1 评论 -
python变量赋值踩坑记录
我们都知道python有深拷贝和浅拷贝,但变量赋值又是什么机制呢?这是个容易被忽略却又极易踩坑的点,我们来一探究竟。先说结论:变量赋值属于浅拷贝(关于深拷贝和浅拷贝的区别可以自己了解下)。故如果是可变类型变量(如a是list类型,a=b)赋值,修改a会牵连到b;如果是不可变类型(如int)的赋值,则修改任意变量不会传递。1. 可变类型赋值可以看出,对于可变类型赋值,变量始终指向同一块地址。2. 不可变类型赋值对于不可变类型变量的赋值,刚开始是指向同一块地址,但修改.原创 2022-02-20 15:32:57 · 735 阅读 · 0 评论 -
程序员的终极浪漫,用python画一棵你的专属圣诞树
turtle是python3自带的绘图模块。这个模块最有趣的地方在于它完全是拟人化的。在真正绘画开始前,你可以设置画布大小&颜色,然后指定画笔的形状(默认是小乌龟~)以及颜色,最后指定坐标,就可以开始绘画了。甚至它还包含了画笔动作,如旋转,提起笔(不提的话前后两个位置会有连线)等等,非常有趣。刚好赶上节日,快用turtle画一棵你的专属圣诞树,送给你的那个TA❤吧。turtle画图的步骤创建画笔实例myPen = t.Turtle()myPen.shape("blank") # 默认.原创 2021-12-24 09:31:40 · 4409 阅读 · 0 评论 -
python 实现字符串加法
给定两个由数字组成的字符换num1和num2,计算它们的和,不能用内置的加法方法。基本思路就是竖式计算的过程,两种方法,其中涉及一些容易出错的地方,代码中都做了注释。# 两个字符串(合法的数字字符串)相加,不能用内置库# 算竖式的思想,个位对齐,相加,并把进位传递到下一位def add_strings(a,b): len_a = len(a) len_b = len(b) n = max(len_a,len_b) carry = 0 # 进位标志 re原创 2021-12-05 15:55:33 · 9414 阅读 · 2 评论 -
python 全排列(回溯算法)
问题:输入列表L(不含重复元素),输出L的全排列。如输入:L=[1,2,3]则输出:[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]] 全排列问题,可以用回溯法解决,详细分析请参考东哥公众号:labuladong,看了之后醍醐灌顶。 先帖一个正确解法:'''回溯算法模板:from: labuladong公众号result = []def backtrack(选择列表,...原创 2021-11-20 09:02:07 · 4245 阅读 · 4 评论 -
python反转链表(递归&迭代)
#定义链表node结构class ListNode: def __init__(self,data): self.data = data self.next = None#将L转化为链表def make_list(L): #将L初始化为链表 head = ListNode(L[0]) cur = head for i in L[1:]: cur.next = ListNode(i) cur .原创 2021-11-13 19:12:42 · 1722 阅读 · 0 评论 -
python将列表转化为链表
python创建链表A:首先明确一下,怎样才算拿到一个链表?又怎样才能访问整个链表呢?Q:1.拿到链表的头节点=可以访问链表了。2.通过不断访问下一个节点(current_node.next())来实现遍历整个链表。代码如下:# -*- coding: utf-8 -*-'''func:输入一组数字,并将其初始化为链表author:jyz'''#节点类class Node(): def __init__(self,data): self.data = dat原创 2021-08-08 15:46:24 · 1339 阅读 · 0 评论 -
pyspark出现错误
1.环境win7、pycharm、python2.7、spark-2.3.1-bin-hadoop2.72.wordcount程序#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/12/1 0001 上午 9:10# @Author : JingYZfrom pyspark import SparkC...原创 2019-01-14 11:58:16 · 1990 阅读 · 0 评论 -
Python中的复制、浅拷贝与深拷贝
1.对象的三要素id、type以及value,id唯一标识一个对象,相当于地址,id一样,说明就是同一个东西。type和value就是字面意思。2.==和is==比较的是value,is比较的是id,意思是 “是否为同一个对象”,条件比==要严格。3.可变对象/不可变对象Python一切均是对象,不可变对象有:数字、字符串、元组等,为什叫不可变对象呢?难道我不能为一个整形变量...原创 2018-10-04 13:17:26 · 151 阅读 · 0 评论 -
Django 创建博客的小问题
新加一个APP,blogs,运行后出现错误RuntimeError: Model class blog.models.Category doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.查找后发现,Category并没有冲突,仔细检查后发现是因为‘blog’没有在set...原创 2018-08-01 17:25:26 · 201 阅读 · 0 评论 -
关于jinja2 宏定义的小问题
使用flask的render_template(渲染HTML模板)创建一个简单的web程序,代码如下:#coding:utf-8from flask import Flaskfrom flask import render_templateapp=Flask(__name__)@app.route('/')def f(): comments=['nihao','jing原创 2017-10-14 15:46:49 · 1424 阅读 · 2 评论 -
Python 一个服务器监听多个客户端请求
学习Python网络通信的时候发现书上只有一个服务端对应一个客户端的情形,于是自己想自己动手实现一个服务端响应多个客户端。首先建立服务器的socket来监听客户端的请求:tcpSerSock=socket(AF_INET,SOCK_STREAM)tcpSerSock.bind(ADDR)tcpSerSock.listen(5)这样服务器的监听socket就建好了。接下来的思路原创 2017-09-22 15:04:45 · 10158 阅读 · 17 评论