本文共 5552 字,大约阅读时间需要 18 分钟。
定义和使用
def func_name(param1,param2....):func_block函数返回值可是是零个或任意多个,在函数体中用return关键字返回#!/usr/bin/env pythondef add1(x,y=10):return x+yif name=='main':
print "add2+3:",add1(2,3)print "add-4:",add1(-4)[root@SN28 opt]# ./p.pyadd2+3: 5add-4: 6变长参数
变长参数的函数即参数个数、参数类型不定的函数。Python中只有两种类型的变长函数。● 元组Tuple变长参数:以一个*号开头的代表着一个任意长度的元组(tuple),可以接收连续一串参数,如上面代码里传的是1,2,3,你可以更多。● 字典Directory变长参数:以两个*号开头的代表着一个字典,参数的形式是“key=value”,接受连续任意多个参数。\>>> def funcD(a,b,*c):... print a... print b... print c... \>>> funcD(1,2,3,4,5)12(3, 4, 5)\\>>> def func(a,**b):... print a... for x in b:... print x+":"+str(b[x])... \>>> func("book",c='hello',b=8,d='option')bookc:hellob:8d:option\>>>匿名函数:
匿名函数是指一类无须定义标识符(函数名)的函数或子程序,一般用于只在代码一次函数引用的场合Python使用lambda语法定义匿名函数,只需要表达式而无需声明。一种单行的小函数。定义lambda函数的形式如下:labmda 参数:表达式,lambda函数默认返回表达式的值。lambda [arg1,arg2...argN]:expression可以将其赋值给一个变量。lambda函数可以接受任意个参数,包括可选参数,但是表达式只有一个:\>>> g = lambda x, y: x*y\>>> g(3,4)12\>>> g = lambda x, y=0, z=0: x+y+z\>>> g(1)1\>>> g(3, 4, 7)14也能够直接使用lambda函数: 需要用两对小括号\>>> (lambda x,y=0,z=0:x+y+z)(3,5,6)14\>>> import datetime
\>>> datetime.datetime.now()datetime.datetime(2017, 12, 31, 17, 11, 2, 316799)all(i) i中所有的元素都是True,才会返回True
any(i) i中所有的元素只要有一个是True就会返回Truebool(x) x如果是False、None或是空值就返回Falseabs(x) 返回x的绝对值pow(x,y) 计算x 的y 次方divmod(a,b) 返回a/b的商和余数,以tuple的方式返回eval(e) 求字符串类型的表达式e的值round(n) 数值n四舍五入,去整数bin(n) 把数值n转换为二进制数字hex(n) 把数值n转换为十六进制数字oct(n) 把数值n转换为八进制数字float(n) 把变量n转换成浮点数类型str(n) 把变量n转换陈为字符串类型int(a) 把变量a转换成整数类型chr(n) 取得第n个ASCII码的字符len(a) 计算变量a的长度,但a必须是可以计算长度的类型max(a) 返回变量a中最大值的元素min(a) 返回变量a中最小值的元素sum(a) 计算变量a中元素的总和open() 打开文件print() 输出函数format() 字符串格式化符号输出映像input(msg) 显示出信息msg,并要求用户输入数据enumerate(x) 用枚举的方式,把变量x中的索引值和值取出来,组合成tuple,而x必须像是list,dict这一类具有迭代特性的变量range(a,b,c) 返回啊开始到b-1、间隔为c 的序列数字sorted(a) 把a 的元素排序frozenset() 用来创建出不能被修改的集合变量dir(x) 用来检查x对象可以使用的方法type(x) 返回变量x的类型\>>> abs(-45)
45\>>> all(iterable) iterable 元组或列表如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False;注意:空元组、空列表返回值为True,这里要特别注意。\>>>all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0True\>>> all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素False\>>> all([0, 1,2, 3]) # 列表list,存在一个为0的元素False\>>> all(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0True\>>> all(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素False\>>> all((0, 1,2, 3)) # 元组tuple,存在一个为0的元素False \>>> all([]) # 空列表True\>>> all(()) # 空元组Trueany()方法def any(iterable):for element in iterable:if element:return Truereturn False如果都为空、0、false,则返回false,如果不都为空、0、false,则返回true。\>>>any(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0True\>>> any(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素True \>>> any([0, '', False]) # 列表list,元素全为0,'',falseFalse\>>> any(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0True\>>> any(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素True\>>> any((0, '', False)) # 元组tuple,元素全为0,'',falseFalse \>>> any([]) # 空列表False\>>> any(()) # 空元组Falsebin()方法\>>> bin(10)'0b1010'\>>> bin(20)'0b10100'\>>> bin(2)'0b10'\>>> bool()方法0 ,"", '',None,False 都为 False 注意:" " , " " 一个空格以上都为真\>>> bool(-10)True\>>> bool(0)False\>>> bool()False\>>> bool(False)False\>>> bool(None)False\>>> bool(2)True\>>> chr() 方法chr(i)参数i -- 可以是10进制也可以是16进制的形式的数字。返回值是当前整数对应的ascii字符。\>>> chr(0x30)'0'\>>> chr(0x31)'1'\>>> chr(48)'0'\>>> chr(49)'1'\>>> chr(97)'a'\>>> divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。\>>> divmod(7,2)(3, 1)\>>> divmod(8,2)(4, 0)\>>> enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。enumerate(sequence, [start=0])参数sequence -- 一个序列、迭代器或其他支持迭代对象。start -- 下标起始位置。返回 enumerate(枚举) 对象。\>>> seasons=['Spring','Summer','Fall','Winter']\>>> list(enumerate(seasons))[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]\>>> list(enumerate(seasons,start=1))[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]\>>> \>>> i=0\>>> seq=['one','two','three']\>>> for element in seq:... print i,seq[i]... i+=1... 0 one1 two2 three\>>> seq=['one','two','three']\>>> for i,element in enumerate(seq):... print i,seq[i]... 0 one1 two2 threeeval()方法
\>>> x=7\>>> eval('3x')21\>>> type(eval('3x')... )<type 'int'>\>>> eval('pow(2,2)')4\>>> eval('2+2')4\>>> n=81\>>> eval("n+4")85\>>> float()\>>> float(1)1.0\>>> float(112)112.0\>>> Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序。\>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序'hello world'\>>> "{0} {1}".format("hello", "world") # 设置指定位置'hello world'\>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置'world hello world'print("网站名:{name}, 地址 {url}".format(name="教程", url="www.test.com"))site = {"name": "教程", "url": "www.test.com"}
print("网站名:{name}, 地址 {url}".format(**site))my_list = ['教程', 'www.test.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的frozenset()返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。\>>> a=frozenset(range(10))\>>> afrozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])\>>> b=frozenset("Hell word")\>>> bfrozenset([' ', 'e', 'd', 'H', 'l', 'o', 'r', 'w'])\>>> print ()from future import print_functionfor i in range(10):
print ('*',end=" ")print ()print 不换行,需要python3 的print ,导入 from future import print_function
在python3.x之前,可以通过在print语句之后加逗号解决在python3.x之后,可以在print()之中加end=""来解决print 与 format 结合使用 格式 print ("{}".format(x))\>>> x="Happy"\>>> y="New Year"\>>> print ("I say {} your {}".format(x,y))I say Happy your New Year\>>>转载于:https://blog.51cto.com/2168836/2103618