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

科技分类资讯推荐

个人视频被搬运上热搜阅读过亿,“泼天的流量”令创作者害怕:不想被身边人看到 - 天天要闻

个人视频被搬运上热搜阅读过亿,“泼天的流量”令创作者害怕:不想被身边人看到

近日,短视频创作者“大福在成长”发布自己失业后生活的视频被搬运至其他平台,不仅上了热搜,话题量还破亿。“泼天的流量”却并未让她开心,因为自己本人并未授权,同时个人隐私还被“广而告之”,她私信要求对方删除却未被理睬。近日,创作者向扬子晚报/紫牛新闻记者讲述了自己艰难的维权过程。2024年11月份,博主“大福...
苹果推出 2025 彩虹系列Apple Watch表带 - 天天要闻

苹果推出 2025 彩虹系列Apple Watch表带

IT之家 5 月 5 日消息,苹果今日推出新款 Apple Watch 彩虹版运动型表带、表盘和 iPhone 与 iPad 墙纸。彩虹版运动型表带即日起接受订购,配套的动态表盘与墙纸近日将随软件更新发布。每一条彩虹版运动型表带都由手工装配而成,压模成型的鲜艳条纹构成形状大小不一的彩虹条状图案,呈现含蓄而又惊艳的多变效果。苹果称每一...
华生科技2024年财报亮眼,营收利润双增长,但研发项目延期引关注 - 天天要闻

华生科技2024年财报亮眼,营收利润双增长,但研发项目延期引关注

5月4日,华生科技发布2024年年报,公司实现营业收入3.52亿元,同比增长46.94%;归属净利润4942.30万元,同比增长77.91%。尽管业绩显著改善,但研发中心建设项目延期至2025年6月,引发市场对其执行力的质疑。一、业绩大幅回升,但仍未恢复至历史高点2024年,华生科技的营业收入和净利润均实现大幅增长,分别达到3.52亿元和4...
徐汇“北斗七星”如何驱动全球科创新篇章,打造全球AI创新的“超级节点” - 天天要闻

徐汇“北斗七星”如何驱动全球科创新篇章,打造全球AI创新的“超级节点”

人工智能作为国家战略级重点发展领域,正以惊人的加速度推动社会各行业转型升级。4月29日,习近平总书记在上海考察徐汇区“模速空间”大模型创新生态社区时指出,人工智能技术加速迭代,正迎来爆发式发展,上海要总结好以大模型产业生态体系孵化人工智能产业等成功经验,加大探索力度,力争在人工智能发展和治理各方面走在...
美国即将开征半导体关税:税率最高或达100%? - 天天要闻

美国即将开征半导体关税:税率最高或达100%?

5月5日消息,美国特朗普政府可能最快于本周公布针对半导体加征关税的细节,市场预估税率可能高达25%~100%,并且新规则不排除以晶圆制造地作为源产地来加征关税,这也将对台积电、三星等产能集中在亚洲地区的晶圆制造大厂,以及英伟达、苹果、高通、
手机电池突破8000mAh?厂商不敢说的真相:一年后续航崩塌 - 天天要闻

手机电池突破8000mAh?厂商不敢说的真相:一年后续航崩塌

如果你近期有关注手机市场,一定不难发现最近发布的这些新机都有一个共同点:电池容量一个比一个高,6000mAh已经完全不够看,7000mAh级别的手机一台接着一台,甚者已经做到了8000mAh,人均行走的“移动电源”。电池容量的增加对用户来说确实是好事,续航时间的增加意味着用户不用再随身携带一个移动电源。(图片来源:荣耀...
阿维塔全球研发中心启用,与华为联合共创进入新阶段 - 天天要闻

阿维塔全球研发中心启用,与华为联合共创进入新阶段

近日,阿维塔全球研发中心正式启用,可容纳超过1000人。接近阿维塔的知情人士透露,该办公大楼于2024年12月启动装修,其核心功能是承载阿维塔与华为联合共创团队的协同工作。此次全球研发中心的落成启用,预示着阿维塔与华为的联合共创将进入更大规