3分钟掌握 Python 中的函数

2024年12月14日14:02:06 科技 1437

3分钟掌握 Python 中的函数 - 天天要闻

Python 中的函数

1. 功能介绍

Python 中的函数是执行特定任务或一组任务的代码块。函数接受输入参数、执行操作并返回结果。它们使用关键字定义,后跟函数名称和一对括号。def

def greet(name):
  """This function greets the person passes in a parameter"""
  print(f"Hello, {name}!")

#Calling the function
greet("Alice")


2. 函数参数和返回值

函数可以采用多个参数,也可以返回值。参数是调用函数时将传递给函数的值的占位符。

def add(a, b):
  """This function adds two numbers."""
  return a + b

result = add(3, 5)
print(result)  #Output: 8

在这里,该函数采用两个参数和 ,并返回它们的总和。然后打印结果。addab

函数的基本概念

1. 默认参数

在 Python 中,您可以为参数分配默认值,在调用函数时使其成为可选值。

def power(base, exponent=2)
  """This function calculates the power of a number with a default exponent of 2."""
  return base ** exponent

result1 = power(2)    #Equivalent to power(2, 2)
result2 = power(2, 3)

print(result1)    #Output: 4
print(result2)    #Output: 8

在此示例中,该函数的参数默认值为 。当仅使用参数调用函数时,将使用默认值。power2exponentbase

2. 可变长度参数列表

Python 允许您使用 和 定义可以接受可变数量参数的函数。*args**kwargs

def sum_all(*args):
  """This function calculates the sum of all passed arguments."""
  return sum(args)

result = sum_all(1, 2, 3, 4, 5, 6)
print(result)    #Output: 15

在此示例中,该函数用于接受任意数量的位置参数并计算它们的总和。sum_all*args

