自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 如何手动添加NLTK data

Python的自然语言处理库NLTK在安装之后需要下载一些data文件才能使用。官方比较推荐的方式是直接运行下载data的代码:但是实际操作之后发现由于网络原因无法下载成功。除了运行代码之外,官方还推荐了两种下载数据包的方法:命令行执行安装命令以及手动添加。由于命令行执行安装命令也需要网络顺畅,跟运行代码本质上是一样的,所以我选择了比较稳妥的手动添加方式。第1步:先把全部data下载到电脑里。这里我提供一个我自己存放这些data的网盘地址: https://pan.baidu.com/s/1HrcWa

2022-12-04 14:31:08 2100 5

原创 使用关联子查询查找局部不一致的列的SQL语句

这是我在阅读Mick的《SQL进阶教程》第一章第2小节时遇到的一道思考题。原问题如下:作者已经给出了用自连接的解决方法以及查询的结果:随后,抛出了一个思考题:如何用关联子查询来得到相同的结果呢?当我们把这个表跟它自己做关联子查询的时候,就可以得出各种价格的记录数量。如果价格是独特的,那数量就是1,如果存在等价的水果,那数量就大于1.利用这个条件,可以查出符合条件的记录。我们要查询的内容可以描述为“满足价格相同并且名字不同的水果”,而我一直回避使用的EXISTS谓词的功能正是判断是否存在满足某种条件的记

2022-06-07 22:10:30 622 2

原创 ubuntu系统mysql控制台无法输入中文的一种替代性解决方法

问题描述尝试用lampp在ubuntu系统上搭建web项目运行环境的时候,发现mysql控制台无法输入中文。我是用xshell远程连接运行在virtualbox里的ubuntu虚拟机,在ubuntu的命令行写中文完全没有问题,用vim新建文件,在里面写中文也都正常,但是只要进入mysql的控制台,就完全没有办法写汉字,从windows里复制好的汉字,到了mysql控制台执行粘贴后,汉字也不会显示。尝试过的无效解决方法1. 修改了/opt/lampp/etc/my.cnf配置文件,在里面各种设置默

2022-03-24 11:33:12 2155

翻译 pygame.Color

表示颜色的pygame对象。Color(r, g, b) -> ColorColor(r, g, b, a=255) -> ColorColor(color_value) -> Colorpygame.Color.r 获取或者设置Color对象中的红色数值。 pygame.Color.g 获取或者设置Color对象中的绿色数值。 pygame.Color.b 获取或者设置Color对象中的蓝色数值。 pygame.Color.a 获取或者

2021-05-06 11:52:59 383

原创 Python实现百钱买百鸡

