
python
文章平均质量分 55
BrownWong
None
展开
-
测试tensorflow是否检测到GPU
测试tensorflow是否检测到GPUimport tensorflow as tftf.test.is_gpu_available()tf.test.gpu_device_name()原创 2020-09-08 18:10:37 · 522 阅读 · 0 评论 -
设置全局pip源
我们都知道使用pip的时候声明-i选项可以指定pip源,但是如果要全局设置呢?输入以下命令即可:pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/...原创 2020-02-29 19:24:40 · 4251 阅读 · 0 评论 -
一个标准的setup.py和requirements.txt
setup.pyimport osfrom setuptools import setup, find_packagesdef _process_requirements(): packages = open('requirements.txt').read().strip().split('\n') requires = [] for pkg in packa...原创 2020-02-24 16:01:23 · 2491 阅读 · 0 评论 -
gevent实现异步
test_gevent.pyimport geventimport requestsimport timefrom gevent import monkeymonkey.patch_all()def f(url, i): print('{} GET: {}'.format(i, url)) resp = requests.get(url) time.slee...原创 2019-12-26 19:50:48 · 509 阅读 · 0 评论 -
Python setuptools自动安装git私有库
install_requires=[ 'private_package_name==1.1', ], dependency_links=[ 'git+ssh://git@github.com/username/private_repo.git#egg=private_package_name-1.1', ]注意:egg名后面必须有版本号,否则可能找不到包,...原创 2019-12-26 19:47:38 · 390 阅读 · 0 评论 -
服务多分片下的文件log问题
1. 常见错误当你的服务开了多个分片,并且这多个分片打同一个log文件时,经常会出一些问题,比如:log打串,分片之间产生的请求log相互交叉,阅读起来极为困难;甚至会出现行内串掉的情况,比如一个分片一行还没打完,另外一个分片就将内容插入到这一行了;2. rotate带来的错误如果你的log文件使用了rotate,并且所有分片都有rotate的逻辑,那更糟糕,还可能报错,比如下面的错...原创 2019-11-09 14:11:45 · 216 阅读 · 0 评论 -
python从控制台输入
python有多种从控制台输入方式: 1.使用input()、raw_input()函数 这两个函数在python的内置库里。 input()函数返回一个数值(整型或浮点型) raw_input()函数返回字符串 用例:value = input('input a int:')print valuehello = raw_input('input a string:')print h原创 2015-12-09 18:55:15 · 36136 阅读 · 0 评论 -
python显示中文
只需两步: 1.将项目和文件都设置为utf-8编码格式 2.在文件头添加# -*- coding: utf-8 -*-原创 2015-12-02 22:20:04 · 600 阅读 · 0 评论 -
python几个小技巧
1.可以使用字符串格式化替代强制类型转换value = 1.2333result1 = 'value1=%f' % valueprint result1result2 = 'value2=' + str(value)print result2其实结果还是有点区别的: value1=1.233300 value2=1.23332.多元赋值value1, value2 = 1, 2原创 2016-01-10 18:59:45 · 548 阅读 · 0 评论 -
python格式转换
1.字符型数据和整型数据(ASCII码)的转换 字符型 –> 整型,用ord()函数 整型 –> 字符型,用chr()函数 2.字符串和整型的转化 字符串 – > 整型,用int()函数 整型 –>字符串,用str()函数;或者用string.atoi()函数 3.字符串和浮点型的转化 字符串 – > 浮点型,用float()函数 浮点型 –> 字符串,用str()函数;或者用str原创 2015-12-09 16:27:47 · 843 阅读 · 0 评论 -
<Python核心编程>条件和循环(包括迭代器、生成器)
1.条件表达式: X if C else Y ,比如 x if x < y else y2.会使用pass语句3.在while和for循环后使用else 只有当循环完成后,才执行else的语句,也就是说,break会跳过else语句块。4.列表解析式也可以写双重循环 >>> list1 = [1, 2, 3] >>> list2 = [4, 5, 6] >>> [x+y fo原创 2016-08-12 07:52:26 · 603 阅读 · 0 评论 -
使用yield表达式
http://blog.youkuaiyun.com/buaa_shang/article/details/8281559转载 2016-07-21 22:43:21 · 353 阅读 · 0 评论 -
关于python模块
典型的模块结构: 解释:(4)(5)(6)(7)被称为主程序,(7)被称为“直接运行模块”,我们可以在直接运行模块中调用测试代码。大部分的模块都是导入调用的。“直接运行模块”意味着不管你是导入整个模块还是运行整个模块,它都会被执行。__name__系统变量用来指示模块被如何加载: 如果模块被导入,__name__的值为模块名字 如果模块被直接执行,__name__的值为‘__main原创 2016-08-06 13:38:30 · 243 阅读 · 0 评论 -
Python垃圾回收
Python的垃圾回收器由引用计数器和循环垃圾收集器组成。引用计数器 用来记录对象的被引用次数。(此处不赘述,因为很容易理解)循环垃圾收集器 仅有引用计数器(计数器显示为0,那么此块内存可以被回收了)是不够的,因为可能会发生循环引用的情况。 一个循环引用发生在当你有至少两个对象互相引用时, 也就是说所有的引用都消失时, 这些引用仍然存在。考虑以下情况: [1] a = { } # a原创 2016-08-06 14:22:18 · 313 阅读 · 0 评论 -
浅拷贝和深拷贝
(参考自《Python核心编程》一书) 浅拷贝定义: 对一个对象进行浅拷贝其实是新创建了一个类型跟原对象一样,其内容是原来对象元素的引用,换句话说,这个拷贝的对象本身是新的,但是它的内容不是.生成浅拷贝的方式:完全切片操作[:]利用工厂函数,比如list(),dict()等使用copy 模块的copy 函数.注意:非容器类型(数字、字符串等)并无拷贝之说。如果元组变量只包含原子类原创 2016-08-08 00:20:18 · 1008 阅读 · 0 评论 -
python函数参数
Python有四种函数参数:Required argumentsKeyword argumentsDefault argumentsVariable-length arguments第1,2,4种参数都是相对于调用来说的,第3种参数是相对于函数定义来说的。Required arguments Required arguments are the arguments passed to原创 2016-08-19 09:43:51 · 339 阅读 · 0 评论 -
Python数据结构(一)关于字典
1.可以用两个list或tuple生成字典。eg:dict(zip(list1,list2)) 2.批量更改字典value。eg:dict1={'guohan': 1, 'wangjiang': 0}dict1=dict1.fromkeys(('wangjiang', 'guohan'), 200)print dict1输出: {‘guohan’: 200, ‘wangjiang’: 20原创 2016-02-28 09:14:27 · 531 阅读 · 0 评论 -
Python数据结构(二)序列类型list,tuple
1.可变对象的方法无返回值,比如list的sort(),extend(),reverse();如果需要返回,请使用sorted(),reversed()2.不要把list对象传给你不熟悉的API,请选择tuple,防止数据被无意更改。原创 2016-08-09 07:45:54 · 377 阅读 · 0 评论 -
range()函数和xrange()函数
用法: range(start,end,step=1)不包括end边界 xrange(start,end,step=1) 两者的区别: https://www.quora.com/What-is-the-difference-between-range-and-xrange-how-has-this-changed-over-time原创 2016-02-22 15:52:10 · 462 阅读 · 0 评论 -
Python排列组合
使用itertools包常见函数使用 product 笛卡尔积 permutations 排列 combinations 组合,没有重复 combinations_with_replacement 组合,有重复 code example>>> import itertools>>> for i in itertools.product('ABCD', repeat原创 2016-09-06 14:59:58 · 706 阅读 · 0 评论 -
dict过滤
过滤很容易让人想到用filter()函数,如下:>>> dict1 = { 1: '1', 2: '2', 3: '3', 4: {'4': 5}}>>> filter(lambda x: x >= 3, dict1)[3, 4]这种方式产生的结果当然不是我们所要的。为了实现我们的目标,我们可以采用如下两种方法:# Method 1>>> dict(filte原创 2016-09-22 18:47:02 · 1769 阅读 · 0 评论 -
Python生成随机数
1.在某个范围生成x个随机数使用 numpy包 实现>>> import numpy as np>>> np.random.randint(1, 100, 10)array([23, 55, 7, 75, 22, 83, 35, 6, 24, 33])上述在0和100之间生成了10个随机数。2.生成无重复的随机数假设我们要在某个范围内生成不重复的随机数怎么办? 1的方法不行。此时我们可以使原创 2016-09-19 23:25:08 · 799 阅读 · 0 评论 -
Python做词云
网上有一些现成的词云生成工具: HTML5、tagxedo等 但是这些工具都不太好用(有的不支持中文、有的中文词频统计得莫名其妙、有的不支持自定义形状、所有的都不能自定义颜色,尽管可能有一些主题可选)。想要深度定制,必须写代码啊。我们使用wordcloud包# -*- coding: utf-8 -*-from PIL import Imageimport numpy as npimpor原创 2016-09-07 12:50:01 · 4797 阅读 · 0 评论 -
用os模块进行文件系统操作
os模块提供了对进程和进程环境进行管理和处理大部分的文件系统操作功能。具体包括:删除/重命名文件、遍历目录树、管理文件访问权限等。os.path模块可以完成一些针对路径名的操作。os模块常用函数及功能 os.path模块常用函数及功能原创 2016-09-21 10:26:19 · 427 阅读 · 0 评论 -
迭代器
简述迭代器为类似序列的对象提供了类似序列的接口。根本上说, 迭代器就是有一个next() 方法的对象, 而不是通过索引来计数. 当你或是一个循环机制(例如 for 语句)需要下一个项时, 调用迭代器的 next() 方法就可以获得它. 条目全部取出后, 会引发一个 StopIteration 异常, 这并不表示错误发生, 只是告诉外部调用者, 迭代完成。为何可以直接迭代list、set、tuple、原创 2016-09-24 01:41:28 · 286 阅读 · 0 评论 -
Python持久化
有关持久化的模块marshal和pickle、cPickle可以用来转换并存储python对象。该过程将对象转化为二进制数据集合。 dbhash/bsddb, dbm, gdbm, dumbdbm 以及它们的”管理器”( anydbm )只提供了字符串的永久性储存。 shelve则既可以存储对象,也可以存储字符串。marshal和pickle模块的区别marshal和pickle模块的区别在于原创 2016-09-21 12:29:29 · 1146 阅读 · 0 评论 -
Python中的断言
描述及用法 断言语句等价于这样的 Python 表达式,如果断言成功不采取任何措施,否则触发AssertionError(断言错误)的异常。AssertionError 异常和其他的异常一样可以用 try-except 语句块捕捉,但是如果没有捕捉,它将终止程序运行而且提供一个traceback。code exampletry: assert 1 == 0, 'One does not原创 2016-09-21 18:34:24 · 1168 阅读 · 0 评论 -
闭包(Closures)
闭包定义怎么定义在函数定义中定义内部函数时,如果内部函数引用到了外部域(非global)的对象,我们则称内部函数为闭包,被引用的那个对象(变量)被称为自由变量。闭包是函数式编程中非常重要的概念。闭包示例def counter(start_at=0): count = [start_at] def incr(): count[0] += 1 retu原创 2016-09-25 01:30:55 · 318 阅读 · 0 评论 -
变量作用域(Variable Scope)
global关键字在局部作用于中使用全局变量,需要使用global关键字。>>> a= 10>>> def test(): global a a += 1 print a>>> test()11>>> a11作用域数量python支持多个作用域。程序最多有n层函数嵌套,就有n+1个作用域。 比如下面程序就有3个作用域:全局作用域,func_o原创 2016-09-22 22:38:17 · 962 阅读 · 0 评论 -
Python异常处理
异常简介先回答几个问题:为什么要需要异常? 答:防止程序出现错误而终止。比如你打开了一个数据库连接,执行SQL语句的时候,语句有问题,如果不去捕获SQL异常,程序会到此处中断。意味着假设你后面写了关闭数据库连接操作,它不会被执行。异常的描述 答:异常是程序出现了错误而在正常控制流之外采取的行为。在python中,所有的错误都符合相似的格式。所有的错误,无论是语法上的还是逻辑上的,都是由于和p原创 2016-09-21 16:59:14 · 612 阅读 · 0 评论 -
Python高阶函数
简介有几个概念需要声明: - 变量可以指向函数 - 函数名也是变量典型的高阶函数:# 定义def add(x, y, func): return func(x)+func(y)# 调用add(1, -2, abs)map/reduce函数mapmap函数接收两个参数,一个是函数,一个是序列。 map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。 代码示原创 2016-08-18 22:08:08 · 355 阅读 · 0 评论 -
偏函数
Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。通过设定参数的默认值,可以降低函数调用的难度。code example>>> from functools import partial>>> int('123',base=8)83>>> int2 = partial(int, base=8) # int是一个函数>>> in原创 2016-09-22 00:14:56 · 300 阅读 · 0 评论 -
生成器(Generator)
回顾生成器表达式在条件和循环(包括迭代器、生成器)这篇博客里面我们简单的介绍过生成器表达式。回顾一下: 生成器表达式和列表解析式非常相似,基本语法基本相同;不过它并不真正创建列表,而是返回一个生成器。这个生成器在每次计算出一个条目后,把这个条目“yield(产生)”出来。生成器表达式使用了“延迟计算(lazy evaluation)”,所以在内存上更有效。语法:(expr for iter_v原创 2016-09-25 15:25:28 · 365 阅读 · 0 评论 -
Python语句运行时间测试
可以使用timeit模块中的Timer对象来实现。 Timer接收两个参数,第一个参数是“多次执行的语句”,第二个参数是“只在开始执行一次的语句”e.g.我们为了测试list的append方法和set的add方法的性能差异。# -*-coding: utf-8 -*-from timeit import Timerpre_statement = "list1 = range(10000000);原创 2016-08-19 13:14:09 · 2783 阅读 · 1 评论 -
python文件open()函数参数:r和rb比较
读取文本文件时,不要使用rb模式打开文件,而应该仅使用r模式。使用r: 是推荐使用的打开文本文件的模式。因为使用此模式打开文本文件时,python默认为我们做了一些处理,比如:假设在windows下,将本来应该读入的换行符‘\r\n’处理成’\n’,方便我们处理。(值得一提的是,当你将\n写入文件时,python也会默认将其替换成\r\n,如果你是win系统的话)使用rb: 则python不会对原创 2016-08-16 14:31:22 · 20973 阅读 · 1 评论 -
Python数据结构(三)集合set
1.集合有可变集合set和不可变集合frozenset之分2.python集合操作符号和数学符号对应关系: 3.set.remove(obj)和set.discard(obj)的区别在于,当obj存在于set中时,都将其删除;但当obj不存在于set中时,remove()会报错,discard()不会。原创 2016-08-09 07:50:33 · 2445 阅读 · 0 评论 -
模块
1.搜索路径默认搜索路径是在编译或是安装时指定的。 它可以在一个或两个地方修改。一个是启动 Python 的 shell 或命令行的 PYTHONPATH 环境变量。解释器启动之后, 也可以访问这个搜索路径, 它会被保存在 sys 模块的 sys.path 变量里。不过它不是冒号分割的字符串, 而是包含每个独立路径的列表。你可以通过sys.path.append('路径')修改搜索路径。假设我原创 2016-10-04 00:05:28 · 319 阅读 · 0 评论 -
字典排序
我们通过使用sorted()函数,并指定key参数来指定使用字典的key或者value来排序:参数key必须为一函数,在每一个元素做出比较前调用。这里的key参数使用对象的索引(indice)1.按key排序dic = {'a':31, 'b':5, 'c':3, 'd':4, 'e':74, 'f':0}dict = sorted(dic.iteritems(), key=lambda elem原创 2016-07-18 23:55:10 · 514 阅读 · 0 评论 -
Python尾递归
Python并不支持尾递归优化,我们只是使用其语法来描述这个概念。尾递归就是操作的最后一步是调用自身的递归。它和一般的递归不同在对内存的占用,普通递归创建stack累积而后计算收缩,尾递归只会占用恒量的内存(和迭代一样)。我们看一个对比:普通递归def recsum(x): if x == 1: return x else: return x + recsum(x - 1)调原创 2016-10-06 15:13:19 · 1111 阅读 · 0 评论 -
关于字符串
ljust()函数的使用:左对齐Description: The method ljust() returns the string left justified(左对齐) in a string of length width. Padding is done using the specified fillchar (default is a space). The original stri原创 2016-10-29 11:03:48 · 335 阅读 · 0 评论