1.从集合中取出最大或最小N个元素importheapqnums=[1,8,2,23,7,-4,18,23,42,37,2]print(heapq.nlargest(3,nums))#输出[42,37,23]print(heapq.nsmallest(3,nums))#输出[-4,1,2]也支持其他参数支持更为复杂的数据结构portfolio=[{'name':'IBM','shares':100,'price':91.1},{'name':'AAPL',
系统 2019-09-27 17:46:30 1868
在表达式中引用变量时,Python会按照如下的顺序遍历各个作用域,寻找该变量:当前函数作用域任何外围作用域(比如包含当前函数的其他函数)global作用域,即代码所在的模块的作用域如果上述作用域内都找不到变量,就会报NameError异常。但是对变量赋值时,规则会有所不同。如果当前作用域变量已存在,那么其值会被替换。如果不存在,则会视为在当前作用域定义新变量,而不是向外围作用域中寻找。如下函数deffunction():flag=Truedefhelper
系统 2019-09-27 17:46:14 1868
安装SDK:pipinstallbaidu-aip如果在pycharm里也可以在setting----ProjectInterpreter---右边绿色加号,输入baidu,安装baidu-aip入门代码:先去百度AI开放平台注册一个账号,然后开通人脸识别,免费的http://ai.baidu.com/tech/face之后把得到的Apikeysecretkey填进去。fromaipimportAipFace"""你的APPIDAKSK"""APP_ID=
系统 2019-09-27 17:45:59 1868
在Python3中,将中文进行urlencode编码使用函数urllib.parse.quote(string,safe='/',encoding=None,errors=None)而将编码后的字符串转为中文,则使用urllib.parse.unquote(string,encoding='utf-8',errors='replace')示例代码如下:test="微信公众账号比特量化"print(test)new=urllib.parse.quote(te
系统 2019-09-27 17:45:54 1868
Python2中编码相关的问题很是让人蛋疼,特别是中文字符。比如本文所述的中文网页GBK编码的诡异问题。现象例如:盲录�氓��,其实网页里面正常的应该是会员分析接着上面的例子,会员这部分乱码通过repr()函数求值得到如下结果\xc3\xa4\xc2\xbc\xc2\x9a\xc3\xa5\xc2\x91\xc2\x98使用type()函数求值得到的结果为unicodeeval(repr())出来值为盲录�氓��通过查表上述6个汉字对应c3a4c2bcc2
系统 2019-09-27 17:45:40 1868
python文件部分:user={'username':None}shopping_trolley={}shopping_num=[0]money=[0]my_money=[0]#获取商品列表defget_goods_list():withopen('shopping.txt',encoding='utf-8')asfr:shopping_dic=eval(fr.read())returnshopping_dicshopping_dic=get_goods
系统 2019-09-27 17:45:36 1868
1.编译nginx在网上买了一本《实战nginx-取代Apache的高性能服务器》,写的比较浅,主要是些配置方面的东西,不过却正是目前我所需要的。由于需要支持https和rewrite,所以除了nginx的源码之外,又下载了openssl-0.9.8r.tar.gz和pcre-8.12.tar.gz,把他们和nginx-1.0.4.tar.gz放到同一个目录。为了方便编译,笔者写了一个脚本,代码如下:#!/bin/bash#================
系统 2019-09-27 17:38:47 1868
#/usr/bin/envpython#-*-coding:utf-8-*-"""1.解析crontab配置文件中的五个数间参数(分时日月周),获取他们对应的取值范围2.将时间戳与crontab配置中一行时间参数对比,判断该时间戳是否在配置设定的时间范围内"""#$Id$importre,time,sysfromCore.FDateTime.FDateTimeimportFDateTimedefget_struct_time(time_stamp_int)
系统 2019-09-27 17:38:43 1868
我们都知道并发(不是并行)编程目前有四种方式,多进程,多线程,异步,和协程。多进程编程在python中有类似C的os.fork,当然还有更高层封装的multiprocessing标准库,在之前写过的python高可用程序设计方法中提供了类似nginx中masterprocess和workerprocess间信号处理的方式,保证了业务进程的退出可以被主进程感知。多线程编程python中有Thread和threading,在linux下所谓的线程,实际上是LW
系统 2019-09-27 17:38:17 1868
一般说来,你会把模板以文件的方式存储在文件系统中,但是你也可以使用自定义的templateloaders从其他来源加载模板。Django有两种方法加载模板django.template.loader.get_template(template_name):get_template根据给定的模板名称返回一个已编译的模板(一个Template对象)。如果模板不存在,就触发TemplateDoesNotExist的异常。django.template.loade
系统 2019-09-27 17:37:43 1868