![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
一米半
这个作者很懒,什么都没留下…
展开
-
python import
写的很详细 : https://zhuanlan.zhihu.com/p/53930960转载 2020-01-20 17:43:44 · 212 阅读 · 0 评论 -
python iter()用法
iter():可以把一个iterable变成iterator#!/usr/bin/env python3# -*- coding: utf-8 -*-' a test module '__author__ = 'Zhang Shuai'from collections import Iterable,Iteratord = iter("adfgh")print(d.__next__())p原创 2017-07-09 16:16:13 · 909 阅读 · 0 评论 -
python 新手常犯的错误
地址 : http://python.jobbole.com/43826/ 讲的很清楚转载 2017-07-09 14:37:42 · 369 阅读 · 1 评论 -
python and 和 or的用法
一、and:在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。>>> 'a' and 'b''b'>>> '' and 'b'''>>> 'a' and 'b' and 'c''c'在布尔上下文中从左到右演算表达式的值,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值。如果布尔上下文中的某个值为转载 2017-07-09 09:31:14 · 344 阅读 · 0 评论 -
Python 装饰器与面向切面编程
原文出处: AstralWind 今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。 1. 装饰器入门 1.1. 需求是怎么来的? 装饰器的定义很是抽转载 2017-06-28 09:53:38 · 272 阅读 · 0 评论 -
python __setitem__(self)和__getitem__(self)
Python中除了可以使用内建的类型,如list,tuple,dict,还可以创建自己的对象来实现像这些内建类型的访问,不过需要在定义类的时候对一些魔法方法逐一实现。如下:[python] view plain copy print?class DictDemo: def __init__(self,key,value):转载 2017-07-07 19:28:08 · 2078 阅读 · 0 评论 -
python __len__(self)详解
__len__如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。例如,我们写一个 Students 类,把名字传进去:class Students(object): def __init__(self, *args): self.names转载 2017-07-07 19:26:10 · 16974 阅读 · 2 评论 -
python yeild浅析
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ? 我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。 如何生成斐波那契數列 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机程序输出斐波那契數列的前 N 个数是一个转载 2017-07-17 12:17:47 · 694 阅读 · 0 评论 -
python 编程中要注意的事情
记住python中那些非常简单的事a, b = b, aa= [1,2,3,4,5]>>>a[::2][1,3,5]一个特殊的例子 x[::-1]用来反转x不要用可变对象作为默认参数值(Don’t use mutable as defaults)def function(x, l=[]): # 不要这么干def function(x, l=None): # 更好的一种方式转载 2017-07-07 19:49:22 · 353 阅读 · 0 评论 -
python 2.x和3.x区别
3中不在有xrange,直接使用range代替原创 2017-07-07 15:23:10 · 190 阅读 · 0 评论 -
python3下使用mysql
在python3中使用pymysql代替mysqldb 例子:import pymysqlconn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='***',db='mysql')cur = conn.cursor()#建立游标cur.execute("SELECT * FROM user")for原创 2017-07-07 14:11:38 · 242 阅读 · 0 评论 -
python set操作
#!/usr/bin/python3student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}print(student) # 输出集合,重复的元素被自动去掉# 成员测试if('Rose' in student) : print('Rose 在集合中')else : print('Rose 不在集合中')# set可以进行原创 2017-07-07 13:32:07 · 380 阅读 · 0 评论 -
数据结构 两个链表合并-python
#!/usr/bin/env python3# -*- coding: utf-8 -*-' a test module '__author__ = 'Zhang Shuai'class Node(): def __init__(self, d, p): self.next = p self.data = da = Node(1, Node(5, Nod原创 2017-06-27 17:28:07 · 876 阅读 · 1 评论 -
python queue
Python3.5中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。创建一个“队列”对象 import queue q = queue.queue(maxsize = 10) queue.queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过queue的构造函数的可选参数maxsize来设定队列长度。如果转载 2017-07-15 16:31:40 · 273 阅读 · 0 评论 -
python Thread.setDaemon()
如果执行:threading.Tread(target=,*args=()).setDaemon()那么主线程结束后,子线程会被立刻杀死。原创 2017-07-16 14:16:32 · 514 阅读 · 0 评论 -
python threading和queue的例子
建立一个生产者随机产生整数插入队列,建立两个消费者,一个不停地取奇数,另一个不停地取偶数。 原理:面向对象地抽象线程需要自定义一个类继承Thread类。比如自定义class MyThread(Thread)。这个类的一个实例就是代表了一个线程,然后通过重载这个类中的run方法(是run,不是start!!但start的动作确实就是调用run)来执行具体的操作。此时锁可以作为一个构造方法的参数,将一原创 2017-07-15 17:36:03 · 2051 阅读 · 0 评论 -
python logging的使用
python为我们提供简单易用,强大的日志模块logging,它由4个主要的组件组成: logger: 日志类,应用程序往往通过调用它提供的api来记录日志;handler: 对日志信息处理,可以将日志发送(保存)到不同的目标域中;filter: 对日志信息进行过滤;formatter:日志的格式化; 日志的级别: 在记录日志的时候,日志消息都会自动关联一个级别(“级别”的本质是一个非负整数)转载 2017-07-30 18:20:24 · 294 阅读 · 0 评论 -
git diff的说明
Git diff 可以用来比较: 1.staging area和working area的文件 (无其他参数时)git diff 2.master分支和working area的文件 (用master参数)git diff master 3.HEAD指向的内容和working area的文件git diff HEAD 4.版本库和暂存区的比较,后面加< file>就单独比较这个文件git d转载 2017-07-30 20:30:59 · 1524 阅读 · 0 评论 -
python @property的作用
我们可以定义一个节点:class Node(): def __init__(self,data,next): self.data = data self.next = next我们可以直接对data进行修改,但是通过@property我们就可以加上判断条件,并且修改data的方式不变:class Node(): def __init_...原创 2018-03-19 19:25:35 · 1374 阅读 · 0 评论 -
pprint的用法
pprint模块能以解释器可以解析的输入形式漂亮地打印python数据结构的形式import pprintstuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']stuff.insert(0, stuff[:])#class pprint.PrettyPrinter(indent=1, width=80, depth=None, st原创 2018-01-18 11:58:57 · 13954 阅读 · 0 评论 -
理解 Python 的 LEGB
名字空间Python 的名字空间是 Python 一个非常核心的内容。 其他语言中如 C 中,变量名是内存地址的别名,而在 Python 中,名字是一个字符串对象,它与他指向的对象构成一个{name:object}关联。 Python 由很多名字空间,而 LEGB 则是名字空间的一种查找规则。作用域Python 中name-object的关联存储在不同的作用域中,各个不同的作用转载 2018-01-18 11:13:40 · 226 阅读 · 0 评论 -
关于解决'\u'开头的字符串转中文的方法
如果字符串是”\u70ed\u95e8\u94ed\u6587\u63a8\u8350”这种形式的字符串:python3的解决办法:字符串.encode(‘utf-8’).decode(‘unicode_escape’)python2:字符串.decode(‘unicode_escape’)转载 2017-12-25 12:19:57 · 14198 阅读 · 0 评论 -
if-else-for 写在一行
只有ifa = [result for x in y if cond] #cond=结果 result返回值if-elsea = [result if cond else result2 for x in y ]原创 2017-12-24 21:50:53 · 9646 阅读 · 0 评论 -
python的多线程
from multiprocessing.dummy import Pooldef A(a): passB = [a,b,c]pool = Pool(6) #启动6个线程pool.map(A,B)pool.close()pool.join() #等线程都结束后在执行主程序原创 2017-12-20 12:24:38 · 250 阅读 · 0 评论 -
python hasattr(),getattr(),setattr()
#!/usr/bin/env python3# -*- coding: utf-8 -*-' a test module '__author__ = 'Zhang Shuai'class A(): c = 1a = A()#hasattrhasattr(a, "c") #Truehasattr(a, "d") #False#getattrgetattr(a, "c") #1g原创 2017-07-11 12:00:42 · 257 阅读 · 0 评论 -
python中__get__,__getattr__,__getattribute__的区别
__get__、__getattr__、__getattribute都是访问属性的方法,但作用不太相同,这里我们就来详解Python中 __get__和__getattr__和__getattribute__的区别:引子 假设我们有个类A,其中a是A的实例 a.x时发生了什么?属性的lookup顺序如下: 如果重载了__getattribute__,则调用. a.__dict__, 实例中转载 2017-11-16 17:12:23 · 350 阅读 · 0 评论 -
python __str__,__repr__,__call__()
__str__()和__repr__()只需要定义好__str__()方法,返回一个好看的字符串就可以了:>>> class Student(object):... def __init__(self, name):... self.name = name... def __str__(self):... return 'St转载 2017-06-15 21:30:53 · 391 阅读 · 0 评论 -
原码 反码 补码 及 python的位运算
令计算机字长为8位 原码: 正数转化为2进制,负数第一位取1。 1 : 0000 0001 -1 : 1000 0001反码: 正数的原码不变,负数为原码符号位不变,其余取反。 1 : 0000 0001 -1 : 1111 1110补码: 正数原码不变,负数为原码符号位不变,其余的按位取反再加一,故1000 0000可以表示为-128 1: 0000 0001 -1 :111原创 2017-11-13 22:53:30 · 15318 阅读 · 0 评论 -
Python 装饰器装饰类中的方法
转载自:http://blog.csdn.net/hesi9555/article/details/70224911目前在中文网上能搜索到的绝大部分关于装饰器的教程,都在讲如何装饰一个普通的函数。本文介绍如何使用Python的装饰器装饰一个类的方法,同时在装饰器函数中调用类里面的其他方法。本文以捕获一个方法的异常为例来进行说明。有一个类Test, 它的结构如下:class Test(...转载 2017-11-09 15:33:34 · 933 阅读 · 1 评论 -
python中defaultdict方法的使用
默认值可以很方便众所周知,在Python中如果访问字典中不存在的键,会引发KeyError异常(JavaScript中如果对象中不存在某个属性,则返回undefined)。但是有时候,字典中的每个键都存在默认值是非常方便的。例如下面的例子:strings = ('puppy', 'kitten', 'puppy', 'puppy', 'weasel', 'pupp转载 2017-10-21 14:07:56 · 271 阅读 · 0 评论 -
Python 动态生成变量
用Python循环创建多个变量, 如创建 a1= 、a2= 、a3= 、a4= 、a5= 或 self.a1= 、self.a2= 、 self.a3=一. 可以通过python的内置函数locals 来完成locals是python的内置函数,他可以以字典的方式去访问局部和全局变量。python里面用名字空间记录着变量,就像javascrip转载 2017-09-18 09:26:29 · 18086 阅读 · 1 评论 -
python2 list的unicode用中文显示
l = [u'\2a4d']方法一直接按索引输出:l[0] 会显示中文方法二str(l).replace("u'","'").decode("unicode_escape")这样会显示中文,但是类型变成unicode原创 2017-08-11 14:02:23 · 4009 阅读 · 0 评论 -
python datetime的使用
#!/usr/bin/env python3# -*- coding: utf-8 -*-' a test module '__author__ = 'Zhang Shuai'import datetimet = datetime.datetime.now()#时间 如:2017-07-23 17:39:54.994200print(t)#a 星期几的缩写 如:Sunprin...原创 2017-07-23 17:51:07 · 359 阅读 · 0 评论 -
python filter函数
Python内建的filter()函数用于过滤序列。例如,在一个list中,删掉偶数,只保留奇数,可以这么写:def is_odd(n): return n % 2 == 1list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15]))# 结果: [1, 5, 9, 15]把一个序列中的空字符串删掉,可以这么写:def转载 2017-06-15 17:26:56 · 252 阅读 · 0 评论 -
python 编码问题
Python3使用Unicode编码的ord()获取字符的整数表示chr()把编码转化为对应字符>>> ord('A')65>>> ord('中')20013>>> chr(66)'B'>>> chr(25991)'文'如果知道字符的整数编码,还可以用十六进制这么写str:>>> '\u4e2d\u6587''中文'‘AB转载 2017-06-15 17:16:12 · 178 阅读 · 0 评论 -
python 迭代器 生成器 生成器表达式
迭代器现在你可能注意到大多数容器对象都可以用 for 遍历:for element in [1, 2, 3]: print(element)for element in (1, 2, 3): print(element)for key in {'one':1, 'two':2}: print(key)for char in "123": print(char)转载 2017-06-15 16:56:44 · 336 阅读 · 0 评论 -
python __call__
例:#!/usr/bin/env python3# -*- coding: utf-8 -*-'__call__的test '__author__ = 'Zhang Shuai'class A(): def __call__(self, value): print(value,"被回调了") def fun(self): passa = A()原创 2017-07-13 12:53:11 · 183 阅读 · 0 评论 -
python __new__和__init__的区别
new和init的区别new是Python面向对象语言中一个很少用的函数,更多使用的是init这个函数。例如:class Book(object): def __init__(self, title): super(Book, self).__init__(self) self.title = title# Define a bookb = Book('The转载 2017-07-11 15:44:16 · 332 阅读 · 0 评论 -
python __doc__
___doc___用来访问模块,类声明或者函数的声明中第一个未被赋值的字符串.class A(): "123" passprint(A().__doc__) #123原创 2017-07-12 14:46:57 · 3159 阅读 · 2 评论 -
python 适配器模式
所谓适配器模式是指是一种接口适配技术,它可通过某个类来使用另一个接口与之不兼容的类,运用此模式,两个类的接口都无需改动。 存在一套旧系统,里面包含 Human 和 Synthesizer 类,如下:class Synthesizer: def __init__(self, name): self.name = name def __str__(self):转载 2017-07-13 11:01:06 · 709 阅读 · 0 评论