2026/3/28 0:33:54
网站建设
项目流程
网站建设交付物清单,WordPress随机句子,vps网站目录权限设置,湛江网站建设皆选小罗24专业前言#xff1a;今天主要是完成了关于函数定义与参数的5个题目从中都有不一样的收获#xff01;
一、题目1#xff1a;计算圆的面积
1. 任务:编写一个名为calculate_circle_area的函数#xff0c;该函数接收圆的半径radius作为参数#xff0c;并返回圆的面积。圆的面积Π…前言今天主要是完成了关于函数定义与参数的5个题目从中都有不一样的收获一、题目1计算圆的面积1. 任务:编写一个名为calculate_circle_area的函数该函数接收圆的半径radius作为参数并返回圆的面积。圆的面积Π*radius^2(可以使用math.pi作为Π的值)2. 要求:函数接收一个位置参数radius。计算半径为5、0、-1时候的面积3. 注意点:可以采取try-except使函数变得更加稳健如果传入的半径为负数函数应该返回0(或者可以考虑引发一个ValueError)。代码import math def cal_circle_area(r): try: if r 0 : return 0 else: area math.pi*(r**2) return area except TypeError: print(fValueError) #测试 test_r [5,0,-1] print(计算不同半径圆的面积) print(- * 30) for r in test_r: area cal_circle_area(r) print(f半径 {r}面积 {area}) test_e a area_e cal_circle_area(test_e)运行结果思考书写思路1. 先引入所需要的库2. 再定义函数并给定相关参数3. 在函数中采用try except TypeError结构 在try中进行数值类型判断并实现功能在except TypeError结构中给出错误情况转入的方向避免程序卡死数据丢失4. 定义相关变量对函数进行调用二、题目2计算矩形的面积1. 任务:编写一个名为calculate_rectangle_area的函数该函数接收矩形的度length和宽度width作为参数并返回矩形的面积。2. 公式:矩形面积length*width3. 要求:函数接收两个位置参数length和width。1函数返回计算得到的面积。2如果长度或宽度为负数函数应该返回0。代码def calculate_rectangle_area(length,width): try: if length 0 or width 0: return 0 else: area length * width return area except TypeError: print(fValueError) test_case [(3,2), (3,0), (0,3), (0,0), (-1,5), (1.5,2) ] print(计算不同长宽矩形的面积) print(- * 30) for length , width in test_case: area calculate_rectangle_area(length,width) print(f长度 {length}, 宽度 {width}, 面积 {area})运行结果思考此题目与题目一最大的区别在于此题目的参数要传两个故我们采用元组列表list of tuples来对相关测试变量进行存贮。三、 题目3:计算任意数量数字的平均值1. 任务:编写一个名为calculate_average的函数,该函数可以接收任意数量的数字作为参数(引入可变位置参数(*args))并返回它们的平均值。2. 要求:使用*args来接收所有传入的数字。(1)、如果没有任何数字传入函数应该返回0。(2)、函数返回计算得到的平均值。代码def calculate_average(*args): 计算任意数量数字的平均值 参数: *args: 可变数量的数值参数 返回: 所有数字的平均值。如果没有传入任何数字返回0 # 检查是否传入了数字 if len(args) 0: return 0 try: # 计算总和 total sum(args) # 计算平均值 average total / len(args) return average except (TypeError, ZeroDivisionError): # 处理可能的异常虽然len(args)!0时不会除零 return 0 # 测试函数 print(测试计算平均值函数) print(- * 30) # 测试用例 test_cases [ (1, 2, 3, 4, 5), # 多个整数 (10, 20, 30), # 三个数 (3.5, 4.5, 5.5), # 小数 (7,), # 只有一个数 (), # 没有参数 (0, 0, 0, 0), # 全是0 (-1, 0, 1), # 包含负数 (2.2, 3.3, 4.4, 5.5) # 多个小数 ] # 2. enumerate(test_cases, 1)的作用 # enumerate()函数会同时返回索引和元素值。 # enumerate(test_cases, 1) 相当于 # 1, (1, 2, 3, 4, 5) # 2, (10, 20, 30) # 3, (3.5, 4.5, 5.5) # 4, (7,) # 5, () # 6, (-1, 0, 1) for i, numbers in enumerate(test_cases, 1): result calculate_average(*numbers) if len(numbers) 0: print(f测试{i}: 无参数传入, 平均值 {result}) else: print(f测试{i}: 数字 {numbers}, 平均值 {result:.4f})运行结果思考此函数的参数使用*args可接收任意数量的参数四、题目4 打印用户信息1. 任务:编写一个名为print_user_info的函数该函数接收一个必需的参数user_id以及任意数量的额外用户信息(作为关键字参数)。2. 要求:(1)user_id是一个必需的位置参数。(2)使用**kwargs来接收额外的用户信息。(3)函数打印出用户ID然后逐行打印所有提供的额外信息(键和值)。(4)函数不需要返回值代码# **kwargs可变关键字参数接收任意数量的键值对 # 在函数内部kwargs是一个字典 可以像操作字典一样访问kwargs.items(), kwargs.keys(), kwargs.values() def print_user_info(user_id, **kwargs): 打印用户信息 参数: user_id: 必需的用户ID位置参数 **kwargs: 任意数量的关键字参数包含额外用户信息 # 打印用户ID print(f用户ID: {user_id}) # 打印额外信息如果有的话 if kwargs: print(额外信息:) # 逐行打印所有关键字参数 for key, value in kwargs.items(): print(f {key}: {value}) else: print(无额外信息) # 函数不需要返回值所以不写return语句或只写return # 测试函数 print( 测试1: 只有用户ID ) print_user_info(A001) print(\n 测试2: 有额外信息 ) print_user_info(B002, name张三, age25, city北京) print(\n 测试3: 多个额外信息 ) print_user_info(C003, name李四, age30, emaillisiexample.com, department技术部, phone13800138000)运行结果思考**kwargs的特点1、接收任意数量的关键字参数2、在函数内部kwargs是一个字典3、可以像操作字典一样访问kwargs.items(), kwargs.keys(), kwargs.values()五、题目五格式化几何图形描述1. 任务:编写一个名为describe_shape的函数该函数接收图形的名称shape_name(必需)一个可选的color(默认black)以及任意数量的描述该图形尺寸的关键字参数(例如radius5对于圆length10,width4对于矩形.2. 要求:shape_name是必需的位置参数。1ocolor是一个可选参数默认值为black。2使用**kwargs收集描述尺寸的参数。3函数返回一个描述字符串def describe_shape(shape_name, colorblack, **kwargs): 格式化几何图形描述 参数: shape_name: 必需的位置参数图形名称 color: 可选参数颜色默认为black **kwargs: 描述图形尺寸的关键字参数 返回: 描述字符串 # 基础描述部分 description fA {color} {shape_name} # 尺寸描述部分 if kwargs: # 如果有尺寸参数 dimensions [] for key, value in kwargs.items(): dimensions.append(f{key}{value}) dimensions_str , .join(dimensions) description f with dimensions: {dimensions_str}. else: # 如果没有尺寸参数 description with no specific dimensions. return description # 测试函数 print( 测试 describe_shape 函数 ) print(- * 40) # 测试1: 有尺寸参数的圆 circle_desc1 describe_shape(circle, colorred, radius5) print(f测试1: {circle_desc1}) # 测试2: 有多个尺寸参数的矩形 rectangle_desc describe_shape(rectangle, colorblue, length10, width4, height2) print(f测试2: {rectangle_desc}) # 测试3: 使用默认颜色 triangle_desc describe_shape(triangle, side13, side24, side35) print(f测试3: {triangle_desc}) # 测试4: 没有尺寸参数 square_desc describe_shape(square, colorgreen) print(f测试4: {square_desc}) # 测试5: 多个参数组合 pentagon_desc describe_shape(pentagon, yellow, side7, apothem4.8) print(f测试5: {pentagon_desc}) # 测试6: 只有必需参数 shape_desc describe_shape(hexagon) print(f测试6: {shape_desc})运行结果浙大疏锦行