欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python基础入门之十 —— 函数

程序员文章站 2022-03-26 12:28:28
1、概述 (1)定义: def 函数 (参数) 代码1 代码2 ..... (2)调用: 函数名(参数) P.S:(1)在python 中,函数必须先定义后使用。 (2)定义函数时代码不执行,调用时执行。 # 演示 def add_func(a, b): return a+b a = 1 b = 2 ......

1、概述

(1)定义:

def 函数 (参数)
代码1
代码2
.....

(2)调用:

函数名(参数)

p.s:(1)在python 中,函数必须先定义后使用。

       (2)定义函数时代码不执行,调用时执行。

# 演示
def add_func(a, b):
    return a+b
a = 1
b = 2
print(add_func(a, b))  # 3

2、说明文档

def add_func(a, b):
    """
    函数说明
    :param a:参数1
    :param b:参数2
    :return:返回值
    """
    return a+b
help(add_func)

(1)书写:函数名下一行,三引号内

(2)查看:help()函数

 

3、全局遍量和局部变量

(1)局部变量:只在函数体内部的变量,函数结束即销毁

(2)全局变量:函数体内外可用的变量

a = 100  # 全局变量
print(a)  # 输出全局变量a,100

def function1():
    print(a)  # 输出全局变量a,100
def function2():
    a = 200  # 局部变量,全局变量不变
    print(a)  # 输出局部变量a,200
def function3():
    global a # 声明全局表量
    a =200  # 修改全局变量
    print(a)  # 输出全局变量a,200

function1()
function2()
print(a)  # 输出全局变量a,100
function3()
print(a)  # 输出全局变量a,200

4、多个返回值

def return_num():
    return 1, 2   # 逗号隔开,默认返回元组返回
    # 另:return 后面可以直接书写元组,字典,列表

print(return_num())  # (1, 2)

5、函数的参数

位置参数

调用函数时根据函数定义的参数位置来传递参数

def user(name,age,gender):
    print(f'您得名字{name},年龄{age},性别{gender}')
user('tom',20,'男')

关键字参数

函数调用通过‘键=值’来加以制定,不分先后顺序

user('tom',gender='男',age=16)

p.s:函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

缺省参数

 用于定义函数,为参数提供默认值,调用函数时可不传该默认参数得值

def user(name,age,gender='男'):
print(f'您得名字{name},年龄{age},性别{gender}')
user('小米',20)     #gender不传参,默认为男
user('小米',66,gender='女')   #gender传参,修改默认值,改为女

(p.s: 所有参数必须出现在默认参数前)

不定长参数

定义函数时不确定传参个数使用

  • 位置传递:*args变量收集参数,根据传进参数的位置合并为一个元组

 

def user(*args):
    print(args)

user('小米',20)
user('小米')
  • 关键字传递:**kwargs变量收集参数,合并成字典
def user(**kwargs):
    print(kwargs)

user(name='小米',age=20, id=110)
user(name='小米',age=66,gender='女')

6、拆包

(1)元组:

def return_num():
    return 100,200
#元组拆包
num1,num2=return_num()
print(num1)  # 100
print(num2)  #  200

(2)字典

dict1 = {'name':'tom','age':18}
#字典拆包
a,b=dict1
#取键
print(a)  # name
print(b)  # age
#取值
print(dict1[a]) # tom
print(dict1[b])  # 18