news 2026/4/15 18:16:28

Day30 函数专题1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day30 函数专题1

@浙大疏锦行

题目 1:计算圆的面积

任务:编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 = π * radius²(可以使用 math.pi 作为 π 的值)

要求:函数接收一个位置参数 radius。计算半径为 5、0、-1 时候的面积

注意点:可以采取 try-except 使函数变得更加稳健,如果传入的半径为负数,函数应该返回 0(或者可以考虑引发一个 ValueError,但为了简单起见,先返回 0)。

import math def calculate_circle_area(radius): try: # 处理半径为负数的情况 if radius < 0: return 0 # 计算圆的面积 area = math.pi * (radius ** 2) return area except TypeError: # 处理传入非数字类型的情况 return 0 # 测试半径为5、0、-1的情况 print("半径为5时的面积:", calculate_circle_area(5)) print("半径为0时的面积:", calculate_circle_area(0)) print("半径为-1时的面积:", calculate_circle_area(-1))

题目 2:计算矩形的面积

任务:编写一个名为 calculate_rectangle_area 的函数,该函数接收矩形的长度 length 和宽度 width 作为参数,并返回矩形的面积。

公式:矩形面积 = length * width

要求:

函数接收两个位置参数 length 和 width。

函数返回计算得到的面积。

如果长度或宽度为负数,函数应该返回 0。

def calculate_rectangle_area(length, width): # 判断长度或宽度是否为负数,是则返回0 if length < 0 or width < 0: return 0 # 计算并返回矩形面积 return length * width # 测试示例 print("长度3、宽度4的面积:", calculate_rectangle_area(3, 4)) # 预期12 print("长度-2、宽度5的面积:", calculate_rectangle_area(-2, 5)) # 预期0 print("长度0、宽度3的面积:", calculate_rectangle_area(0, 3)) # 预期0
题目 3:计算任意数量数字的平均值

任务:编写一个名为 calculate_average 的函数,该函数可以接收任意数量的数字作为参数(引入可变位置参数 *args),并返回它们的平均值。

要求:

使用 *args 来接收所有传入的数字。

如果没有任何数字传入,函数应该返回 0。

函数返回计算得到的平均值。

def calculate_average(*args): # 判断是否有传入数字 if not args: return 0 # 计算总和与平均值 total = sum(args) average = total / len(args) return average # 测试示例 print("传入1、2、3的平均值:", calculate_average(1, 2, 3)) # 预期2.0 print("无参数传入的结果:", calculate_average()) # 预期0 print("传入5、5、5的平均值:", calculate_average(5, 5, 5)) # 预期5.0
题目 4:打印用户信息

任务:编写一个名为 print_user_info 的函数,该函数接收一个必需的参数 user_id,以及任意数量的额外用户信息(作为关键字参数)。

要求:

user_id 是一个必需的位置参数。

使用 **kwargs 来接收额外的用户信息。

函数打印出用户 ID,然后逐行打印所有提供的额外信息(键和值)。

函数不需要返回值。

def print_user_info(user_id, **kwargs): # 打印用户ID print(f"用户ID: {user_id}") # 逐行打印额外信息 for key, value in kwargs.items(): print(f"{key}: {value}") # 测试示例 print_user_info(123, name="张三", age=25, gender="男") print("---") print_user_info(456, username="lisi", email="lisi@example.com")
题目 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 describe_shape(shape_name, color="black", **kwargs): # 处理尺寸部分的字符串拼接 if kwargs: # 将kwargs的键值对格式化为“key=value”的形式,用逗号分隔 dims_str = ", ".join([f"{key}={value}" for key, value in kwargs.items()]) description = f"A {color} {shape_name} with dimensions: {dims_str}" else: description = f"A {color} {shape_name} with no specific dimensions." return description # 测试示例 print(describe_shape("circle", color="red", radius=5)) print(describe_shape("rectangle", length=10, width=4)) print(describe_shape("square")) print(describe_shape("triangle", color="blue", base=8, height=6))
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 21:45:14

程序员必学!多智能体协同客服系统:大模型应用实战指南

文章介绍了一个AI智能体客服平台&#xff0c;核心是多智能体协同作战而非传统单打独斗的聊天机器人。平台支持多渠道接入、智能体编排、知识库管理(RAG)、人工坐席协作等功能&#xff0c;采用微服务架构。优势包括多智能体协作提升响应能力、知识库增强专业性、全渠道接入实现无…

作者头像 李华
网站建设 2026/4/11 1:33:49

量化交易脚本开发:DeepSeek生成技术指标计算与信号触发代码

量化交易的核心在于将交易规则和策略转化为计算机可执行的代码。其中&#xff0c;技术指标的计算和基于这些指标生成交易信号是策略实现的基础环节。本文将深入探讨如何从零开始开发量化交易脚本&#xff0c;重点聚焦于常见技术指标的计算逻辑以及如何基于这些指标设计并实现信…

作者头像 李华
网站建设 2026/4/15 17:59:36

一部手机不够玩?鸿蒙如何把多设备变成一个游戏系统(实战解析)

摘要 这两年&#xff0c;跨屏协作在鸿蒙生态里出现得越来越频繁。 从最早的文件互传、多屏办公&#xff0c;到现在的教育课堂、车机联动&#xff0c;设备之间已经不再是“各干各的”。 在游戏领域&#xff0c;这个变化更明显&#xff1a; 一块屏幕已经不够玩玩家希望多设备一起…

作者头像 李华
网站建设 2026/4/15 13:41:49

MySQL 数据库连接池爆满问题排查与解决

目录 MySQL 数据库连接池爆满问题排查与解决 一、问题影响 二、问题确认 三、收集信息 四、SQL 语句分析 五、应用层代码分析 六、连接池配置检查 七、监控工具使用 八、案例分析 在实际的应用开发中&#xff0c;我们可能会遇到 MySQL 数据库连接池爆满的情况。这种情…

作者头像 李华
网站建设 2026/3/31 6:39:30

MySQL 数据增删改查

一、插入数据 1.1 insert插入数据 &#xff08;1&#xff09;insert语法格式 INSERT [INTO] 表名 [字段名] VALUES (值列表);&#xff08;2&#xff09;示例 ① 向学生表中插入一行数据② 向学生表中插入多行数据二、更新数据 2.1 update更新数据 &#xff08;1&#xff09;…

作者头像 李华