自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python学习,条件语句的七种写法,你知道几种

有的人说 Python 是一门 入门容易,但是精通难的语言,这一点我非常赞同。Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。但你要知道,在团队合作里,炫技是大忌。为什么这么说呢?我说下自己的看法:越简洁的代码,越清晰的逻辑,就越不容易出错; 在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德简单的代码,只会用到最基本的语法糖,复杂的高级

2022-04-09 21:27:49 392 1

原创 Python学习,约束和异常处理

一.类的约束首先,你要清楚,约束是对类的约束,比如,现在你是一个项目经理,然后呢,你给手下的人分活,张三你处理一下普通用户登录,李四你处理一下会员登录,王五已处理一下管理员登录,那这个时候呢他们就开始分别去写他们的功能了,但是呢,你要知道程序员不一定会有那么好的默契,很有可能三个人会写三个完全不同的方法,就比如这样:class Normal: #张三,普通人登录 def login(self): passclass Member: #李四,会员

2022-04-09 16:39:37 447

原创 Python学习,轻松搞懂Python递归函数的原理与应用

递归: 在函数的定义中,函数内部的语句调用函数本身。1、递归的原理学习任何计算机语言过程中,“递归”一直是所有人心中的疼。不知你是否听过这个冷笑话:“一个面包,走着走着饿了,于是就把自己吃了”。常理推断,特别是解释型语言,当程序执行函数内部的语句时,这个函数还没有定义完,没定义完怎么可以调用本身呢。但实质上,当你执行函数内部的语句时,一定有函数外部的语句调用了这个函数,此时该函数的所有代码和语句,已经在内存中形成了逻辑,这就是递归函数的原理。在Python当中很重要的就是递归的使用。2、递归的玩

2022-04-08 19:22:08 996

原创 Python学习,python实现七个基本算法

1.顺序查找当数据存储在诸如列表的集合中时,我们说这些数据具有线性或顺序关系。 每个数据元素都存储在相对于其他数据元素的位置。由于这些索引值是有序的,我们可以按顺序访问它们。 这个过程产实现的搜索即为顺序查找。顺序查找原理剖析:从列表中的第一个元素开始,我们按照基本的顺序排序,简单地从一个元素移动到另一个元素,直到找到我们正在寻找的元素或遍历完整个列表。如果我们遍历完整个列表,则说明正在搜索的元素不存在。代码实现:该函数需要一个列表和我们正在寻找的元素作为参数,并返回一个是否存在的布尔值。foun

2022-04-08 14:26:34 3507 6

原创 Python学习,Django序列化的几种方法

前言关于序列化操作,就是将一个可迭代的数据结构,通过便利的方式进行我们所需要的操作。今天历来归纳一下,Django中的几种不同得分方法,已经Django-restframework提供的方法创建一个Django的项目再新建一个app创建一个模型,以书本出版社为例,自行迁移完成以后,再配置路由,主要讲解的是views.py,其他的不多说了。# RESFUL_DJ/app/models.pyfrom django.db import models# Create your models her

2022-04-07 19:57:03 893

原创 Python学习,矩阵(mat)操作,你了解什么是矩阵吗

1、矩阵的创建由一维或二维数据创建矩阵a1=array([1,2,3]);a1=mat(a1);data1=mat(zeros((3,3)));#创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3)data2=mat(ones((2,4)));#创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=intdata3=mat(random.rand(2,2));#这里的random模块使用的是numpy中的random模块,ra

2022-04-07 14:01:31 1089

原创 Python学习,python中socket解读

操作系统底层原理操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。注:计算机(硬件)->os->应用软件网络通信原理互联网的本质就是一系列的网络协议一台硬设有了操作系统,然后装上软件你就可以正常使用了,然而你也只能自己使用像这样,每个人都拥有一台自己的机器,然而彼此孤立如何能大家一起玩耍结论:英语成为世界上所有人通信的统一标准,如果把计算

2022-04-06 21:00:00 2041

原创 Python学习,详解Python中的协程,为什么说它的底层是生成器

协程又称为是微线程,英文名是Coroutine。它和线程一样可以调度,但是不同的是线程的启动和调度需要通过操作系统来处理。并且线程的启动和销毁需要涉及一些操作系统的变量申请和销毁处理,需要的时间比较长。而协程呢,它的调度和销毁都是程序自己来控制的,因此它更加轻量级也更加灵活。协程有这么多优点,自然也会有一些缺点,其中最大的缺点就是需要编程语言自己支持,否则的话需要开发者自己通过一些方法来实现协程。对于大部分语言来说,都不支持这一机制。go语言由于天然支持协程,并且支持得非常好,使得它广受好评,短短几年时间

