index函数

怎样才能写出Pythonic的代码 #P001#

十年热恋 提交于 2019-12-24 22:09:03
1 什么是Pythonic 在Python语言里面,有一个专门的词用来形容代码写的好,那就是“Pythonic”。那么,何为Pythonic呢?相信不少Python工程师都知道,Python中有一个彩蛋,回答了什么是Pythonic。这个彩蛋,也就是所谓的Python之禅(The Zen of Python)。 只需要在Python的交互模式下,导入this库,就可以看到Python之禅的详细内容。如下所示: >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. .... Readability counts. .... 为了节省文章的篇幅,这里只给出了一部分内容。读者可以在Python的交互模式下导入this库查看完整的内容。接下来,我们简单翻译几句Python之禅: 优美胜于丑陋 明了胜于晦涩 简介胜于复杂 …… 可读性很重要 …… 大家有没有发现,所谓的Python之禅,简直就是 正确的废话 。它只告诉我们什么是好,什么是不好,但是,却没有告诉我们通往成功彼岸的方法。关于Pythonic,除了禅意以外,更重要的是,还需要方法论

Ipython Numpy pandas

守給你的承諾、 提交于 2019-12-24 19:53:51
Ipython:交互式的Python命令行 TAB:自动完成 ?:内省,命令空间搜索 !:执行系统命令 %run:命令执行文件代码 Ipython常用魔术命令: %quickref:显示Ipython的快速参考 %magic:显示所有魔术命令的详细文档 %debug:从最新的异常追踪的底部进入交互式命令调试器 %hist:打印命令的输入(可选输出)历史 %pdb:在异常发生后自动进入调试器 %paste:执行剪贴板中的Python代码 %cpaste:打开一个特殊提示符以便手工粘贴待执行的Python代码 %reset:删除interactive命名空间中的全部变量/名称 %page OBJECT:通过分页器打印输出OBJECT %run script.py:在Ipython中执行一个Python脚本文件 %prun statement:通过cProfile执行statement,并打印分析器的输出结果 %time statement:报告statement的执行时间 %timeit statement:多次执行statement以计算系统平均执行时间,对那些执行时间非常小的代码有用 %who %who_is %whos:显示interactive命名空间中定义的变量,信息级别/冗余度可变 %xdel variable:删除variable

02-01 Django之路由层

跟風遠走 提交于 2019-12-24 14:43:14
Django之路由层 一 路由的作用 路由即请求地址与视图函数的映射关系,如果把网站比喻为一本书,那路由就好比是这本书的目录,在Django中路由默认配置在urls.py中,如下图: 二 简单的路由配置 # urls.py from django.conf.urls import url # 由一条条映射关系组成的urlpatterns这个列表称之为路由表 urlpatterns = [ url(regex, view, kwargs=None, name=None), # url本质就是一个函数 ] #函数url关键参数介绍 # regex:正则表达式,用来匹配url地址的路径部分, # 例如url地址为:http://127.0.0.1:8001/index/,正则表达式要匹配的部分是index/ # view:通常为一个视图函数,用来处理业务逻辑 # kwargs:略(用法详见有名分组) # name:略(用法详见反向解析) 案例: urls.py文件 from django.conf.urls import url from django.contrib import admin from app01 import views # 导入模块views.py urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'

python基础-装饰器

寵の児 提交于 2019-12-24 13:08:07
python基础-装饰器 一、什么是装饰器   装饰器本质就是函数,功能是为其他函数附加功能 二、装饰器遵循的原则 1、不修改被修饰函数的源代码 2、不修改被修饰函数的调用方式 三、实现装饰器的知识储备 装饰器=高阶函数+函数嵌套+闭包 示例1: 用函数实现 1 #计算从1-100,统计函数运行时间 2 3 import time 4 def cal(l): 5 start_time=time.time() 6 res=0 7 for i in l: 8 time.sleep(0.1) 9 res+=i 10 stop_time = time.time() 11 print('函数的运行时间是%s' %(stop_time-start_time)) 12 return res 13 14 print(cal(range(100))) #直接打印得到运行的时间 执行结果: 1 函数的运行时间是10.007169723510742 2 4950 示例2:用装饰器实现函数运行时间 1 import time 2 def timmer(func): 3 def wrapper(*args,**kwargs): 4 start_time=time.time() 5 res=func(*args,**kwargs) 6 stop_time = time.time() 7 print(

lodash源码分析之baseSlice()函数

