本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Python
  • Python基础教程(8)函数的定义与使用

Python基础教程(8)函数的定义与使用

发布:TangLu2019-12-12 14:38分类: Python 标签: python python3

一、Python函数的作用

使用函数是增强代码复用率的一种办法,将需要重复使用的代码块定义成一个函数,然后在其他代码中应用函数就可以去调用其中的代码,这个和Shell中的函数是一样的。


二、Python函数的定义与调用

1、普通函数

# def  funcname(parameter1,parameter22,...);  #使用def语句定义函数,后面的parameter是参数列表(非必写),其可以是数组形式
#   代码块
#   [return 某个值]  #如果没有return的话返回None

# 示例
def printInfo():
  print("真的太难了")

printInfo()  #输入函数名即可完成调用


2、带参函数

def calc(num1,num2)  #这里为calc函数定义了2个形参
  result = num1 + num2
  print(result)

calc(10,20)  #这里括号内的就是实参,由于形参有2个,所以实参也需要2个
calc(num2=5,num1=2)  #也可以通过关键字指定实参的值,不用强行按照形参的顺序来定义,更灵活


3、可变参数函数

def my_sum(x,*y)  #*号为可变参数,建议将可变参数放在最后一位
  print (x)
  print (y)  
my_sum(1,2,3,4,5)  #除了第一个参数外其他全部以元组数据传递给y,而y是一个字典

#如果要传递的参数本身是数组或者列表,在实参部分加*号就可以自动拆解,不用再单独指定索引
nums = (12,4,5,1)
my_sum(2,*nums)


4、关键字参数。用2个星号来表示参数可变,但是每个参数需要带有名称

def test1(x,**y)
  print(x)
  print(y)

test1(x,canshu1=5,canshu2=1)  #2个参数都定义了名称


5、参数默认值

如果程序中有大量参数的最终值是一样的,可以给它设置一个默认参数,省去重复性工作。如果在实参里定义了值可以覆盖默认参数的值。需要注意的在定义和调用默认参数时,一定要把默认参数全部放在后面写,不要穿插有形参

def student_info(name,sex,age,school='清华大学'):  # 为school参数设置了默认值
  print('我叫' + name)
  print('我今年' + str(age) + '岁')
  print('我是' + sex + '生' )
  print('我在' + school + '上学')

student_info('天才','男','7')  #这里就不用定义school的值
student_info('果果',sex='女',21,school='四川大学')  #这种在默认参数中混入形参的语法会报错


三、使用return指定函数返回值

#一个函数中的代码块可能存在多个任务,如果想指定最终返回结果,需要用return
def worker(a, b, c):
    x = a + b
    y = x * c
    return y
num = worker(1, 2, 3)
print(num)  #返回为9,(a+b)*c


四、函数的其他知识

1、在函数中定义的变量默认都为局部变量 ,在函数A中定义了变量var1,在函数中B也可以定义一个变量var1。如果要让该变量全局生效需要加关键词global。

def test1():
  a = 10
  print(a)

def test2():
  a = 20 
  print (a)

def test3()
  global b = 10  #全局变量

test1()  #输出10
test2()  #输出20


2、一个函数接收另一个函数作为参数,那么这个函数是高阶函数

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《Python基础教程(8)函数的定义与使用
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-525.html  [生成短网址]

已有 0/1093 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~