python函数

python 15 闭包函数

China☆狼群 提交于 2020-03-23 09:09:04
目录 1.函数对象 2.函数嵌套 3.闭包函数 4.闭包的用途 1.函数对象 精髓:把函数当成变量去用,具体可以分为四个方面的使用 1、可以赋值,函数名A赋值给B,直接B()就可以引用该函数了 f=func print(f,func) f() 2、函数可以作为参数传入另外一个函数 def foo(x): # x = func的内存地址 # print(x) x() foo(func) # foo(func的内存地址) 3、函数的返回值可以是一个函数 def foo(x): # x=func的内存地址 return x # return func的内存地址 res=foo(func) # foo(func的内存地址) print(res) # res=func的内存地址 res() 4、可以当做容器类型的一个元素 l=[func,] # print(l) l[0]() dic={'k1':func} print(dic) dic['k1']() 函数对象应用示范: def login(): print('登录功能') def transfer(): print('转账功能') def check_banlance(): print('查询余额') def withdraw(): print('提现') def register(): print('注册') func_dic = {

Python之迭代器、装饰器、软件开发规范

喜你入骨 提交于 2020-03-23 09:00:27
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需求,看列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我要求你把列表里的每个值加1,你怎么实现?你可能会想到2种方式 1 >>> a 2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 3 >>> b = [] 4 >>> for i in a:b.append(i+1) 5 ... 6 >>> b 7 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 8 >>> a = b 9 >>> a 10 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 普通青年版 a = [1,3,4,6,7,7,8,9,11] for index,i in enumerate(a): a[index] +=1 print(a) 原值修改 1 >>> a 2 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 3 >>> a = map(lambda x:x+1, a) 4 >>> a 5 <map object at 0x101d2c630> 6 >>> for i in a:print(i) 7 ... 8 3 9 5 10 7 11 9 12 11

pandas.read_csv参数详解

那年仲夏 提交于 2020-03-23 08:30:12
转自: pandas.read_csv 参数整理 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见: http://pandas.pydata.org/pandas-docs/stable/io.html 参数: filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO) 可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中 本地文件读取实例:://localhost/path/to/table.csv sep : str, default ‘,’ 指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:'\r\t' delimiter : str, default None 定界符,备选分隔符(如果指定该参数,则sep参数失效) delim_whitespace : boolean, default False. 指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用

Python 深浅拷贝

吃可爱长大的小学妹 提交于 2020-03-23 07:14:30
概念普及:对象、可变类型、引用 数据拷贝会涉及到Python中 对象、可变类型、引用 这3个概念,先来看看这几个概念,只有明白了他们才能更好的理解深拷贝与浅拷贝到底是怎么一回事。 Python对象 在Python中,对对象有一种很通俗的说法,万物皆对象。说的就是构造的任何数据类型都是一个对象,无论是数字,字符串,还是函数,甚至是模块,Python都对当做对象处理。 所有Python对象都拥有三个属性:身份、类型、值。 可变与不可变对象 在Python中,按更新对象的方式,可以将对象分为2大类:可变对象与不可变对象。 可变对象: 列表、字典、集合    所谓可变是指可变对象的值可变,身份是不变的。 不可变对象:数字、字符串、元组    不可变对象就是对象的身份和值都不可变。新创建的对象被关联到原来的变量名,旧对象被丢弃,垃圾回收器会在适当的时机回收这些对象。 引用 在 Python 程序中,每个对象都会在内存中申请开辟一块空间来保存该对象,该对象在内存中所在位置的地址被称为引用。在开发程序时,所定义的变量名实际就对象的地址引用。 引用实际就是内存中的一个数字地址编号,在使用对象时,只要知道这个对象的地址,就可以操作这个对象,但是因为这个数字地址不方便在开发时使用和记忆,所以使用变量名的形式来代替对象的数字地址。 在 Python 中,变量就是地址的一种表示形式,并不开辟开辟存储空间。

Python 列表和元组

一笑奈何 提交于 2020-03-23 06:22:07
1、数据结构:通过某种方式组织在一起的数据元素的集合 2、在Python中,最基本的数据结构是序列(sequence),最后一个元素标记为-1,倒数第二个元素为-2,第一个元素位于最开始,索引为0 3、Python包含6种内建的序列,最常用的两种类型:列表和元组.其他的内建序列类型有字符串、Unicode字符串、buffer对象和xrange对象 4、列表和元组的主要区别在于,列表可以修改,元组则不能 months = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ] endings = ['st','nd','rd'] + 17*['th']\ + ['st','nd','rd'] + 7*['th']\ + ['st'] year = raw_input('Year: ') month = raw_input('Month(1-12): ') day = raw_input('Day(1-31): ') month_number = int(month) day_number = int(day) month_name = months[month_number-1]

