Python 编程基础 | 第四章-函数 | 4.1、函数定义


前言:

在Python中,函数是一种可重用的代码块,它用于执行特定的任务。函数可以接受输入(称为参数)并返回输出(称为返回值)。通过使用函数,我们可以将复杂的程序分解成更小、更易于管理的部分,从而提高代码的可读性、可维护性和复用性。下面将详细介绍Python中函数的基本概念、定义、调用、参数传递

一、函数

1、函数定义

在Python中,使用def关键字来定义一个函数。def后面紧跟函数名和圆括号(),圆括号中可以包含函数的参数。函数的第一行通常是文档字符串(docstring),用于描述函数的功能和用法。函数体则包含执行特定任务的代码块,这些代码块通过缩进与def语句区分开来。

def 函数名(参数):
	"""  
    函数功能描述
  
    参数:  
    name -- 用户的名字  
  
    无返回值  
    """  
    # 函数体

下面定义一个简单的函数,例如:

def display(param1, param2):
    print('参数1:' + param1)
    print('参数2:' + param2)

display("hello", "world")

2、参数传递

Python中的函数参数传递主要有两种方式:按值传递按引用传递(在Python中更准确地说是按对象传递)。

  • 按值传递:对于不可变类型(如整数、浮点数、字符串和元组),函数内部对参数的修改不会影响外部的值。
  • 按对象传递:对于可变类型(如列表、字典和集合),函数内部对参数的修改会影响外部的值,因为传递的是对象的引用。

函数定义中可能包含多个形参,因此、函数调用也需要传递多个实参。向函数传递实参的方式有很多种,可以使用位置实参,这要求实参的顺序与形参的顺序相同。也可以使用关键字实参,其中每个实参都由变量名和值组成。

注意python中一切都是对象,严格意义不能说值传递还是引用传递,应该说传不可变对象和传可变对象。

2.1、位置实参

函数调用时,必须将函数调用中每个实参都关联到函数定义中的一个形参。最简单的关联方式是基于实参的顺序,这种关联方式称为位置实参,例如:

def display(param1, param2):
    print('参数1:' + param1)
    print('参数2:' + param2)

display("hello", "world")
display("world", "hello")

上面两个函数调用,因为传参的顺序不同,有不同的输出结果

2.2、关键字实参

关键字实参是传递给函数的名称对,例如:

def display(param1, param2):
    print(param1 + " " + param2)

display(param1="hello", param2="world")  # 输出结果:hello world
display(param2="world", param1="hello")  # 输出结果:hello world

注意:使用关键字实参时,务必准确指定函数定义中的形参名

2.3、默认参数

函数定义时,可以为参数指定默认值。调用函数时,如果没有为这些参数提供值,则使用默认值。如下:

def greet(name, greeting='Hello'):  
    print(f"{greeting}, {name}!")  
  
greet('Alice')  # 输出: Hello, Alice!  
greet('Bob', 'Hi')  # 输出: Hi, Bob!

注意:使用默认值时,必须先在形参列表中列出没有默认值的形参,再列出有默认值的形参

3、返回值

函数可以使用return语句返回一个值给调用者。如果函数没有return语句,或者return后面没有跟值,则函数默认返回None。下面定义一个函数,返回值是字典,例如:

def build_person(first_name, last_name):
    person = {"first":first_name, "last":last_name}
    return person

musician = build_person("jimi", "hendirx")
print(musician)  # 输出结果:{'first': 'jimi', 'last': 'hendirx'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值