打卡第27天:函数的定义与参数

发布于:2025-05-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

知识点回顾:

1.函数的定义

2.变量作用域:局部变量和全局变量

3.函数的参数类型:位置参数、默认参数、不定参数

4.传递参数的手段:关键词参数

5.传递参数的顺序:同时出现三种参数类型时

作业: 题目1:计算圆的面积 ●任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 = π * radius² (可以使用 math.pi 作为 π 的值) ●要求:函数接收一个位置参数 radius。计算半径为5、0、-1时候的面积 ●注意点:可以采取try-except 使函数变得更加稳健,如果传入的半径为负数,函数应该返回 0 (或者可以考虑引发一个ValueError,但为了简单起见,先返回0)。

import math
def calculate_circle_area(radius):
    """计算圆的面积
    Args:
        radius(float or int):圆的半径
    Returns:
            float:圆的面积
    """ 
    if radius < 0:
        print("错误,半径不能为负值")
        return 0. # 终止函数并返回一个浮点数0.0作为面积
    try:
        area = math.pi * radius ** 2
    except ValueError:
        print("错误,输入的半径不是一个有效的数据类型")
        return 0.
    else:
        print(f"圆的面积是:{area}")
        return area
radius = (5, 0, -1)
for r in radius:
    calculate_circle_area(r)

题目2:计算矩形的面积 ●任务: 编写一个名为 calculate_rectangle_area 的函数,该函数接收矩形的长度 length 和宽度 width 作为参数,并返回矩形的面积。 ●公式: 矩形面积 = length * width ●要求:函数接收两个位置参数 length 和 width。 ○函数返回计算得到的面积。 ○如果长度或宽度为负数,函数应该返回 0。

import math
def calculate_rectangle_area(length, width):
    """计算矩形的面积
    Args:
        length(float or int):矩形的长度
        width(float or int):矩形的宽度
    Returns:
            (float or int):矩形的面积
    """
    if length <= 0 or width <= 0:
       print("输入的长度或宽度不能小于或等于0") 
       return 0
    area = length * width
    print(f"矩形的面积为:{area}")
    return area

题目3:计算任意数量数字的平均值 ●任务: 编写一个名为 calculate_average 的函数,该函数可以接收任意数量的数字作为参数(引入可变位置参数 (*args)),并返回它们的平均值。 ●要求:使用 *args 来接收所有传入的数字。 ○如果没有任何数字传入,函数应该返回 0。 ○函数返回计算得到的平均值。

import math
def calculate_average(*args):
    """计算任意数量参数的平均值。"""
    try:
        total = sum(args)
        average = total / len(args)
    except ValueError:
        print("至少输入一个数字")
        return 0
    else:
        print(f"平均值为: {average}")
        return average
args = [1, 2, 3, 4, 5]
calculate_average(*args) 

题目4:打印用户信息 ●任务: 编写一个名为 print_user_info 的函数,该函数接收一个必需的参数 user_id,以及任意数量的额外用户信息(作为关键字参数)。 ●要求: ○user_id 是一个必需的位置参数。 ○使用 **kwargs 来接收额外的用户信息。 ○函数打印出用户ID,然后逐行打印所有提供的额外信息(键和值)。 ○函数不需要返回值

import math
def print_user_info(user_id, **kwarga):
    print(f"用户ID: {user_id}")
    for key, value in kwarga.items():
        print(f"{key}: {value}")
print_user_info(1, name="Alice", age=30, city="New York")

题目5:格式化几何图形描述 ●任务: 编写一个名为 describe_shape 的函数,该函数接收图形的名称 shape_name (必需),一个可选的 color (默认 “black”),以及任意数量的描述该图形尺寸的关键字参数 (例如 radius=5 对于圆,length=10, width=4 对于矩形)。 ●要求:shape_name 是必需的位置参数。 ○color 是一个可选参数,默认值为 “black”。 ○使用 **kwargs 收集描述尺寸的参数。 ○函数返回一个描述字符串,格式如下: ○“A [color] [shape_name] with dimensions: [dim1_name]=[dim1_value], [dim2_name]=[dim2_value], …”如果 **kwargs 为空,则尺寸部分为 “with no specific dimensions.”

def decribe_shape(shape_name, color = "black", **kwargs):
    """描述一个几何图形的形状和颜色
    color: 颜色,默认为黑色
    **kwargs: 其他属性,如线条宽度、填充等
    """
    print(f"形状: {shape_name}")
    print(f"颜色: {color}")
    for key, value in kwargs.items():
        print(f"{key}: {value}")
    if kwargs:
        kwargs_str =",".join([f"{key}={value}" for key, value in kwargs.items()])
        return f"{shape_name}, {color}, {kwargs_str}"
    else:
        return(f"{shape_name}, {color}, with no specific dimensions")
    
print(decribe_shape("圆", color="red", radius=5))

@浙大疏锦行


网站公告

今日签到

点亮在社区的每一天
去签到