
python高级
MrNoboday
大和
展开
-
Python中的哈希
基础1、什么是可哈希(hashable)?哪些类型是可哈希的?参考 python可变与可哈希2、Python的哈希值和哈希集Python内置了hash()方法,能够返回可哈希对象的哈希值(一个整数)。对于这个整数我们需要了解,这个整数在一个Python进程中是唯一而且保持不变的,但它们的值在重复运行的 Python 间是不可预测的。那么我们可以根据这个哈希值搭建很多以此为依据的数据类型-称...原创 2019-11-09 11:17:57 · 814 阅读 · 0 评论 -
Python中可哈希和不可变
Python中hashable和immutable初学Python,我们清楚元组对象是不可变的(immutable),字典的键必须是可以哈希的(hashable)。这一讲我们就来好好聊聊这两个概念到底是什么意思。1. 可变与不可变首先明确可变与不可变对象,我们默认的是Python的内置对象。自定义的对象我们不去讨论,毕竟Python是一门动态语言,需要的话我们随时可以改变自定义对象的可变性。...原创 2019-11-09 10:20:24 · 1157 阅读 · 0 评论 -
类的属性访问特性
重点python中实例访问属性的顺序为:先查找同名的实例属性并返回值,如果找不到就会查找同名的类属性并返回值。class MyClass(object): name = 'default' def __init__(): self.age = 18if __name__ == '__main__': c = MyClass() # 访问的是类属性 等同于 c.__class...原创 2019-10-21 20:07:14 · 563 阅读 · 0 评论 -
python的设计模式-策略模式
一、策略模式策略-顾名思义就是解决一件事情的不同方法。比如,一件商品再被购买之后,不同的用户有不同的折扣。比如,一个游戏玩家开枪,能够发射出不同伤害值的子弹。策略模式就是为了解决这类问题而产生的。商品打折-策略实例1问题描述:对于很多商品而言都有定价,但是商店有两种会员,高级VIP和VIP,高级VIP能够获得8折,而vip只能获取9折。而且后期还要拓展很多打折体系。# 基础策略class...原创 2019-04-23 11:04:38 · 185 阅读 · 0 评论 -
pip异常-抛出错误-cannot import name 'main'等
问题1[root@test test]# pip3 install uwsgiTraceback (most recent call last):File “/usr/bin/pip3”, line 7, in from pip import mainImportError: cannot import name ‘main’如图:解决方法# 修改 File "usr/bin/p...原创 2019-06-05 15:11:29 · 383 阅读 · 0 评论 -
python简易计算器-tkinter界面实现
直接上代码import tkinter as tkinput_num_ls = []first_num = Nonecalculator_method = Nonedef get_num(ls): new_ls = [10 ** i * float(num) for i, num in enumerate(ls)] ls_sum = sum(new_ls) ...原创 2019-05-31 17:48:30 · 4536 阅读 · 3 评论 -
python中*解包的快捷用法
场景1任意长度可迭代对象的元素解包例如:[ 'laowang', '18', 'boy', '18800000000', '17700000000', '16600000000']如果我们只关注姓名和电话号码,我们可以这样使用msg_ls = ['laowang', '18', 'boy', '18800000000', '17700000000', '16600000000']# 使用...原创 2019-06-30 11:10:01 · 434 阅读 · 0 评论 -
python带权值的数据结构搭建
场景1优先级的大小即为权值,我们希望在管理对象的时候,需要按照权值排序,或者输出时,我们需要自定义拥有权值属性的对象和能够管理对象的数据结构。思路使用内置deapq模块,利用deapq中的堆排序原理实现权值的顺序输出堆数据结构:堆的第一个元素总是最小元素实现# 拥有权值的对象构建class Item(object): def __init__(self, name, p...原创 2019-06-30 20:49:01 · 683 阅读 · 0 评论 -
python多态和鸭子类型
概述python是一门解释语言,但是同java等静态语言一样,是可以通过继承的方式实现多态。而且python还有一个自己的特殊实现多态的方法,就是通过鸭子类型,来实现多态。继承多态通过严格的继承父类,重写父类的方法实现多态class Person(object): def __init__(self, name, work=None): self.name = name se...原创 2019-07-11 14:23:11 · 588 阅读 · 0 评论 -
python中的属性封装
属性封装当类中的某些属性,我们要限定他的读写权限的时候,我们就可以使用类的属性封装。属性封装的装饰器property (只读)obj_name.setter (只写)obj_name.deleter (可删除)e.g.class People(object): """ 描述人的类实现,限定性别和年龄范围. """ def __init__(sel...原创 2019-04-18 09:26:42 · 911 阅读 · 0 评论 -
素数的经典求法-python实现
任意个数的素数求解解析给定一个自然数序列 1 ~ N去掉自然数序列中2的倍数(不包含2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ~ N去掉剩余序列中3的倍数(不包含3)1 2 3 5 7 9 ~ 11 13 15 16 N去掉剩余序列中5的倍数(不包含5)。。。如此循环下去我们不难发现规律:每遇到一个素数,则删除该素数在自然...原创 2019-03-06 14:00:43 · 849 阅读 · 0 评论 -
datetime模块正确打开方式
简介python中的datetime模块调用不清晰,可以使用以下方式获取,此方法可以拓展到学习其他任何python内置模块。通用工具我们想全面了解datetime模块,不仅仅只能上网搜索,况且网上很多都不很清晰全面。下面介绍两个python内置的方法,提供一种学习python模块的方法。1、dir# 可以直接列出module_name中的所有方法和属性dir(module_name)...原创 2018-11-22 09:12:17 · 405 阅读 · 0 评论 -
列表及其子集和的最小不包含整数
要求描述:一个整数列表,找到最小的整数,满足该数不在这个列表中,并且不能等于任何子列表的和,例如:a = [1, 2, 5, 7],结果为4,如果a = [1, 2, 2, 5, 7]结果为18。class MixNum(object): def __init__(self, ls): # 接收传入的列表 self.ls = ls #...原创 2018-08-16 23:30:14 · 483 阅读 · 0 评论 -
手机号用16进制表示
说明一个类,能够将手机号转化为16进制字符串输出。目前并且没有实现验证手机号的方法verify_mobile有兴趣,可以自定义实现。class ParseMobileTo16(object): """将手机号转化为16进制字符串输出""" def __init__(self, mobile): # 用于生成16进原创 2018-08-15 22:31:03 · 2303 阅读 · 0 评论 -
排序算法-Python语言(未完待续)
排序算法总体介绍所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。评判排序算法复杂度的两个基本特征:时间复杂度:指执行算法所需要的时间量。空间复杂度:指执行算法所需要的内存量。根据算法复杂度的大致分类: 一、简单排序算法1、冒泡排序原理:从末尾开始,重复依次比较相邻的...原创 2018-08-09 01:16:58 · 208 阅读 · 0 评论 -
Python中or和and的使用
and代码现象param = 'a' and 'b'print(param)>> bparam = '' and 'b'>> ''param = 'a' and ''>> ''param = '' and [] and None>> '原创 2018-07-31 18:25:10 · 2084 阅读 · 0 评论 -
datetime模块(不定时补充)
1、加减日期2018年4月20号的前30天# 使用timedelta()实现import datetimedate = datetime.datetime(2018, 4, 20) - datetime.timedelta(30)# 获得date为datetime.datetime类型:datetime.datetime(2018, 3, 21, 0, 0)#要想结果获得字符串,...原创 2018-09-14 11:34:19 · 248 阅读 · 0 评论 -
python内建函数(不定时更新)
slice( )内置的slice()函数会创建一个切片对象,用于返回切片名称,提高切片的可读性。str = 'laowang32199309'name = slice(0, 7)age = slice(6, 8)time = slice(7,len(str))str[name] # str中切片获取姓名str[age] # str中切片获取年龄str[time] # str中切片...原创 2018-09-27 09:02:46 · 221 阅读 · 0 评论 -
lambda
介绍lambda在完成简单函数的定义时很有作用,如编写微型函数来对各种表达式简单求值,或者需要用户提供回调函数的时候。但是lambda的局限性也是有的,如lambda只能指定一条单独的表达式,而且这个表达式的结果作为lambda的返回值。所以就有无法执行多行语句,条件分支,迭代和异常处理的缺点。当然我们会在其优势时使用,缺点时使用Python逻辑就好,不是么。规则书写func = lamb...原创 2018-10-15 09:49:43 · 291 阅读 · 0 评论 -
re中只替换多个分组内的内容
应用场景很多时候我们需要替换某个字符串中的一小段,而且这个字符串有很多,那么这个方法就很实用了。例子string1 = 'note_x5F_t_x5F_133_1_,note_x5F_t_x5F_135_1_,note_x5F_t_x5F_136_1_,现在需要将string1中的重复组合替换为note_x5F_b_x5F_三个数字解决方法import re# 将t替换为b,同时去...原创 2018-10-30 16:03:59 · 1811 阅读 · 1 评论 -
python单向链表的代码实现
链表基本介绍单向链表也叫单链表,是链表中最简单的一种形式,是由节点组成的一条链,它的每个节点包含两个域,一个信息域(元素域)和一个链接域,这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。所以实现时需要定义节点类,包含存储信息域的字段属性和链接域的属性。再定义具体的链表类操作节点。链表结构链表的节点实现# 节点类python实现,用于创建节点对象class...原创 2018-08-19 11:15:09 · 263 阅读 · 0 评论