3. Lambda 函数(匿名函数

Lambda 函数是使用 关键字定义的小型匿名函数。lambda

multiply = lambda x, y: x * y
result = multiply(3, 4)
print(result)    #Output: 12

lambda 函数采用两个参数并返回它们的乘积。Lambda 函数通常用于短期操作。muliply

函数的实际应用

1. 代码可重用性

函数的主要优点之一是代码的可重用性。通过将一段功能封装到一个函数中,可以轻松地在整个程序中重用它。

def calculate_area(radius):
  """This function calculates the area of circle."""
  return 3.14 * radius**2

# Calculating the area for two circles
area1 = calculate_area(5)
area2 = calculate_area(8)

print(area1)    #Output: 78.5
print(area2)    #Output: 200.96

在此示例中,该函数允许在不复制代码的情况下计算具有不同半径的圆的面积。

2. 抽象和模块化

函数提供了一种抽象复杂操作和增强模块化的方法。将程序分解为更小、更易于管理的功能可使代码库更易于维护。

def process_data(data):
  """This function processess a list of numbers."""
  result = []
  for number in data:
    processed_number = number * 2 + 5
    result.append(processed_number)
  return result

#Using the function
input_data = [1, 2, 3, 4, 5, 6]
ouput_data = process_data(input_data)

print(output_data)    #Output: [7, 9, 11, 13, 15]

在这里,该函数封装了处理数字列表的逻辑,使代码更加模块化且更易于理解。

3. 使用函数进行错误处理

函数可以通过封装可能在块中引发异常的代码来帮助您进行错误处理。try-except

def divide(a, b):
  """This function divides two number and handels division by zero."""
  try:
      result = a / b
      return result
  except ZeroDivisionError:
      print("Error: Cannot divide by zero.")
      return None

#Using th function
result1 = divide(10, 2)
result2 = divide(5, 0)

print(result1)    #Output: 5.0
print(result2)    #Output: None (with an error message)

在此示例中,该函数处理除以零的可能性,从而防止程序崩溃。

编写函数的方法

1. 函数命名

为函数选择有意义且具有描述性的名称。精心选择的名称应传达函数的目的。

# Less descripctive function name
def func1(x, y):
    return x + y

# More descriptive function name
def add_numbers(x, y):
    return x + y

为清楚起见,首选第二个示例,其名称更具描述性。

2. 单一责任原则

遵循单一责任原则,该原则指出一个函数应该有一个明确的功能。如果一个函数执行多个获取,请将其分解为更小的函数。

# Function violating the SIngle Responsibility Principle
def process_data_and_print_results(data):
    """This function processess data and prints the results."""
    processed_data = process_data(data)
    print_results(processed_data)

#Better approach: Separate responsibility
def process_data(data):
    """This function processes data."""
    result = []
    for number in data:
        processed_number = number * 2 + 5
        result.append(processed_number)
    return result

def print_results(data):
    """This function prints the results."""
    for result in data:
        print(result)

将责任分解为单独的功能可增强代码的可读性和可维护性。

3. 文档和注释

提供文档和注释,以解释函数的用途、预期的参数和返回值。

def calculate_area(radius):
    """
    This function calculates the area of a circle.

    Parameters:
    - radius (float): The radius of the circle.

    Returns:
    float: The area of the circle.
    """

    return 3.14 * radius**2

科技分类资讯推荐

获巨额云计算合同!甲骨文股价创新高 - 天天要闻

获巨额云计算合同!甲骨文股价创新高

智通财经APP获悉,甲骨文(ORCL.US)表示,该公司已签署一项年收入高达300亿美元的单一云计算服务合同,这一金额已超过其当前整个云基础设施业务的规模。受该消息推动,甲骨文股价周一早盘一度上涨8.6%,创下盘中历史新高,收盘涨近4%。今年以来,甲骨文股价已累计上涨约32%。甲骨文在周一提交的一份监管文件中披露,这笔收入...
中金:运营商配合意愿亟待提升 eSIM热度有望重启 - 天天要闻

中金:运营商配合意愿亟待提升 eSIM热度有望重启

智通财经APP获悉,中金发布研报称,根据GSMA Intelligence预测,至2025年底,全球预计将有约10亿eSIM智能手机连接,2030年将增长至69亿,随着消费电子轻薄化、可穿戴设备以及物联网终端漫游需求增加,eSIM的应用有望在2025年加速。但eSIM的应用落地仍面临运营商配合意愿度不高的阻力,支持终端数量有限。eSIM卡具备小尺寸、...
网易腾讯发布暑期限玩日历:未成年人每周限玩3小时 - 天天要闻

网易腾讯发布暑期限玩日历:未成年人每周限玩3小时

随着暑期来临,未成年人网络使用需求显著上升。为防止未成年人沉迷游戏,6月30日,网易游戏、腾讯游戏分别发布了2025年暑期未成年人限玩日历(7月1日-8月31日),两家企业均采取严格时段限制措施,规则基本一致。
“闪灯即推+边推边开”!太原机场开启高效运行新模式 - 天天要闻

“闪灯即推+边推边开”!太原机场开启高效运行新模式

近日,东航MU5273航班在T2站坪顺利完成“闪灯即推+边推边开”新流程操作,这标志着航空器地面高效运行新模式在太原国际机场有限责任公司正式投入应用。资料图 据介绍,太原机场公司二跑道预计在2025年底正式投运。经模拟机测算,航空器地面滑行距离、滑行时间将显著增加。不仅直接冲击航班正常性,也将极大影响机场整体运行...
特斯拉官宣Model 3长续航全轮驱动版28.55万起售 - 天天要闻

特斯拉官宣Model 3长续航全轮驱动版28.55万起售

7月1日,特斯拉官方微博宣布Model 3长续航全轮驱动版车型升级,CLTC续航升至753公里,百公里加速升至3.8秒,售价28.55万元起。特斯拉表示,7月31日(含)前下单,还可享8000元限时保险补贴、5年0息、8000元车漆选装金等购车优惠政策。...
央视新闻报道:全国加能站充电桩配置率达45% - 天天要闻

央视新闻报道:全国加能站充电桩配置率达45%

报名 | 扫描上图二维码,锁定超级沙龙重庆站席位 产品 | 扫描上方二维码提交需求 可高效对接 本文来源 | 中国石油石化6月28日,2025能源产业生态论坛在北京召开。论坛上发布了《中国加油(能)站发展蓝皮书2024-2025》,数据显示,当前,传统加油站正从单一能源供给,向综合服务生态深度转型。《蓝皮书》显示,截至2024年底...
韦东奕,民族的脊梁,崇尚他,国家民族更有前途和希望 - 天天要闻

韦东奕,民族的脊梁,崇尚他,国家民族更有前途和希望

最近,北大韦神韦东奕又“霸屏”了。这位北京大学助理教授、数学科学学院微分方程教研室研究员,因开通个人网络账号,两天涨粉两千万。这是什么概念?一般头部网络主播,即便有团队共同打造账号,要涨粉两千万,没有几年时间也难以达成。这说明什么?
厉害!荣耀400系列三周激活量超70万台 - 天天要闻

厉害!荣耀400系列三周激活量超70万台

上周行业消息显示荣耀400系列全球激活量已经突破100万台,还引起了行业的热议。大家都在讲这一次荣耀400系列的销量确实牛,市场认可度确实高。不过当时给出的是全球数据,并不知道国内与海外的占比。