2022-04-06 17:30:00 161

原创 Python学习,对Python多线程死锁问题的巧妙解决方法

死锁死锁的原理非常简单,用一句话就可以描述完。就是当多线程访问多个锁的时候,不同的锁被不同的线程持有,它们都在等待其他线程释放出锁来,于是便陷入了永久等待。比如A线程持有1号锁,等待2号锁,B线程持有2号锁等待1号锁,那么它们永远也等不到执行的那天,这种情况就叫做死锁。关于死锁有一个著名的问题叫做哲学家就餐问题,有5个哲学家围坐在一起,他们每个人需要拿到两个叉子才可以吃饭。如果他们同时拿起自己左手边的叉子,那么就会永远等待右手边的叉子释放出来。这样就陷入了永久等待,于是这些哲学家都会饿死。![这是一

2022-04-06 14:00:00 955

原创 Python学习,使用timeit测试python函数的性能

timeit是Python标准库内置的小工具,可以快速测试小段代码的性能。认识timeittimeit 函数:timeit.timeit(stmt, setup,timer, number)参数说明:stmt: statement的缩写,你要测试的代码或者语句,纯文本,默认值是 “pass”setup: 在运行stmt前的配置语句,纯文本,默认值也是 “pass”timer: 计时器,一般忽略这个参数number: stmt执行的次数,默认是1000000,一百万repeat 函数:

2022-04-06 10:30:00 303

原创 Python学习,高阶函数--map、lambda、reduce、filter

一、map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把list 的每个元素依次作用在函数 f 上,得到一个新的 list 并返回。 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方,就可以用map()函数,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:def f(x): return x*xprint map(f, [1, 2, 3, 4, 5, 6

2022-04-05 21:00:00 534 1

原创 Python学习,用python-webdriver实现自动填表

日常工作中常常需要重复填写某些表单,如果人工完成,费时费力,而且网络延迟令人十分崩溃。如果能够用程序实现自动填表,效率可以提高一倍以上,并且能够移植到多台计算机,进一步提高工作效率。webdriver是python的selenium库中的一个自动化测试工具,它能完全模拟浏览器的操作,无需处理复杂的request、post,对爬虫初学者十分友好。一、环境配置python3.6+selenium库+xlrd库+xlwt库其中xlrd和xlwt库用于读写excel表中的数据。还要下载一个浏览器的drive

2022-04-05 17:30:00 3785 1

原创 Python学习,python的魔法方法

这里只分析几个可能会常用到的魔法方法,像__new__这种不常用的,用来做元类初始化的或者是__init__这种初始化使用的 每个人都会用的就不介绍了。其实每个魔法方法都是在对内建方法的重写,和做像装饰器一样的行为。理解这个道理 再尝试去理解每个细节装饰器会比较方便。关于**str和repr**:直接上例子:class Test(object): def __init__(self, world): self.world = world def __str__(se

2022-04-05 14:00:00 159

原创 Python学习,枚举类定义和使用

一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。针对这种特殊的类,Python 3.4 中新增加了 Enum 枚举类。也就是说,对于这些实例化对象个数固定的类,可以用枚举类来定义。例如,下面程序演示了如何定义一个枚举类:from enum import Enumclass Color(Enum): # 为序列值指定value值 red = 1 green =

2022-04-05 10:30:00 115

原创 Python学习,如何在 Python 编码中做到小细节大优化

在列表里计数"""在列表里计数,使用 Python 原生函数计数要快很多,所以尽量使用原生函数来计算。"""elements = list(range(1, 1000001))# 常见写法num = 0for n in elements: num += 1# 建议写法len(elements)过滤一个列表"""过滤一个列表,推导列表的方式最快。"""elements = list(range(1, 1000001))# 第一种,常见写法l = []for e

2022-04-04 21:00:00 126

原创 Python学习,解析本地HTML文件

Python使用爬虫技术时,每运行一次,本地都会访问一次主机。为避免完成程序前调试时多次访问主机增加主机负荷,我们可以在编写程序前将网页源代码存在本地,调试时访问本地文件即可。现在我来分享一下爬取资料的调试过程。一、将网页源代码存在本地1、打开需要爬取的网页,鼠标右键查看源代码2、复制源代码,将代码保存至本地项目文件目录下,文件后缀改为.html二、在Python中打开本地html文件打开并读取本地文件可使用BeautifulSoup方法直接打开 soup=BeautifulSoup(op

2022-04-04 17:30:00 5351

原创 Python学习,python用于NLP :处理文本和PDF文件,你都会嘛

这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章。在本文中,我们将从Python for NLP的基础知识开始。我们将看到如何使用Python处理简单的文本文件和PDF文件。处理文本文件文本文件可能是你在NLP工作中遇到的最基本类型的文件。在本节中,我们将了解如何用Python读取文本文件,创建文本文件以及将数据写入文本文件。阅读文本文件使用以下文本创建一个文本文件,并使用“.txt”扩展名将其保存在本地目录中。在我的例子中,我将名为“myfile.txt”的文件存储在我的D盘

2022-04-04 14:00:00 651

原创 Python学习,使用套接字(socket)实现UDP与TCP通信

开放式系统互联模型官方的模型分为七层,但在实际使用中大多数公司会把这个模型分为四层或者五层。而在python建立一个简单的主机间的通信,我们需要了解IP、UDP与TCPIP相比IP对大多数人来说都并不陌生,IP是什么,在Windows下,我们可以通过ipconfig来查看自己的IP等相关网络配置,而在linux下我们可以通过ifconfig来查看自己的IP等相关信息Windows环境下的ipconfigLinux环境下的ifconfigIP协议有两种,一种是我们当前较为常用的IPv4(i

2022-04-04 10:30:00 1455

原创 python学习,我们自己动手来做一个小游戏吧,用150行python代码制作一个简单的俄罗斯方块小游戏

只是实现了最简单功能。。。这个主要是转动数据麻烦,虽说全部手动写上去也行,实际也比代码要短,只是不太好意思,强行转动(共7个图形,最后一个转动时中心会发生偏移,耍赖了一把)实际流程(三个状态):新生成图形块,如果从下往上已经堆到这里了(图形块出现位置出现不为空白的背景)游戏结束下落(途中可以键盘操作块的移动,转动)到底,图形数据记录到map,检查是否消去一行所有的检查,就用check_action(位置x,位置y,图形块号,图形转动角度):检查是否出界或遇到原先的块,游戏是否结束判断:

2022-04-03 21:00:00 982

原创 Python学习,4个python常用高阶函数的使用方法,你会几个

1、mapPython内建了map()函数,map()函数接受两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每一个元素上,并把结果作为新的Iterator返回。举例说明,比如我们有一个函数f(x)=x*2,要把这个函数作用在一个list[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现。>>> def f(x):... return x*2... >>> r = map(f, [1, 2,

2022-04-03 17:30:00 231

原创 Python学习,python中的list,tuple,dict和set

Listlist的创建与检索Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。构造list非常简单,直接用 [ ] 把list的所有元素都括起来,就是一个list对象。Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:例如:>>> L = ['Michael', 100, True]list索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索

2022-04-03 14:00:00 927

原创 Python学习,使用魔术方法__getitem__和__len__

(1)像__ getitem__这种由两个双下划线构成的方法,被称为魔术方法。(2)魔术方法是为了给python解释器用的。当使用len(collection)时,实际上调用的就是collection.__ len__方法。而在使用obj[key]的形式来访问元素时,实际上调用的是object.__ getitem__(key)方法。(3)魔术方法是属于类的方法,也就是说不需要实例化类就可以访问到该方法,同时,实例化的对象都可以访问到该方法。(4)使用__ getitem __ 和 __ len __

2022-04-03 10:30:00 422

原创 Python学习,python的logging模块使用方法,你知道吗

logging模块简介logging模块是Python内置的日志模块,用来生成程序的日志。一条日志对应一个事件的发生,一个事件一般包括:事件发生时间、事件发生位置、事件内容、事件严重程度-日志级别。(还可以包括进程ID、进程名称、线程ID、线程名称等)logging模块的组成1.日志级别:日志分为五个等级,从低到高分别是:DEBUG、INFO、WANGING、ERROR、CRITICALDEBUG:最详细的信息,通常定位问题的时候用INFO:确认一切按照预期运行,详细程度仅次于DEBUGWAR

2022-04-02 21:00:00 2203

原创 Python学习,python的re模块,正则表达式用法详解,正则表达式中括号的用法

Python的re模块,正则表达式#导入re模块import re 1、match方法的使用:result = re.match(正则表达式,待匹配的字符串)正则表达式写法:第一部分:举例:>>> re.match(".","&and") #.匹配任意字符,除了\n,只要第一个匹配,后面的and都是无所谓了,match方法就是这样定义的。从字符串最左边开始匹配,只要都匹配正则表达式,字符串后面的多余部分可以随意<_sre.SRE_Match o

2022-04-02 17:30:00 1181

原创 Python学习,列表list && 元组tuple,基础教程又来了

介绍:列表是一种可变的有序集合,可以进行访问、添加和删除操作。元组是一种不可变的有序集合,可以访问。1、列表的基本操作创建列表ls = ['mary', 'tom', 'kate'] ['mary', 'tom', 'kate']注意:列表中的元素可以为不同类型,且可以为列表 In [29]: ls2=[1,2,'d','fairy',[1,4]] In [30]: ls2 Out[30]: [1, 2, 'd', 'fairy', [1, 4]]列表元素的访问和截取'''In

2022-04-02 14:00:00 123

原创 Python学习,接上篇文章的50道基础入门练习题(附答案)

实例051:按位与题目 学习使用按位与 & 。程序分析 0&0=0; 0&1=0; 1&0=0; 1&1=1。a=0o77print(a)b=a&3print(b)b=b&7print(b)实例052:按位或题目 学习使用按位或 | 。程序分析 0|0=0; 0|1=1; 1|0=1; 1|1=1a=0o77print(a|3)print(a|3|7)实例053:按位异或题目 学习使用按位异或 ^ 。程序分析 0^

2022-04-02 10:30:00 423

原创 Python学习,我带着练习题来了,50道基础入门练习题(附答案)

实例001:数字组合题目 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析 遍历全部可能,把有重复的剃掉。1 num=02 for a in range(1,5):3 for b in range(1,5):4 for c in range(1,5):5 if((a!=b)and(a!=c)and(b!=c)):6 print(a,b,c)7 nu

2022-04-01 21:00:00 824

原创 Python学习,Django创建App并简单实现登录模块

什么是Django的APP?此APP非andriodAPP。Django的APP可以理解为一个网站中的一个模块,我们可以将每个模块都单独写成一个APP,这样可以让项目变得相对整洁且更加好维护起来。如何创建App?1、创建Django工程 - BlogPorject#django-admin startproject BlogPorject2、创建Appdjango-admin startapp applicationApp目录介绍:applicationadmin.py: 网站后

2022-04-01 17:30:00 570

原创 Python学习,python中的字符串格式化%与.format

Python的字符串格式化有两种方式: 百分号方式、format方式百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存。[PEP-3101]This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing ‘%’ string formatting operator.1、百分号方式(n

2022-04-01 14:00:00 179

原创 Python学习,python中参数传递的方法,你知道几种

Python中函数传递参数的形式主要有以下五种,分别为位置传递,关键字传递,默认值传递,不定参数传递(包裹传递)和解包裹传递。1.位置传递实例:def fun(a,b,c)   return a+b+c print(f(1,2,3))2.关键字传递关键字(keyword)传递是根据每个参数的名字传递参数。关键字并不用遵守位置的对应关系。 '''def fun(a,b,c)   return a+b+c print(f(1,c=3,b=2))3.参数默认值在定义函数的时

2022-04-01 10:30:00 23246

原创 Python学习,用python制作字符版gif图

一、背景本片文章我们讲述下怎么把一张图片处理成字符版图片,就是说使用字符替代每个像素的颜色,形成一个由字符组成的图片,并且字符的颜色是由原始的图片像素颜色决定二、准备环境对图片的操作我们可以使用PIL、imageio和image2gif库,处理像素我们选择使用opencv-python这个库。NumPy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。因此我们需要安装以下几个包:PIL、imageio、numpy、cv2、images2gif

2022-03-31 21:00:00 400

原创 Python学习,函数闭包和装饰器,回顾一下基础吧

关于问题的注意事项nonlocal 的问题nonlocal的变量范围问题,可以获取上层函数的变量,如果上层函数没有这个变量,那么会到上上层找,但不会到全局找.示例如下:def fun(): a = 1 def fun2(): a = 2 def fun3(): nonlocal a print(a) fun3() fun2()fun()"""运行结果不注释a=2时话是2,

2022-03-31 18:00:00 83

原创 Python学习,使用Python实现多表分批次从数据库导出到Excel

一、应用场景为了避免反复的手手工从后台数据库导出某些数据表到Excel文件、高效率到多份离线数据。二、功能事项支持一次性导出多个数据源表、自动获取各表的字段名。支持控制批次的写入速率。例如:每5000行一个批次写入到excel。支持结构相同的表导入到同一个Excel文件。可适用于经过水平切分后的分布式表。三、主要实现1、概览A[创建类] -->|方法1| B(创建数据库连接)A[创建类] -->|方法2| C(取查询结果集)A[创建类] -->|方法3| D(利用句柄

2022-03-31 14:30:00 706

原创 Python学习,装饰器以及装饰器的深入

1.通⽤装饰器回顾通过装饰器的模板格式:def wrapper(fn):  def inner(*args,**kwargs):    #增加的内容    ret = fn(*args,**kwargs)    #增加的内容    return ret   return inner@wrapper2. 函数的有⽤信息(1)获取函数的注释信息,示例:def fun(a,b,c): """ 函数的功能: :param a: 具体传的参数 :param

2022-03-31 10:30:00 65

原创 Python学习,python3中的bytes和str类型

Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。下面让我们深入分析一下二者的区别和联系。编码发展的历史在谈bytes和str之前,需要先说说关于编码是如何发展的。。在计算机历史的早期,美国为代表的英语系国家主导了整个计算机行业

2022-03-30 21:25:00 523

原创 Python学习,模块以及5大模块的使用,这是属于基础教程

1.模块的简单认识定义:模块就是我们把装有特定功能的代码进行归类的结果.从代码编写的单位来看我们的程序,从小到大的顺序: 一条代码 < 语句块 < 代码块(函数,类) < 模块.我们⽬目前写的所有的py文件都是模块.引入模块的方式:import 模块from xxx import 模块2. collections模块collections模块主要封装了一些关于集合类的相关操作. 比如, 我们学过的Iterable,Iterator等.另外,collections还提

2022-03-30 18:36:03 505

原创 Python学习,序列 pickle&json,必学基础教程

1. 什么是序列化在我们存储数据或者网络传输数据的时候. 需要对我们的对象进行处理.把对象处理理成方便便存储和传输的数据格式.这个过程叫序列化.不同的序列化,结果也不同.但是目的是⼀样的. 都是为了存储和传输.在python中存在三种序列化方案.pickle.可以将我们python中的任意数据类型转化成bytes并写入到文件中.也可以把文件中写好的bytes转换回python的数据.这个过程被称为反序列列化shelve.简单另类的⼀种序列化的方案.有点儿类似后面我们学到的redis. 可以作为一种

2022-03-30 15:17:30 107

原创 Python学习,函数参数 名称空间 以及函数嵌套,这是基础教程哦

一. 函数参数–动态传参1.1动态位置接受参数,在参数位置编写*表⽰示接收任意内容def chi(*food): print("我要吃", food)chi("大米饭", "小米饭")结果:我要吃 ('大米饭', '小米饭') # 多个参数传递进去. 收到的内容是元组tuple注意:1.动态参数与位置参数的关系def chi(*food, a, b): #动态参数必须写在位置参数后面,不然未知参数永远无法显示,除非关键字参数来指定 print("我要吃", fo

2022-03-30 10:30:00 120

原创 Python学习,cookie和session

用户登录, 未登录不能访问指定页面基于cookie实现保存在用户浏览器端的键值对, 向服务端发请求时会自动携带def login(request): # 设置cookie data = redirect('...') data.set_cookie() # 读取cookie request.COOKIES.get('xx') return datacookie的三个参数:key,value='',max_age=None应用场景:用户认证

2022-03-29 19:49:07 2548

原创 Python学习,元类type 反射 函数与方法 双下方法

1.元类typetype 获取对象从属于的类python 中 一切皆对象, 类在某种意义上也是一个对象, python中自己定义的类, 以及大部分内置类, 都是由type元类(构建类)实例化得来的type 与 object 的关系print(type(object)) object类是type类的一个实例object类是type类的父类2.反射程序对自己内部代码的一种自省方式反射是什么通过字符串去操作对象的方式具体方法hasattrgetattrsetattrdelattr

2022-03-29 16:06:51 124

空空如也

空空如也

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

TA关注的人

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