news 2026/9/3 3:25:39

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/9/2 20:40:54

三份“私人资料“让AI理解你的世界,回答质量提升80%

作者通过喂给AI三份个人资料&#xff08;月度消费清单、童书和聊天记录&#xff09;&#xff0c;使AI从提供泛泛而谈的回答转变为能够理解个人需求的专属助手。这三份资料分别代表行为数据、认知素材和交互记录&#xff0c;帮助AI从三个维度理解"提问者"。文章强调&a…

作者头像 李华
网站建设 2026/9/2 20:41:46

AI Agent记忆系统大揭秘:从“失忆“到“长记性“的进化之路(附代码实战)

本文详解AI Agent的记忆系统&#xff0c;分短期记忆与长期记忆两部分。短期记忆介绍3种优化策略(缩减法、卸载法、隔离法)及框架代码实现&#xff1b;长期记忆解析信息提取、向量存储、关系推理等技术&#xff0c;并提供Mem0/ReMe集成代码。展望记忆即服务、精细化管理、多模态…

作者头像 李华
网站建设 2026/9/2 21:38:39

MySQL--》如何在MySQL中打造高效优化索引

目录 初识索引 索引结构 性能分析 索引使用 最左前缀法则 SQL提示使用 覆盖索引使用 前缀索引使用 索引失效情况 初识索引 索引(index)&#xff1a;是帮助MySQL高效获取数据的数据结构(有序)&#xff0c;在数据之外数据库系统还维护着满足特定查找算法的数据结构&…

作者头像 李华
网站建设 2026/9/2 21:38:44

MySQL 的 INSERT(插入数据)详解

MySQL 的 INSERT&#xff08;插入数据&#xff09;详解 在 MySQL 中&#xff0c;INSERT 语句用于向数据库表中添加新的记录。INSERT 语句非常灵活&#xff0c;支持多种语法形式&#xff0c;可以根据具体需求选择合适的用法。以下是 INSERT 语句的详细语法和使用示例。 1. 插入单…

作者头像 李华
网站建设 2026/9/2 22:29:45

AI会取代前端吗?2026年前端发展路线图,建议收藏学习

AI无法完全取代前端开发&#xff0c;因缺乏人类的逻辑、沟通和创新能力。前端工作不仅是写代码&#xff0c;还包括与多团队协作。当前前端行业竞争激烈&#xff0c;要求不断提高&#xff0c;但仍有发展空间。前端工程师可考虑向管理、架构师或讲师方向发展&#xff0c;或继续深…

作者头像 李华