python一个函数调用另外一个函数 (python调用函数传递给函数的信息)

Python函数的定义和调用

  • 函数定义使用def关键字,例如:def my_function():
  • 函数调用使用函数名加括号,例如:my_function()

1.Python函数的形参有以下五种类型和使用规则及应用:

  • 位置参数:按照定义顺序依次传入参数,数量和顺序必须一致。例如
def greet(name, age):
    print(f"Hello {name}, you are {age} years old.")

greet("Alice", 30)
  • 默认参数:在函数定义时给参数指定默认值,调用时可以不传入该参数,使用默认值。例如:
def greet(name, age=20):
    print(f"Hello {name}, you are {age} years old.")

greet("Alice")  # 输出:Hello Alice, you are 20 years old.
  • 可变长位置参数:使用*号前缀,可以接受任意数量的位置参数,以元组形式传递。例如:
def sum_numbers(*numbers):
    total = 0
    for num in numbers:
        total += num
    return total

print(sum_numbers(1, 2, 3))  # 输出:6
  • 可变长关键字参数:使用**号前缀,可以接受任意数量的关键字参数,以字典形式传递。例如:
def print_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

print_info(name="Alice", age=30)  # 输出:name: Alice  age: 30
  • 强制关键字参数:使用*号作为分隔符,后面的参数必须使用关键字传入。例如:
def print_info(name, *, age):
    print(f"Name: {name}  Age: {age}")

print_info("Alice", age=30)  # 输出:Name: Alice  Age: 30

2. Python函数返回值使用return语句,可以返回任意类型的值

def add_numbers(a, b):
    return a + b

result = add_numbers(3, 4)
print(result)  # 输出:7

3.Python中可以定义嵌套函数,在函数内部定义的函数称为内部函数。

内部函数可以访问外部函数的变量,但是外部函数不能访问内部函数的变量。例如:

def outer_function():
    x = 10

    def inner_function():
        nonlocal x
        x += 5
        print(f"Inner function: {x}")

    inner_function()
    print(f"Outer function: {x}")

outer_function()

输出:

Inner function: 15
Outer function: 15

4.使用global语句可以在函数内部访问并修改全局作用域中的变量。

例如:

x = 10
def my_function():    global x    x += 5    print(x)
my_function()  # 输出:15

5.使用nonlocal语句可以在内部函数中访问并修改外部函数的变量。

例如:

def outer_function():
    x = 10

    def inner_function():
        nonlocal x
        x += 5
        print(x)

    inner_function()

outer_function()  # 输出:15

6.函数的调用原理是将函数体内的代码从上到下依次执行,遇到函数调用时会跳转到函数定义的位置执行函数体内的代码,并在执行完毕后返回到调用位置继续执行后续代码。

例如:

def greet():
    print("Hello!")

print("Before function call.")
greet()
print("After function call.")

输出:

Before function call.
Hello!
After function call.

7.函数实参的两种传参方式:

  • 位置参数传递:按照形参的位置依次传入实参,数量和顺序必须一致。例如:
def greet(name, age):
    print(f"Hello {name}, you are {age} years old.")

greet("Alice", 30)

关键字参数传递:通过指定形参的名称传入实参,可以不按照顺序传入。例如

def greet(name, age):
    print(f"Hello {name}, you are {age} years old.")

greet(age=30, name="Alice")

8.Python函数的作用域分为全局作用域和局部作用域。全局作用域指的是在函数外部定义的变量,可以在整个代码中访问。局部作用域指的是在函数内部定义的变量,只能在函数内部访问。

例如:

x = 10  # 全局变量

def my_function():
    y = 5  # 局部变量
    print(x)  # 在函数内部可以访问全局变量
    print(y)

my_function()
print(x)  # 在函数外部也可以访问全局变量