python
文章平均质量分 64
我是py呀
py_学习,发布一些我在学习中遇到的问题和经验总结,大家一起学习呀~
展开
-
详细讲解:Python中二进制以及数值的特殊性,在位运算中需要注意的点
我对python大整数的实现,点击查看在之前的文章,我实现过Python的大整数,可以说,在python中是没有数值类型这一说的, 你可以为一个变量赋值为上千亿,也不会出错。 没有了 如java中的int, short, byte等对位数的限制。已知int由四个字节表示,那么就有4X8 = 32位 可以表示的范围就是 -2^31 到 2^31 -1。但是在Python中# 参考大整数的实现,Python中的十进制是没有限制的。>>> a = 1000000000000000000原创 2021-07-07 15:58:55 · 903 阅读 · 0 评论 -
Python双链表详细讲解实现:模拟计算机缓存淘汰算法,FIFO,LRU以及LFU!
首先建立双向链表要注意的是,双链表增加头结点,会很方便操作还有双链表的插入删除操作上代码:功能弹出头部节点(pop)默认尾部添加结点(append),尾插法往头部添加结点(append_front),头插法删除节点(remove),不加参数时,删除尾部结点, 加蚕食时,删除指定结点打印 字符串格式化的 链表(print)#! -*- encoding=utf-8 -*-class Node: def __init__(self, key=0, value=0):原创 2021-06-28 12:51:24 · 374 阅读 · 0 评论 -
Python中 a, b = b, a 的具体字节码实现? 以及会出现的问题!
首先引入问题:力扣448题: 这是我的一种解法:class Solution: def findDisappearedNumbers(self, nums): rst = list() # 循环遍历每一个数组元素 for i in range(len(nums)): # 判断该元素位置上的值,是否需要交换, 注意 循环条件 while nums[i] != i + 1 and nums[i] !原创 2021-06-01 23:17:26 · 368 阅读 · 3 评论 -
关于linux操作系统中文件描述符以及Python 中open函数的理解
首先引入问题讨论:来自群聊记录文档里的open函数, 有个closefd的参数然后百度,分析,还要理解对话中的讲解里面的图片好了结束~原创 2021-04-24 18:11:33 · 122 阅读 · 0 评论 -
下载centos7安装Python3.8及centos7链接xshell,软连接的概念与vscode远程连接开发,亲测有效!!
步骤:一条龙下载centos系统–>配置网络,xshell连接–>安装Python3.8–>venv创建虚拟环境–>vscode远程连接开发,设置自动保存(1)下载centos系统(1)大家可以根据需要下载里面的centos系统(这里不给出具体的安装过程,网上可以参考很多,没啥大的差别)https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/(2)配置网络,连接xshell(1)配置网络cento原创 2021-04-22 15:54:48 · 509 阅读 · 2 评论 -
并发编程基础:计算机组成原理及操作系统相关基础知识总结
计算机组成原理基本知识:一:CUPCore:核心,既CPU的内核,cpu中间的核心芯片,单晶硅制成。cpu可分为单核和多核cpu。 每一个核都是独立的运算单元,可以完成独立的计算,接收指令,处理数据等。单核cup: cpu只有一个用来处理数据的核心。多核cpu:cpu中有多个进行处理数据的核心。另外,cpu核数和性能的关系是呈 线性增长的。赫兹(HZ):代表cpu的频率。cpu是以高低电平的转换来工作的,听过一个频率的概念,来表示cpu的性能。例如 2GHZ表示,每秒进行高低电平切换20亿次。原创 2021-04-17 18:05:30 · 1664 阅读 · 4 评论 -
python网络编程细节讲解socket 到 小型udp聊天器及 tcpweb服务器, 小型下载器(进度更新及大文件传输)简单实现。
一)什么是Socket?可能介绍时稍加自己理解,有偏差的地方,还请见谅。(1)首先我们了解计算机网络中的信息传输过程(有七层,五层,四层计算机网络原理体系结构)我说下我学习的五层结构。(1)主机A发送数据: 应用层-->运输层-->网络层-->数据链路层-->物理层(2)中间经过路由器:物理层-->数据链路层-->网络层(3) 知道到达主机B:物理层-->数据链路层-->网络层-->运输层-->应用层(2)为何使用socket原创 2021-04-10 16:05:22 · 239 阅读 · 3 评论 -
python实现10大排序算法详细介绍及排序思想介绍
什么是排序?排序是按关键字的非递减或者非递增顺序对一组记录重新进行排列的操作。(1)排序的稳定性通俗地讲,就是排序前 Ri 在 Rj前面,排序后Ri仍领先于Rj, 则说明是稳定的。(Ri<Rj)(2)内部排序与外部排序(3)内部排序方法的分类(4)待排序记录的存储方式一般为顺序存储结构或者是链式存储结构(5)排序算法效率的评价指标一.插入排序(1)直接插入排序"""直接插入排序:采用将r[i]与r[i-1], r[i-2],...,r[1],从后向前的进行原创 2021-04-06 21:27:38 · 559 阅读 · 0 评论 -
递归讲解与递归实现列表的反转
递归:特点:当一个复杂的问题可以分解为几个(最简单的就是一个)相对简单的且与原来问题解法相同或者类似的子问题来求解,便称为递归求解。:递归工作栈与递归过程:在高级语言中,调用函数与被调用函数之间的链接及信息交换需要通过栈来进行。字数太多,我们直接上图:递归算法的效率分析:时间复杂度: 大致为O(2^n) (斐波那契以及汉诺塔问题)空间复杂度: O(f(n)) ,f(n) 为递归工作栈中记录的个数与问题规模n的函数关系。分治法:一种分解-求解的策略,叫做分治法,用来求解递归原创 2021-04-01 18:13:59 · 3465 阅读 · 0 评论 -
Python字典hash表的模拟实现
本文学习自:《Python 源码深度剖析》感谢作者的传授若还不清楚字典的知识, 详细内容和知识点可点击了解功能主类(字典):PyDictObject(1) add_entry(self, key, value) : 添加元素(2)del_entry(self, key) : 删除元素(3) hash_list : (属性),可以遍历底层hash数组(4) entry_list: (属性),遍历底层键值对数组(5) 可通过简单的 for循环迭代,很方便pd = PyDictOb原创 2021-03-30 12:26:18 · 527 阅读 · 2 评论 -
模拟python底层数据类型,大整数的实现!
我们参考C源码的逻辑,试着用python去模拟一下大整数的实现,这里 只实现了加减法的操作。(感谢作者的专栏,收获很大,参考 慕课网:《Python 源码深度剖析》)(1)类: Int32()这是设计出来的,用来模仿 int类型 4字节的整形数据。定义了加减乘除4个基本运算利用数据描述器,对数据进行限制。最大的取值只有 -2 **31 到 2 **31 -1当运算结果大于 这个范围,便会抛出异常,提示你 整数溢出提供一个转换函数,当结果取值大时, 转换为 大整数类型进行计算(PyLongO原创 2021-03-10 16:52:18 · 827 阅读 · 0 评论 -
判断 矩阵对角线元素相等
看题目:已知矩阵:_matrix = [[1, 2, 3, 4], [5, 1, 2, 3], [9, 5, 1, 2]]如该矩阵,对角线上的元素相等,则输出 True,否则输出 False下面上代码def is_toeplitz_matrix(matrix): line_nums = len(matrix) per_line_nums = len(matrix[0]) col = 0 while col < per_line_nums -1: # 4原创 2021-03-05 18:03:57 · 2089 阅读 · 0 评论 -
静态链表和动态链表的创建使用 C语言与python实现
题目,以录入三个学生的成绩,学号为目的,创建链表(1)C语言(静态链表)// 静态链表/* 所以的节点都是在程序中定义的,不是临时开辟的, 也不能在用完后释放空间,这种称为静态链表*/# include <stdio.h>// 声明结构体struct Student{ long int num; float score; struct Student * next; // next 指针};int main(){ //原创 2021-02-01 10:59:10 · 463 阅读 · 0 评论 -
汉诺塔问题(Hanoi) C语言与Python实现
上 题目与分析:截取自C语言书籍中,详细的题目描述及解题分析C语言实现:尝试过自己解题,但是始终还是琢磨的不是很到位。总结一下主要是有两点(1) 去发现规律,想着去用递归,然后如何代码实现递归(2) 其中 叙述的 A B C,三个塔, 有两个过程, (1)A 借助 B 向 C ,(2) B 借助 A 向 C。 都可以抽象为 一个借助 另一个,向 另另一个三者的关系~ 这也将两种情况抽象的实现为一种,一个函数解决,我没想到这样下面是书中的解题代码// 汉诺塔问题#inclu原创 2021-01-20 13:32:14 · 298 阅读 · 0 评论 -
输出魔方阵,C语言与Python实现
上题目就是横竖斜的值相加相等规律:1.第一行中间一列的值为1。所以用j=n/2+1确定1的列数,得出a[1][j]=1。2.每一个数存放的行比前一个数的行数减1,列数加1。行数用i=i-1确定,列数用j=j+1确定。3.如果一个数行数为第一行,则下一个数行数为最后一行。4.如果一个列行数为最后一列,则下一个数列数为第一列。5.如果按上面的规则确定的位置上已有数,或上一个数是第一行最后一列,则把下一个数放在上一个数的下面。解法:利用二维数组表示实现将上述五原创 2021-01-19 20:12:47 · 1504 阅读 · 1 评论 -
超细节讲解杨辉三角!C语言与Python实现
33原创 2021-01-18 21:22:50 · 372 阅读 · 1 评论 -
输出菱形图案C语言与Python实现
上题目:要求, 输入菱形的宽 n,表示最宽地方的 * 个数,例如下图 n = 7C语言实现技巧:(1) 将菱形(如上图)分开为 上三角形,和倒三角形实现。(2) 分别找到 每行输出 空格 与 * 号的规律#include<stdio.h>int main(){ int n, m, c, i; printf("请输入*号的个数,代表菱形宽度:\n"); scanf("%d", &n); //打印上三角形 for(i=1; i<= (n + 1)原创 2021-01-17 20:53:46 · 1270 阅读 · 2 评论 -
水仙花数C语言与python版
水仙花数就是 100-1000 以内的三位数,例如:153 = 111 + 555 + 333 这样的数叫做水仙花数。C语言实现过程很简单,穷举,一个一个数字的循环试// 水仙花数#include <stdio.h>#include <math.h>int main(){ int b, s, g; for(int num = 100; num < 1000; num++) { b = num/100; s = num/10%10; g原创 2021-01-17 13:26:47 · 344 阅读 · 1 评论 -
翻译密码(简单的 大小写英文字母后移四位,其他字符不变)C语言与Python版本
题目及分析上图片~~~c语言实现(利用ASCLL码)// 译密码: 使用ASCLL码,转换#include <stdio.h>int main(){ // 1. 首先接收字符,我把它定义为 str,因为输出类似一个字符串 char str; printf("请输入要进行转换的一段话(英文字母加字符:)\n"); str = getchar(); while (str != '\n') { // 2. 判断是否为 a-z,A-Z ,不是就不动 if ((st原创 2021-01-16 17:18:46 · 4158 阅读 · 3 评论 -
斐波那契数列实现C与python版
Fibonacci数列:就是前两个数为1, 从第三个数字开始,该数字是前两个数字得和。c语言实现很简单,就是设置三个变量,依次循环,第三个变量等于前两个变量的和。// c语言实现斐波那契数列:计算第n个斐波那契数的值#include<stdio.h>int main(){ int n; long int f1=1, f2=1, f3; printf("请输入想要的斐波那契数(n>=3):\n"); scanf("%d", &n); for(int原创 2021-01-16 15:06:08 · 580 阅读 · 1 评论 -
python 虚拟环境迁移--解决docker部署python环境问题与错误总结
首先我使用的是老版的创建虚拟环境首先安装虚拟环境,命令如下:sudo pip3 install virtualenv #安装虚拟环境接下来还要安装虚拟环境扩展包,命令如下:sudo pip3 install virtualenvwrapper安装虚拟环境包装器的目的是使用更加简单的命令来管理虚拟环境。修改用户家目录下的配置文件.bashrc,添加如下内容:export WORKON_HOME=$HOME/.virtualenvssource /usr/local/bin/virtua原创 2020-09-17 18:31:11 · 3031 阅读 · 1 评论 -
python 函数内修改全局变量报错原因
请看问题代码提出问题:本意就该是 先使用全局变量a,再加一 然后赋值给一个定义的局部变量a。 内部是如何运行的,导致解释器不是按照上面的想法去做的呢?原因一:(1)这样很容易歧义,对于同一个名字它要么是局部变量,要么是全局变量,不能是兼而有之(2)解释器的规则是以赋值语句划分,如果一个变量在代码块中被赋值,它就是当前代码块的局部变量;否则看变量是否是外层函数的闭包变量,再看它是否只全局变量,最后看它是否是内建名字空间里的变量(3) a += 1 是一个典型的赋值语句,因此 a 一定是局部变原创 2020-09-08 15:49:17 · 1770 阅读 · 0 评论 -
关于列表表达式,嵌套字典表达式的问题
上问题这个问题也是出自群聊的时候,群友提出的把上面的弄成下面的,最简单的写法来一个解决方法(我的)只需要用一行代码就能解决,涉及到下面的知识(官方文档资料)思路是传统的先实现代码逻辑。然后再寻找化简方法。可以看到我试了三个,最后一个画线是对的,但是没有前面的一步步推理,一下子也很难联想到第三个。还有其他群友的解答可以的多少个for都可以再给出我的代码吧:a = [{'a':1, "b": 2, 'c':3}, {'a':11, 'b':22, 'c':33}]d原创 2020-08-22 20:28:23 · 380 阅读 · 0 评论 -
python随笔--关于实例对象访问类属性的一些东西
之所以是叫做随笔,是因为在一些 学习群或者是一些生活中的场景,偶然间学习到的。把它记录下来这是一位群友问的问题:我的思路解答后续还有关于私有变量的问题:一个下划线是 程序员们约定俗成的,不是作为语法规范。 只是你看到别人以单个下划线开头,就知道是私有变量,别去动它3.6python文档。...原创 2020-08-18 15:28:57 · 270 阅读 · 0 评论 -
第三章内建对象(2):浮点对象----面试题讲解
1原创 2020-08-11 08:18:21 · 193 阅读 · 0 评论 -
读python3.6官方文档的一些总结
本人比较懒,这里阅读文档胜读各种教学书籍!这里只是就一些内容进行展示,并没有仔细对文档中很多地方的感悟做细节的展示说明。首先要理解作用域与命名空间,才能对下面的进行理解下面是对 对象的理解l写的小实例:值得注意的地方:这个会在之后再次叙述:https://blog.csdn.net/QQ1131221088/article/details/84100392容器,迭代对象等概念对实例对象调用实例方法的初步青涩理解,似乎不太准确,但是有启发:大概意思好像是 实例对象调用类原创 2020-08-06 20:35:20 · 173 阅读 · 0 评论 -
分布式FastDFS文件系统介绍和理解: django开发之天天生鲜项目知识总结【8】
(新手初学,根据老师所讲,对此作出初步的理解和简介)什么是分布式FastDFS文件系统:FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。FastDFS 架构包括 Tracker ser...原创 2019-11-27 12:40:46 · 207 阅读 · 0 评论 -
【python和FastDFS交互】显示用户最近浏览记录:django开发之天天生鲜项目知识总结【11】
作为新手入门,这里只是简单地介绍下,如何使用 python客户端上传文件。(需要的可以参考我的前几个文章讲解~)所需要的包:这个是直接下载的一个源码的压缩包下面开始进行操作1. workon django_py32. 进入fdfs_client-py-master.zip所在目录3. pip install fdfs_client-py-master.zip我的操作截图:...原创 2019-11-27 11:31:07 · 306 阅读 · 0 评论 -
【详细自己踩点成功按步骤安装】Nginx配合FastDFS使用的安装和配置(及相关异常处理): django开发之天天生鲜项目知识总结【10】
(声明:我是在虚拟机ubantu中安装的~)介绍软件包:nginx-1.8.1.tar.zip : nginx安装包。fastdfs-nginx-module-master.zip : 想要 nginx 配合 FastDFS 使用,需要安装这个附加的模块。下面直入主题,进行安装:安装nginx及fastdfs-nginx-module1. 解压缩 nginx-1.8.1.ta...原创 2019-11-26 21:20:34 · 310 阅读 · 0 评论 -
【详细】FastDFS安装和配置:django开发之天天生鲜项目知识总结【9】
(声明我是在虚拟机中的ubantu中安装的)介绍软件包:fastdfs-master.zip 里面是FastDFS的代码文件。libfastcommon-master.zip 里面是FastDFS所需要的一些依赖的安装包。安装:(1)首先需要先安装FastDFS所需要的依赖包:libfastcommon-master.zip安装fastdfs依赖包1. 解压缩libfas...原创 2019-11-26 17:11:04 · 357 阅读 · 0 评论 -
Invalid input of type: CacheKey. Convert to a byte, string or number first:杂记问题处理
问题如下图:Invalid input of type: ‘CacheKey’. Convert to a byte, string or number first在网上搜索了很多,也没有结果,都说是redis数据库版本过高,需要更换成2.10.6,但是 如果redis换成 2.10.6版本的话,celery又会报错,因为 它只支持3.2.0以上版本,很冲突。。。所以绞尽脑汁,在想是否是d...原创 2019-11-25 10:58:22 · 826 阅读 · 4 评论 -
用django-redis来存储session及记住用户的登录名 : django开发之天天生鲜项目知识总结【7】
介绍django-redis:基于BSD许可,是一个使Django支持 Redis cache/session 后端的全功能组件~~没有安装reids的也可以看我之前的文章:1.【超详细安装配置教程】安装及配置redis数据库 ,与安装 tcl8.6.8版本2.【简单的配置】配置redis3. redis_启动服务端和客户端1.下面首先进行安装:pip install -i h...原创 2019-11-23 18:06:49 · 384 阅读 · 0 评论 -
制作登录时的验证码 : django开发之天天生鲜项目知识总结【6】
小白~我只是介绍一种简单的验证码首先我们需要下载一个模块 Pillowpip install -i https://pypi.tuna.tsinghua.edu.cn/simple Pillow==3.4.1下面直接上代码就可以了,在网上可以找到很多。from PIL import Image, ImageDraw, ImageFontfrom django.utils.six...原创 2019-11-23 15:31:46 · 255 阅读 · 0 评论 -
Django通过celery 异步发送邮件 : django开发之天天生鲜项目知识总结【5】
这里初次学习celery,只简单讲解一下如何使用celery 异步发送邮件,在以后的总结中还会,多次提到celery,因为后面很多任务都需要用到celery执行任务:这里展示一张我看视频老师的图片示例,通过图片先大致了解一下(理解很重要~~~~):根据图示,我们知道,celery,是要有三部分实现的:首先是 任务的‘发出者’, 然后接受任务的‘任务队列’作为中间人(broker), 其...原创 2019-11-22 21:45:32 · 835 阅读 · 6 评论 -
如何通过django向用户发送邮件: django开发之天天生鲜项目知识总结【4】
这里 163邮箱,qq邮箱,等都可以进行发送,内容大同小异,这里我就介绍一下 qq 邮箱的发送方式:首先进入qq邮箱,然后点击设置–》账户 : 我们要使用SMTP服务进行中转。然后向下拉,找到:接下来就是通过指示进行验证:然后得到 授权码,记录下来。这样就完成了。下面开始进行一些django的配置。在settings.py 中配置一些信息,可以直接粘贴复制我的配置信息,不需...原创 2019-11-22 20:22:43 · 773 阅读 · 0 评论 -
生成激活用户token(使用加密) : django开发之天天生鲜项目知识总结【3】
下面来进行分析,给用户发送,激活邮件,需要如何构成一条激活链接:发送激活邮件,包含激活链接:http://127.0.0.1:8000/user/active/1(1就是注册的用户id,可以通过id号进行用户身份的判断)激活链接中需要包含用户的身份信息:并且要将身份信息加密(防止某些人看穿规律,肆意伪造链接访问)下面进行加密。需要导入一个模块:下面进行安装:pip install ...原创 2019-11-22 19:44:59 · 892 阅读 · 1 评论 -
类视图的使用,以及简单原理分析:django开发之天天生鲜项目知识总结【2】
使用类试图:主要是可以根据不同的·请求方式(比如post或者get请求)做出相应的处理·(具体内容可以参考django文档,这里只是简单的介绍)首先导入 View类from django.views.generic import View接下来创建的视图类,继承自 Viewclass RegisterView(View): """注册类""" def get(se...原创 2019-11-22 18:57:46 · 209 阅读 · 0 评论 -
choices选项与富文本编辑器与 verbose_name选项:django开发之天天生鲜项目知识总结【1】
首先来说一下:verbose_nameclass xxx(): ... class Meta: db_table = 'df_goods_test' verbose_name = '商品' verbose_name_plural = verbose_name就是使后台管理那里显示中文:再来说富文本编辑器:借助富文本编辑器,网站的编...原创 2019-11-22 18:21:07 · 404 阅读 · 0 评论 -
django 用户模型类 User继承 AbstractUser 新建User Model时出现fields.E304错误
上错误:(django_py3) huangdonglin@huangdonglin-virtual-machine:~/django_show/dailyfresh$ python manage.py makemigrationsSystemCheckError: System check identified some issues:ERRORS:auth.User.groups: ...原创 2019-11-19 15:24:20 · 392 阅读 · 0 评论 -
redis_启动服务端和客户端:
在这里请查看之前的两篇文章:【超详细安装配置教程】安装及配置redis数据库 ,与安装 tcl8.6.8版本【简单的配置】配置redis下面进入正题,讲解一下,最基本的redis_启动服务端和客户端:1. 服务器端:方法一:(注意:如果是按照之前的我的方法去安装的redis,这里是不能使用下面的redis-service 服务命令的)服务器端的命令为 redis-server可以...原创 2019-11-16 09:32:38 · 1187 阅读 · 0 评论