python并发编程之多进程理论部分

本小妞迷上赌 提交于 2020-03-23 05:41:13
内容概要 操作系统介绍 进程 线程 协程 二. 进程 python并发编程之多进程理论部分 在python程序中的进程操作   运行中的程序就是一个进程。所有的进程都是通过它的父进程来创建的。因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建子进程。多个进程可以实现并发效果,也就是说,当我们的程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快。创建进程这个功能需要借助python中强大的模块。 multiprocess模块   multiprocess不是一个模块而是python中一个操作、管理进程的包。 这个包中几乎包含了和进程有关的所有子模块。大致分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享。 multiprocess.process模块 process模块介绍   process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建。 class Process(object): def __init__(self, group=None, target=None, name=None, args=(), kwargs={}): self.name = '' self.daemon = False self.authkey = None self.exitcode = None self.ident = 0

Python Print函数用法

泪湿孤枕 提交于 2020-03-23 03:14:22
Python print 函数用法, print 格式化输出 使用 print 输出各型的 字符串 整数 浮点数 出度及精度控制 strHello = 'Hello Python' print strHello #输出结果:Hello Python#直接出字符串 1.格式化输出整数 python print 也支持参数格式化,与C言的printf似, strHello = "the length of (%s) is %d" %('Hello World',len('Hello World')) print strHello #输出果:the length of (Hello World) is 11 2.格式化输出16制整数 nHex = 0x20#%x --- hex 十六进制#%d --- dec 十进制#%d --- oct 八进制 print "nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex) #输出结果:nHex = 20,nDec = 32,nOct = 40#使用整数的各个制打印同一个数 3.格式化输出浮点数(float) import math#default print "PI = %f" % math.pi#width = 10,precise = 3,align = left print "PI = %10

Python enumerate函数

这一生的挚爱 提交于 2020-03-23 02:03:48
enumerate函数接受一个可遍历的对象,如列表、字符串,可同时遍历下标(index)及元素值(value) >>> a = ['aaa','bbb','ccc',1235] >>> print(a) ['aaa', 'bbb', 'ccc', 1235] >>> print(len(a)) 4 >>> for i in range(len(a)): print(i) 0 1 2 3 >>> for j in range(len(a)): print(j,a[j]) 0 aaa 1 bbb 2 ccc 3 1235 >>> for i,j in enumerate(a): print(i,j) 0 aaa 1 bbb 2 ccc 3 1235 >>> for x in enumerate(a): print(x) (0, 'aaa') (1, 'bbb') (2, 'ccc') (3, 1235) >>> 使用enumerate函数来统计文本行数: 文本内容:test.txt this is a test 代码: >>> for count,line in enumerate(open(r'I:\PythonTest\1234.txt','r')): count +=1 >>> print(count) 4 >>> 实例2: 文本内容: 1234.txt The Zen of

Python day15

好久不见. 提交于 2020-03-23 01:20:24
1.复习 2.生成器面试题 例子1: def demo(): for i in range(4): yield i g=demo() g1=(i for i in g) g2=(i for i in g1) print(list(g1)) print(list(g2)) 执行结果: [0, 1, 2, 3] [] 例子2: def demo(): for i in range(4): yield i g=demo() g1=(i for i in g) g2=(i for i in g1) print(list(g)) print(list(g1)) print(list(g2)) 执行结果: [0, 1, 2, 3] [] [] 例子3: def add(n,i): return n+i def test(): for i in range(4): yield i g=test() for n in [1,10,5]: g=(add(n,i) for i in g) print(list(g)) 执行结果: [15, 16, 17, 18] 2.内置函数 http://www.cnblogs.com/Eva-J/articles/7206498.html#compile 接下来,我们就一起来看看python里的内置函数。截止到python版本3.6.2

Python源码剖析 - Python中的整数对象

故事扮演 提交于 2020-03-22 23:55:53
1. 不可变的PyIntObject Python源码剖析 - 对象初探 我们对 PyIntObject 已经有了初步的了解。 Python 中的对象可以分为固定长度和可变长度两种类型。除此之外,也可以按照可变和不可变进行划分。 PyIntObject 则属于长度固定且不可变的对象。相比其他的对象而言,最简单,也最容易理解。 我们先来了解一下 PyIntObject 类型的类型信息,代码如下: PyTypeObject PyInt_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "int", sizeof(PyIntObject), 0, (destructor)int_dealloc, /* tp_dealloc */ (printfunc)int_print, /* tp_print */ 0, /* tp_getattr */ 0, /* tp_setattr */ (cmpfunc)int_compare, /* tp_compare */ (reprfunc)int_to_decimal_string, /* tp_repr */ &int_as_number, /* tp_as_number */ 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ (hashfunc)int