2023.12.21 python 函数

2023-12-22 00:01:15

目录

1.无参函数

2.有参函数

2.1 有返回值函数

3.函数嵌套调用

4.局部与全局变量

5.不定长参数



因为python是解释型语言,所以函数必须先定义后调用

1.无参函数

# 定义无参函数
def say_hello():
    '''
    该函数的作用是打招呼
    :return:
    '''
    print('hello')
    print('您好')
    print('Bonjour')

# 调用
say_hello()

2.有参函数


# 定义有参求和参数
# 定义函数的时候,参数叫做形参,形式参数
# 限定传入的参数为int类型
def my_sum(x: int, y: int):
    result = x + y
    print(result)


# 调用参数
# 调用参数的时候,参数叫做实参,实际参数
# 传递实际参数的时候,对类型没有限制,但实际运行需要看函数处理逻辑
my_sum(1, 10)

2.1 有返回值函数

# 返回值  ,可以将结果做后续操作
def my_sum1(x: int, y: int):
    '''
    :param x:
    :param y:
    :return:
    '''
    result = x + y

    return result

sum1 = my_sum1(50,40)
print(sum1*2)
# 180

3.函数嵌套调用

# 函数嵌套调用
# 计算三个数的平均值并返回
def func_1(num1, num2, num3):
    return num1 + num2 + num3


def func_2(num1, num2, num3):

    # 先求和
    sum1 = func_1(num1, num2, num3)
    # 再求平均值
    return sum1 / 3


avg_num = (func_2(10, 20, 30))
print(f'平均值为{avg_num}')

4.局部与全局变量

num = 10 # 声明全局变量

# 全局变量
def func1():
    print('func1:', num) # 访问全局变量num
func1()

def func2():
    # 这里相当于在函数内部定义了一个局部变量,也叫num,它的值为:10,它和全局变量没有关系
    num = 20 # 声明局部变量
    print('func2:', num) # 使用局部变量
func2()

def func3():
    # 需求:在 func3 函数调用时,修改全局变量 num,把它的值改为:10
    # global一个关键字,这个关键字的作用是告诉 python 解释器,接下来使用的 num 是全局变量的 num
    # 下面这句代码叫
    global num # 声明 全局变量
    # 因为是全局变量,当func3函数被调用时,执行到这里时,全局的num都会修改
    num = 30 # 修改 num的值
    print('func3:此时刚刚修改了全局变量num的值')
    print('func3:', num)
func3()

print(num)
func1()
func2() 

5.不定长参数

# 元组不定长参数,用1个 * 来声明,传入时是个元组
def func4(*args):
    print(type(args), args)
    return 111
ret = func4(1,3,5)

# 字典不定长参数,用2个 ** 来声明,传入时是个字典
def func5(**kwargs):
    print(type(kwargs), kwargs)
func5(
    name='彦祖',
    age=18,
    gender='男'
)

# 函数不同形式的参数有顺序要求:普通参数,元组不定长参数,缺省参数,字典不定长参数
def func6(my_int, *args, name='德华', **kwargs):
    print(my_int)
    print(args)
    print(name)
    print(kwargs)
func6(1, 2, 3, 4, name='柏芝', age=16, gender='女')

文章来源:https://blog.csdn.net/m0_49956154/article/details/135136966
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。