♀尐吖头ヾ 提交于 2019-12-24 07:40:04
源码 function baseSlice ( array , start , end ) { var index = - 1 , length = array . length ; if ( start < 0 ) { // 传入的参数转换 start = - start > length ? 0 : ( length + start ) ; } end = end > length ? length : end ; // 这里判断之后,end依然有可能为负数 if ( end < 0 ) { // 传入的参数转换 end += length ; } // 先对start和end单独做判断,然后,二者在比较 length = start > end ? 0 : ( ( end - start ) >>> 0 ) ; // 按位操作符操作数字的二进制形式,但是返回值依然是标准的JavaScript数值。 start >>>= 0 ; var result = new Array ( length ) ; while ( ++ index < length ) { result [ index ] = array [ index + start ] ; } return result ; } 我的代码 // 数组的slice方法重写 function mySlice ( arr ,

原生JavaScript实现无缝轮播图

删除回忆录丶 提交于 2019-12-23 18:55:35
无缝轮播图是页面常用的特效之一,然而在实际的开发过程中,大部分的开发者都会使用插件来对轮播图进行开发,那么它的底层到底是怎么实现的呢,本文章将围绕这一问题展开探讨。 在讨论如何利用原生JS实现图片之间无缝切换轮播的动画效果之前,我们先来谈谈无缝轮播图片的css布局。 首先我们需要一个用来显示图片的DIV容器,然后把想要轮播的图片没有缝隙的排成一行放入DIV容器中,给DIV容器设置 overflow: hidden,这样在页面中就可以只看到一张图片,然后通过利用JS来移动ul的left值就能达到无缝轮播的动画效果。 然而这还不够,我们还需要在第一张图片前放最后一张图片,以及在最后一张图片后放第一张图片,这样做得目的是为了实现第一张图片和最后一张图片切换时能达到无缝的动画效果。核心代码和布局效果如下: <div id="box"> <ul> <li><img src="img/5.jpg"></li> <li><img src="img/1.jpg"></li> <li><img src="img/2.jpg"></li> <li><img src="img/3.jpg"></li> <li><img src="img/4.jpg"></li> <li><img src="img/5.jpg"></li> <li><img src="img/1.jpg"></li> </ul> <

EasyUI_Datagrid学习总结

最后都变了- 提交于 2019-12-23 17:45:17
EasyUI_Datagrid 学习总结 2016 年7月25日星期一 一、简介 Easyui中的datagrid从总的作用上讲,就是在列表上显示数据,类似于table,但是在table的基础上,此控件更加方便、快捷的实现想要的功能,且能在此控件属性中有分页等控件,也就更好的对数据进行处理等。 二.基本的属性介绍 1.Columns : 列的配置对象。 基本的用法是: [[{field:'productid',title:’id’,width:100,align:'center',halign:'center',sortable:true}]] 上面的一行代码表示的是一列field表示这一列的数据显示的名称,也就是后台传回来数据的某一项属性:如id、name等等属性。title则表示这列的标题,相当于table中的<th>标签。在datagrid中列类似的属性有很多;下面说一些,我认为常用的属性:(更多的查看api) title:(String)表示标题文本 field:(String)列字段名称 width:(number)宽度,不写将自动扩充以便适应内容 rowspan:(number)(合并行)。 colspan:(number)(合并列)。 align:(‘left’|’right’|’ center’)如何对其数据 halign: (‘left’|’right’|’

python之openpyxl模块

怎甘沉沦 提交于 2019-12-22 14:02:14
一 . Python操作EXCEL库的简介 1.1 Python官方库操作excel Python官方库一般使用xlrd库来读取Excel文件,使用xlwt库来生成Excel文件,使用xlutils库复制和修改Excel文件,这三个库只支持到Excel2003。 1.2 第三方库openpyxl介绍 第三方库openpyxl(可读写excel表),专门处理Excel2007及以上版本产生的xlsx文件,xls和xlsx之间转换容易。 注意:如果文字编码是“gb2312” 读取后就会显示乱码,请先转成Unicode 本文将详细介绍第三方库openpyxl的基本用法 第三方库openpyxl的安装: <1>下载路径:https://pypi.python.org/pypi/openpyxl <2>解压到指定文件目录:tar -xzvf openpyxl.tar.gz <3>进入目录,找到setup.py文件,执行命令:python3 setup.py install 如果报错No module named setuptools 就使用命令“easy_install openpyxl”,easy_install for win32,会自动安装setuptools; 或者直接用cmd命令:pip3 install openpyxl安装 二. openpyxl库基本操作总结 2.1

pytphon 装饰器

一曲冷凌霜 提交于 2019-12-20 03:39:52
函数对象 函数也是一类对象,即函数可以当做数据进行传递 可以被引用 可以作为参数传递 返回值也可以是函数 可以作为容器类型的元素 def foo(): print('foo') def bar(): print('bar') dic={ 'foo':foo, 'bar':bar, } while True: choice=input('>>: ').strip() if choice in dic: dic[choice]() View Code 函数嵌套 def f1(): def f2(): def f3(): print('from f3') f3() f2() f1() 嵌套定义 def max(x,y): return x if x > y else y def max_test(a,b,c,d): res1=max(a,b) res2=max(res1,c) res3=max(res2,d) return res3 print(max4(1,2,3,4)) 嵌套调用 名称空间与作用域 名称空间 名称空间:存放名字的地方,(之前遗留的问题x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方) 名称空间加载顺序 python解释器先启动,因而首先加载的是:内置名称空间 执行python代码文件,然后以文件为基础,加载全局名称空间

pandas中loc和iloc用法

痴心易碎 提交于 2019-12-19 15:17:26
loc函数:通过行索引 “Index” 或者"columns"中的具体值来取行、列数据 iloc函数:通过行号或者列号来取行、列数据(如取第二行的数据、取第0列的数据) 首先我们创建一个Data Frame import numpy as np import pandas as pd #创建一个Dataframe data = pd . DataFrame ( np . arange ( 16 ) . reshape ( 4 , 4 ) , index = list ( 'abcd' ) , columns = list ( 'ABCD' ) ) data out : A B C D a 0 1 2 3 b 4 5 6 7 c 8 9 10 11 d 12 13 14 15 1.取行 方法一 #用loc data . loc [ 'a' ] #取行index为‘a’的数据 #用iloc data . iloc [ 0 ] #取第0行数据 #out: A 0 B 1 C 2 D 3 Name : a , dtype : int64 想得到的结果为DataFrame格式? 方法二 data . loc [ [ 'a' ] ] data . iloc [ [ 0 ] ] #out: A B C D a 0 1 2 3 想取好几行? data . loc [ [ 'a' , 'd' ] ]