python函数
2017-07-11 12:18
134 查看
####函数######
1.定义函数
• def关键字,依次写出函数名、括号、括号中的参数和冒号 :
• 在缩进块中编写函数体,函数的返回值用 return 语句返回。
2.函数的用法:
1># 函数在执行过程中一旦遇到return,函数就执行完毕,并将结果返回。
# 函数在执行过程中没有遇到return时,返回值None.
def hello():
return 'hello'
print 'fentiao'
![](https://img-blog.csdn.net/20170711122550436?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711122555308?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2># 如果要定义一个什么也不做的空函数时,可以用pass语句,作为一个占位符,让代码先运行起来。
def world():
pass
print hello()
3># 函数的参数检查
# def my_abs(x):
# if not isinstance(x,(int,float)):
# print "请输入整形或浮点型"
# return abs(x)
#
# print my_abs(123)
![](https://img-blog.csdn.net/20170711122928281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
def my_abs(x):
if type(x) != int or type(x) != str:
print "请输入整形或浮点型"
return abs(x)
print my_abs(123)
![](https://img-blog.csdn.net/20170711122946565?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
4># 函数返回多个值,实质上是返回一个元组tuple,返回时元组可以省略括号,
# 函数调用接收返回值时,按照位置赋值给变量,
def func(x,y):
if not isinstance(x,int) or not isinstance(y,int):
print 'Error Type'
avg = sum((x,y))/2
maxnum = max(x,y)
# return "平均值:[%d],\t最大值:[%d]," %(avg, maxnum)
return (avg,maxnum)
myavg, mymax = func(2,10)
print myavg, mymax
![](https://img-blog.csdn.net/20170711123552214?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711123556823?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
5># 默认参数,必选参数同时存在函数中存在时,一定要将必选参数放在默认参数前面;
# 设置默认参数时,把变化大的参数放前面,变化小的参数放后面,变化小的参数可以设置为默认参数。
def power(x,n=2):
return x**n
print power(2,3)
def enroll(name, age=22, myclass="西部开源运维班"):
print 'name:'+name
print 'age:%d' % age
print 'class:'+ myclass
enroll('lilei')
enroll('xiaoyao',18)
enroll('fentiao',6,'全能班')
![](https://img-blog.csdn.net/20170711124043857?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
# 默认参数必须是不可变数据类型
试一试:先定义一个函数,传入一个 list,添加一个END 再返回.
def fun1(li=None):
if li is None:
return ['END']
li.append('END')
return li
def fun(li = []):
if len(li) == 0:
return ['END']
li.append('END')
return li
print fun([1,2,3])
print fun()
print fun()
![](https://img-blog.csdn.net/20170711124920241?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
6># 可变参数/位置参数
# 定义函数时,形参可以为*args,使函数可以接收多个参数,接收的数据类型为元组;
# 如果想将一个列表或者元组传入函数,也可通过*li 或 *t,将参数传入函数里。
def fun(*args):
print type(args)
return max(args),min(args)
li = 1,42,3,14,58,6
print fun(*li)
![](https://img-blog.csdn.net/20170711125224094?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
7># 关键字参数
![](https://img-blog.csdn.net/20170711131509225?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
def enroll(name, age=22, **kwargs):
print 'name:' + name
print 'age:%d' % age
for k, w in kwargs.items():
print '%s : %s' % (k, w)
dic = {'myclass':'运维班',"gender":'male'}
enroll('fentiao', **dic)
![](https://img-blog.csdn.net/20170711125533483?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
8># 参数定义的顺序:必选参数 > 默认参数 > 可变参数 > 关键字参数
# *args,可变参数,args接收的是tuple.
# **kwargs,关键字参数,kwargs接收的是字典.
def enroll(name, age=22, **kwargs):
print 'name:' + name
print 'age:%d' % age
for k, w in kwargs.items():
print '%s : %s' % (k, w)
dic = {'myclass':'运维班',"gender":'male'}
enroll('fentiao', **dic)
'''
9>b = 2 # 全局变量,在整个代码中生效
def a():
global b
b=1 # 局部变量,只在函数内生效
print b
a()
![](https://img-blog.csdn.net/20170711125751783?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
eg:
![](https://img-blog.csdn.net/20170711131310904?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711131319519?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711131324290?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
练习:
![](https://img-blog.csdn.net/20170711183711836?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711183719123?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711183723615?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711183741630?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170711183745969?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQWRodXlhbmNob25n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1.定义函数
• def关键字,依次写出函数名、括号、括号中的参数和冒号 :
• 在缩进块中编写函数体,函数的返回值用 return 语句返回。
2.函数的用法:
1># 函数在执行过程中一旦遇到return,函数就执行完毕,并将结果返回。
# 函数在执行过程中没有遇到return时,返回值None.
def hello():
return 'hello'
print 'fentiao'
2># 如果要定义一个什么也不做的空函数时,可以用pass语句,作为一个占位符,让代码先运行起来。
def world():
pass
print hello()
3># 函数的参数检查
# def my_abs(x):
# if not isinstance(x,(int,float)):
# print "请输入整形或浮点型"
# return abs(x)
#
# print my_abs(123)
def my_abs(x):
if type(x) != int or type(x) != str:
print "请输入整形或浮点型"
return abs(x)
print my_abs(123)
4># 函数返回多个值,实质上是返回一个元组tuple,返回时元组可以省略括号,
# 函数调用接收返回值时,按照位置赋值给变量,
def func(x,y):
if not isinstance(x,int) or not isinstance(y,int):
print 'Error Type'
avg = sum((x,y))/2
maxnum = max(x,y)
# return "平均值:[%d],\t最大值:[%d]," %(avg, maxnum)
return (avg,maxnum)
myavg, mymax = func(2,10)
print myavg, mymax
5># 默认参数,必选参数同时存在函数中存在时,一定要将必选参数放在默认参数前面;
# 设置默认参数时,把变化大的参数放前面,变化小的参数放后面,变化小的参数可以设置为默认参数。
def power(x,n=2):
return x**n
print power(2,3)
def enroll(name, age=22, myclass="西部开源运维班"):
print 'name:'+name
print 'age:%d' % age
print 'class:'+ myclass
enroll('lilei')
enroll('xiaoyao',18)
enroll('fentiao',6,'全能班')
# 默认参数必须是不可变数据类型
试一试:先定义一个函数,传入一个 list,添加一个END 再返回.
def fun1(li=None):
if li is None:
return ['END']
li.append('END')
return li
def fun(li = []):
if len(li) == 0:
return ['END']
li.append('END')
return li
print fun([1,2,3])
print fun()
print fun()
6># 可变参数/位置参数
# 定义函数时,形参可以为*args,使函数可以接收多个参数,接收的数据类型为元组;
# 如果想将一个列表或者元组传入函数,也可通过*li 或 *t,将参数传入函数里。
def fun(*args):
print type(args)
return max(args),min(args)
li = 1,42,3,14,58,6
print fun(*li)
7># 关键字参数
def enroll(name, age=22, **kwargs):
print 'name:' + name
print 'age:%d' % age
for k, w in kwargs.items():
print '%s : %s' % (k, w)
dic = {'myclass':'运维班',"gender":'male'}
enroll('fentiao', **dic)
8># 参数定义的顺序:必选参数 > 默认参数 > 可变参数 > 关键字参数
# *args,可变参数,args接收的是tuple.
# **kwargs,关键字参数,kwargs接收的是字典.
def enroll(name, age=22, **kwargs):
print 'name:' + name
print 'age:%d' % age
for k, w in kwargs.items():
print '%s : %s' % (k, w)
dic = {'myclass':'运维班',"gender":'male'}
enroll('fentiao', **dic)
'''
9>b = 2 # 全局变量,在整个代码中生效
def a():
global b
b=1 # 局部变量,只在函数内生效
print b
a()
eg:
练习:
相关文章推荐
- 《扩展和嵌入python解释器》1.6 从C中调用Python函数
- 在一个函数中如何知道调用者(Python)
- 有关 Python 中的 File.readlines(sizehint) 函数
- Python中动态添加类的属性或成员函数
- Python 函数、文件与模块
- Python函数中接受元组和字典
- python ip和int 互转函数
- python写的随机生成身份证号码的函数
- Wonderful String Translation Function in Python / Python神奇的字符串变换函数
- python速查笔记(1) 类型与函数
- Python Cookbook 第二版 汉化版 [Recipe 16.4] 将参数与函数关联起来(Currying)
- python函数
- Python小程序解析之--函数 powersum
- python函数参数
- 可爱的 Python:Python 中的函数编程
- [Python]Python函数参数中的*,**
- Python语言的数学函数
- Python中函数的参数定义和可变参数
- Python Cookbook 第二版 汉化版 [Recipe 16.4] 将参数与函数关联起来(Currying)
- Python的函数参数传递:传值?引用?