一、问题描述《算经》中有一道很有趣的数学题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?转化为数学语言,也就是我们要找到三个不大于100的非负整数x,y,z,满足x+y+z=100,并且5x+3y+z/3=100.二、普通解法很容易想到使用嵌套的for循环来搜索合适的三个变量。代码如下:for rooster in range(101): for hen in range(101): for chick in range(10

2021-02-16 14:34:50 31876 15

原创 十进制数转化为二进制数的两种方法

如果我们要把十进制的150转化为二进制数,可以使用下面两种方法:第一种方法:表格法这种方法的核心思想就是用二进制的各位来“拼凑”出我们的十进制数。我们先把二进制各位的位权列在表格里面。(我们如何知道要列多少位出来呢?其实我们就是要列到比150小并且最接近150的那一位,也就是列到128就可以了。)128 64 32 16 8 4 2 1 然后我们从左...

2020-12-29 21:14:52 50673 8

原创 Python的海龟绘图库turtle中tracer(False)和speed(0)的区别

一、问题描述turtle是一个又简单又有趣的画图工具,很多刚开始接触Python编程的小伙伴都会用turtle画一些简单的图形。为了让turtle画得快一些,我们可以使用speed(0)来把它的速度调到最高,也可以使用tracer(False)关闭它的轨迹,画好之后再使用update()来更新画面。如果只是给一个简单的图形绘制加速,这两种方法都可以使用。那么它们在什么情况下会表现出巨大的差异呢?二、具体解释我们知道,小海龟画图的方式就是在画布上爬来爬去,它走过的地方会留下它的“脚印”,连贯的脚印

2020-10-21 12:47:58 22137 15

翻译 求助!我怎么移动一个图像?

原文链接:https://www.pygame.org/docs/tut/MoveIt.html作者:Pete Shinners很多刚接触编程和图像处理的人都要经过一个很艰难的阶段才能搞明白图像是怎么在屏幕上移动的。在没有理解所有的概念之前,这确实会让人感到困惑不解。你不是第一个被难住的人,我会尽力一步一步地给你讲清楚。我们最后甚至会一起学习那些让你的动画变得高效的方法。请注意,这篇文章不是教你用Python编程的,只是给你介绍一些pygame的基础知识。不过是屏幕上的像素点罢了P.

2020-10-13 15:22:31 364

翻译 导入和初始化

原文链接:https://www.pygame.org/docs/tut/ImportInit.html作者:Pete Shinners导入和初始化Pygame是一个非常简单的过程。它也很灵活,你可以自己掌控发生的事情。Pygame把不同的模块收集到了一个python库里面。有些模块是用C语言写的,有些是用Python写的。有些模块是可选的,可能有时候没有。这里只是简单地介绍一下当你导入pygame的时候发生了什么事情。要想得到更清楚的解释,肯定还是得看pygame的例子。导入(..

2020-10-11 11:19:18 186

翻译 Python Pygame介绍

原文链接:https://www.pygame.org/docs/tut/PygameIntro.html作者:Pete Shinners这篇文章是写给Python程序员的pygame库介绍。最初的版本刊登于Py Zine杂志的第一册第三期。当前这个版本包括了一些细微的修订,我们尽力打造出一篇全面优化的文章。Pygame是一个Python的扩展库,它囊括了SDL库以及整个库的辅助库。历史Pygame起源于2000年的夏天。作为一个有多年经验的C语言程序员,我几乎是同时发现P...

2020-10-10 16:18:47 3685 1

原创 Python中使用unittest做单元测试时如何优雅地处理input

一、问题描述假设我们有下面的一个函数需要接受测试:def add_3(num): return 3 + num上面这个函数就是把给定的参数加上3,然后返回。用unittest来做测试非常简单,代码如下:import unittestfrom operation import add_3class TestOperation(unittest.TestCase): def test_add_3(self): # 断言add_3(5)的返回值是8

2020-08-06 16:51:58 1847 2

原创 Python内置函数getattr的使用场景

一、getattr函数的作用是什么?在Python交互式的help环境下,输入getattr,回车,会得到下面的信息:阅读上图的信息,我们对getattr函数可以有如下认识:它接受两个位置参数——object和name,还接受一个可选参数——default 参数object是一个对象 参数name的类型是字符串,它是对象object的属性名字 如果我们有一个对象叫alex,他有一个属性是age,那么getattr(alex,'age')得到的结果和alex.age是一样的 如果我们不

2020-07-31 17:33:31 3092

原创 Windows上用Pyinstaller打包带有媒体文件的Pygame项目的注意事项

一、问题描述之前只用pyinstaller打包过tkinter项目,很顺利,这次打包pygame就出了问题。打包出的exe文件双击后闪退,为了看到错误消息,我取消了-w选项,于是就在控制台看到了以下消息:可以看到,无法找到我的字体文件。其实不止是字体文件,我游戏中的背景音乐和音效都找不到。这是因为打包的时候没有指定添加媒体文件。二、解决方法pyinstaller提供了--add-data选项来手动添加要一并打包的文件,这个选项可以多次使用。比如,有一个游戏项目的目录结构如下:&gt

2020-07-19 14:37:25 1184 4

原创 如何在Windows10上使用celery

一、问题描述我在windows10上开发Django项目时需要使用celery异步发送邮件, 安装的celery是4.4.2版本,使用的message broker是RabbitMQ3.8.5,在配置好了celery,写好了tasks.py文件后,使用以下命令启动celery:celery -A myshop worker -l log到目前为止一切正常。然而,在我的网站执行了需要发送邮件的操作后,celery虽然显示接收到了任务,却一直不执行。重启多次celery和rabbitmq也没有效

2020-06-22 11:24:36 5027 11

原创 Python广度优先搜索寻找朋友圈中关系最近的律师

一、问题描述该问题受《算法图解》第6章寻找朋友圈中的芒果销售商启发,但是在它的基础上做了一些优化,使用了一些很棒的工具以及巧妙的方法(参考classic computer science problems in Python)。下面请看具体描述:如果我们列出自己的朋友们以及每个人的职业,然后再列出朋友的朋友以及他们的职业,以此类推,向外围扩展,这样就得到了一个包含各种职业的朋友圈。现在,在这张关系网络里,我想找到距离我最近的律师。这里所谓的“距离”不是物理上的距离,而是人际关系上的距离。如果A是

2020-06-19 19:27:55 228

原创 自定义模型类使得django-taggit支持中文标签

一、问题描述django-taggit是一个很好的给文章打标签的应用,但是它的模型存储的标签默认是只支持ascii的slug,不支持中文。为了让其支持中文,我们不能直接使用Tag模型类,而是应该自定义模型类。当然,这个自定义并不是从零开始,而是继承它提供的基类。二、代码实现说明:下面的基于Django3 by Example里的博客项目,但是我没有把全部代码写全,只写了我实现的自定义taggit模型类支持中文的部分。对此项目感兴趣的朋友可以自行阅读书籍。models.pyfrom ta

2020-06-02 20:06:01 867 2

原创 Pandas函数read_csv的参数na_values的用法

一、问题描述我们使用Pandas的read_csv函数读取csv文件的时候,缺失的数据总是会自动填充为NaN.什么样的值会被认为是缺失的数据呢?我们能不能提供一些个性化的缺失数据?这就要用到na_values参数。下面将介绍这个参数。二、na_values参数的用法我们有一个文件叫comments.csv,如果普通读入,得到的结果如下图所示:这份数据看起来很完整,没有缺失的值。但是行索引为1的用户的年龄是0,这是不合理的,所以我们也想把它看成缺失值,希望它能变成NaN.这时候我们就可以使

2020-05-11 15:11:37 18137 14

原创 CSS如何使用伪元素选择器给所有的div里的文本前面添加小写罗马数字编号

一、需求说明假设现在我有三个div标签,它们在浏览器里显示的内容如下图所示:我希望使用CSS给它们全部添加上序号,添加好序号后的样子如下图所示:可以看到序号是递增的,不是普通的阿拉伯数字,而是小写的罗马数字。我们可以使用CSS伪元素选择器来完成这一工作。二、代码实现/*创建一个计数器,命名为mycounter*/div{ counter-increment...

2020-05-03 15:39:25 1450

原创 javascript判断用户输入的是否为一个整数

一、问题描述合法输入举例:25,0,-11非法输入举例:3.14,hello,8杯水用户输入的内容被程序获取后,会是一个字符串。我们现在需要的是一个看起来是整数的字符串,其他的都不行。而看起来是整数的字符串在经过parseInt转化之后,会变成整数,但是看起来跟原来的字符串是一样的,那么用==来判断的时候就会得到true(要注意==和===的区别)。利用这一点,我们就可以判断用户输入的...

2020-05-01 13:48:22 1403

原创 Python实现二叉树的前序遍历(递归+借助栈的迭代)

目录一、问题描述二、递归实现前序遍历三、迭代实现前序遍历一、问题描述二叉树前序遍历的顺序是“根左右”,以下面这棵二叉树为例,前序遍历的结果应该是[1,2,4,5,3]要确保自己会使用纸笔对二叉树进行前序遍历,然后再往下看。下面是自定义的二叉树结点类:class TreeNode: '''二叉树结点类''' def __init__(sel...

2020-04-30 10:59:43 979

原创 Python递归实现枚举排列(给定一个元素不重复的列表,返回这些元素所有的排列形式)

一、问题描述如果我们有一个列表[1,2,3],我们很清楚地知道,这里面元素的所有排列如下:[1,2,3][1,3,2][2,1,3][2,3,1][3,1,2][3,2,1]因为问题规模比较小,手动写出结果不难。我们可以回顾一下枚举的思路,其实主要就是两点:每个元素都要做排头兵 除了排头兵以外,剩下的元素也要穷尽所有的排列基于这样的思路,我们很容易想到用递归...

2020-03-19 21:16:08 1809

原创 Python实现UTC时间和北京时间的相互转化

一、问题描述如果我们已经知道如何将A转为B,通常,我们会觉得把B转为A的方法也是类似的,或者是可逆的。但是,在使用datetime模块中的相关函数、方法转化UTC时间和北京时间时,情况却不太一样。这就是本篇博客谈论的问题中需要注意的一点。二、代码实现from datetime import datetime,timezonefrom pytz import timezoned...

2020-02-18 16:35:46 5810

原创 学习笔记(02):Python 面试100讲(基于Python3.x)-如何分别获取当前日期的年月日以及在一年中的第几天...

本课程搜集了各大互联网公司的Python面试题以及类似的题目。课程体系包括Python语言本身的知识、Python SDK、Web、Python爬虫以及算法等内容。所以的源代码都使用Python3.x编写。Python相关知识包括基本语法、正则表达式、字符串、数据库、网络、Web等。算法包括了一些出镜率高的内容、如与链表、树、数组相关的算法。...

2020-02-11 16:22:05 153

原创 学习笔记(01):Python 面试100讲(基于Python3.x)-请编写一个递归生成器,将任意多维的列表转换为一维列表...

本课程搜集了各大互联网公司的Python面试题以及类似的题目。课程体系包括Python语言本身的知识、Python SDK、Web、Python爬虫以及算法等内容。所以的源代码都使用Python3.x编写。Python相关知识包括基本语法、正则表达式、字符串、数据库、网络、Web等。算法包括了一些出镜率高的内容、如与链表、树、数组相关的算法。...

2020-02-11 16:07:55 202

原创 Python递归实现枚举组合(从n个不重复的元素中选出r个)

一、问题描述在数学上,我们经常遇到这样的问题:有编号分别为1,2,3,4,5的5个小球,从中选出3个,有多少种组合?利用数学公式,我们可以很方便地算出组合的数量。那么如何通过编程来枚举这些组合呢?也就是说,我们希望得到[1,2,3],[2,3,4]……这样的结果。当然,已经有现成的API能够帮助我们实现这个需求。接下来,我们就看看如何利用递归,自己写出这样一个用于枚举组合的函数。二、代码实...

2020-02-11 13:18:56 3821

原创 Flask报错RuntimeError: Working outside of application context.的解决

一、问题描述我有一个这样的需求:我在一个forms.py模块中建立了一个表单类,类中的一个表单域是SelectField,而它的选项(choices)是我数据库中所有老师的列表。为了获取这个列表,我需要每次都从数据库中查询一遍。为了使我的代码清晰,我在tools文件夹中单独创建了一个teacher_list模块,在里面写上了查询并获取teacher_list的代码,然后把teacher...

2020-01-28 20:52:38 5266 3

原创 Python实现中缀表达式求值

一、思路有些类似于先把中缀表达式转化为后缀表达式,然后再对后缀表达式求值。但是因为我们最终只需要求出来的值,不想得到后缀表达式,所以就一边遍历一边计算了。关键点在于,我们借助两个栈,一个栈存放操作数,一个栈存放运算符。每次计算都是从运算符栈弹出一个运算符,从操作数栈弹出两个操作数,计算后的结果压回操作数栈。二、代码实现def infix_evaluator(infix_express...

2019-12-26 19:13:56 4842 2

原创 Python实现向链表头部和尾部添加节点(复杂度都是O(1))

一、图解添加头结点比较简单,因为链表的头结点很容易获取。如下图:向尾部添加节点,一般会想到遍历,但是如果我们能始终跟踪当前链表的尾结点,那么向尾部添加节点就和向头部添加一样简单了。如下图:二、代码实现class Node: '''节点类''' def __init__(self,val): '''初始化方法 :参数 val...

2019-12-25 20:06:38 2532

原创 Python中用for循环一次性给单向链表添加多个节点

目录一、链表的Python实现二、一个一个地添加节点,生成链表三、用for循环一次性添加多个节点,生成链表一、链表的Python实现class ListNode: '''这是链表类''' def __init__(self,x): # val属性是当前节点的值 self.val = x # next属性是下一个节...

2019-12-20 14:47:19 1295 2

原创 json序列化时,如何定制支持datetime类型?

一、json序列化时默认支持的数据类型 Python JSON dict object list, tuple array str string int, float, int- & float-derived E...

2019-12-02 20:45:23 1859

原创 Python实现时间复杂度为O(n²)和O(n)的查找列表中最小值算法

一、 具体要求:二、 两种实现1. 时间复杂度为O(n²)这里的n代表列表里的元素个数,当我们用列表里的每个元素和其他所有元素比较的时候,我们就需要比较n的平方次才能找到最小值。def getMin(source_list): #两层循环,数量级是n² for i in range(len(source_list)): for j in r...

2019-11-19 12:33:22 1318

原创 C语言只用int这一种数据类型实现用拼音念数字

一、题目要求输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0: ling1: yi2: er3: san4: si5: wu6: liu7: qi8: ba9: jiu输入格式:输入在一行中给出一个整数,如:1234。提示:整数包括负数、零和正数。输出格式:在一行中输出这个整数对应的拼音,每个数字的拼音...

2019-10-03 14:47:08 886 1

原创 C语言计算第几个月兔子的对数能达到给定的数量N(斐波那契数列)

一、题目描述第一个月有一对刚出生的兔子,它们长到第三个月就有了生育能力,以后每个月都生一对兔子。所以出生的兔子,都会在出生后的第三个月具有生育能力,且所有的兔子都不会死。要求用户输入一个数字N,程序计算出到第几个月兔子的对数能达到N。二、代码实现这个问题里,ret=month++的用法值得关注。它的特点是,month虽然已经增长了1,ret得到的赋值还是month增长前的值。...

2019-10-02 14:20:12 1101

原创 Python递归实现①返回一个目录下所有文件绝对路径的列表②在给定目录下的所有子目录里创建文件③删除给定目录下的所有子目录中的指定文件

一、返回一个目录下所有文件的绝对路径的列表(只关心文件,不要子目录,但是子目录里的文件也都要返回)import osdef mywalk(path): ''' 返回给定路径下所有文件的绝对路径列表,包括子目录中的文件,但是不要子目录的路径 :参数 path:绝对路径 ''' #创建一个空列表,用于存储文件的绝对路径 files_l...

2019-09-05 11:47:45 394

原创 Python递归实现①把嵌套列表压平为一层列表②返回嵌套列表中某元素出现的个数③返回第n个斐波那契数

一、把嵌套列表压平为一层列表def flatten(nested_list): ''' 这是把嵌套列表压平为简单列表并返回的函数 :参数 nested_list:一个嵌套列表 ''' #先定义一个空列表,用于存储我们提出出来的元素, # 这也是最终要返回的那个列表 new_list = [] #遍历原始的嵌套列表 fo...

2019-09-04 17:14:30 773

原创 flask 用Pagination类来实现分页

一、需求描述在用flask开发项目的时候,我们经常需要分页。在query对象上调用paginate方法来分页是我们非常熟悉的一种实现方式。但是,如果出于某种原因,我们需要分页的数据不是query对象,而是普通的列表,那该怎么办呢?这时候,我们可以用flask_sqlalchemy的Pagination类来完成这项工作。二、代码示例from flask import Flask,req...

2019-09-01 13:09:36 1894

原创 用Python的turtle模块封装画层叠的正方形、五角星和旋涡的函数

一、效果图二、代码turtle_module.py'''这是自己写的一个小模块,里面全是封装好的用于画图的函数'''import turtledef make_window(bgcolor,title): ''' 这是一个返回自定义花布的函数 :参数 bgcolor:花布的背景颜色 :参数 title:花布的标题 '...

2019-08-23 13:13:36 2506

原创 用Python的turtle模块画一个钟表的表盘(内含效果图)

turtle模块很可爱,用来画一些规律性强的图形很容易上手。下面的代码向大家展示了如何绘制一个钟表的表盘:import turtle#实例化一个屏幕对象screen=turtle.Screen()#把屏幕的背景颜色设置为黄色screen.bgcolor('yellow')#实例化一个小乌龟,命名为baby,这也就是我们的画笔baby=turtle.Turtle()#把画笔的...

2019-08-19 14:53:02 7011

原创 使用httpie测试web服务返回状态码308的解决方法

一、问题描述我在使用测试我的flask项目web服务时,没有按照预期返回我要的json格式的数据,而是返回了状态码308和一些提示信息。如下图所示:二、解决方法在下面的描述里面已经很详细地告诉了我们问题,问题出在了细节上。我写的路由,没有写最后的斜杠/,这在浏览器里不会出问题,浏览器会自动把斜杠补上并跳转到正确的路由,但是这里就不行了。所以如果是末尾有斜杠的路由,千万不要忘记。...

2019-08-17 11:48:39 6277 4

原创 Flask从数据库中查询数据的filter和filter_by()方法的区别

一、问题描述Flasky查询数据的时候,会需要用到过滤器来根据一定的条件筛选。其中,有两个方法filter和filter_by看起来很像,那么它们的区别是什么呢?二、对比官方文档是这样写的:Query.filter()-filteron SQL expressions.Query.filter_by()-filteron keyword expressions....

2019-08-14 17:03:27 2975

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除