码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数详解

时间:2020-01-14 13:15:10      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:数组   bsp   处理   image   nbsp   单元   img   print   全局变量   

一、Python中函数的概念

1、python中函数概念

Python中函数是逻辑结构化和过程化的一种编程方法。

2、python中函数定义方法解释

def name(a):
  "The function definitions"
  a += 1
  return a

def:  定义函数的关键字
name:   函数名
():    内可定义形参
"":       文档描述
a += 1: 泛指代码块或程序处理逻辑
return: 定义返回值


    调用运行:可以带参数也可以不带
    函数名()

  3、函数中的参数

    1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量

    2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值

    技术图片

 

 

 

    3.位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定)

    4.默认参数

    5.参数组

二、局部变量和全局变量

  •   在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
  •   全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
  •   当全局变量与局部变量同名时:
  •   在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

三、函数举例

# def test(x,y,z):#x=1,y=2,z=3
# print(x)
# print(y)
# print(z)

#位置参数,必须一一对应,缺一不行多一也不行
# test(1,2,3)

#关键字参数,无须一一对应,缺一不行多一也不行
# test(y=1,x=3,z=4)

#位置参数必须在关键字参数左边
# test(1,y=2,3)#报错
# test(1,3,y=2)#报错
# test(1,3,z=2)
# test(1,3,z=2,y=4)#报错
# test(z=2,1,3)#报错

# def handle(x,type=‘mysql‘):
# print(x)
# print(type)
# handle(‘hello‘)
# handle(‘hello‘,type=‘sqlite‘)
# handle(‘hello‘,‘sqlite‘)

# def install(func1=False,func2=True,func3=True):
# pass

#参数组:**字典 *列表
def test(x,*args):
print(x)
print(args)


# test(1)
# test(1,2,3,4,5)
# test(1,{‘name‘:‘alex‘})
# test(1,[‘x‘,‘y‘,‘z‘])
# test(1,*[‘x‘,‘y‘,‘z‘])
# test(1,*(‘x‘,‘y‘,‘z‘))

# def test(x,**kwargs):
# print(x)
# print(kwargs)
# test(1,y=2,z=3)
# test(1,1,2,2,2,2,2,y=2,z=3)
# test(1,y=2,z=3,z=3)#会报错 :一个参数不能传两个值

def test(x,*args,**kwargs):
print(x)
print(args,args[-1])
print(kwargs,kwargs.get(‘y‘))
# test(1,1,2,1,1,11,1,x=1,y=2,z=3) #报错
# test(1,1,2,1,1,11,1,y=2,z=3)

# test(1,*[1,2,3],**{‘y‘:1})

Python函数详解

标签:数组   bsp   处理   image   nbsp   单元   img   print   全局变量   

原文地址:https://www.cnblogs.com/wangzengyi/p/12191252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!