Python打卡第30天

@浙大疏锦行

上期函数作业:

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | def calculate_circle_area(radius): ``""" ``该函数接收圆的半径radius作为参数,并返回圆的面积。 ``圆的面积公式为:面积 = π * 半径^2 ``""" ``import math ``print``(f``"\n尝试计算"``) ``try``: ``area ``= math.pi ``* (radius ``*``* 2``) ``except TypeError: ``print``(``"输入的半径必须是一个数字。"``) ``except ValueError: ``print``(``"输入的半径必须是一个非负数。"``) ``except Exception as e: ``print``(f``"发生了一个错误: {e}"``) ``else``: ``print``(f``"计算成功,圆的面积为: {area}"``) ``return area # 测试函数 if __name__ ``=``= "__main__"``: ``# 测试用例 ``test_radii ``= [``5``, ``-``3``, ``'a'``, ``0``] ``for radius ``in test_radii: ``print``(f``"\n测试半径: {radius}"``) ``calculate_circle_area(radius) def calculate_rectangle_area(length, width): ``""" ``该函数接收矩形的长度length和宽度width作为参数,并返回矩形的面积。 ``矩形的面积公式为:面积 = 长度 * 宽度 ``""" ``print``(f``"\n尝试计算"``) ``try``: ``area ``= length ``* width ``except TypeError: ``print``(``"输入的长度和宽度必须是数字。"``) ``except ValueError: ``print``(``"输入的长度和宽度必须是非负数。"``) ``except Exception as e: ``print``(f``"发生了一个错误: {e}"``) ``else``: ``print``(f``"计算成功,矩形的面积为: {area}"``) ``return area # 测试函数 if __name__ ``=``= "__main__"``: ``# 测试用例 ``test_dimensions ``= [(``5``, ``3``), (``-``2``, ``4``), (``3``, ``'b'``), (``0``, ``0``)] ``for length, width ``in test_dimensions: ``print``(f``"\n测试长度: {length}, 宽度: {width}"``) ``calculate_rectangle_area(length, width) def calculate_average(``*``args): ``""" ``该函数接收一个数字列表作为参数,并返回列表的平均值。 ``平均值公式为:平均值 = 数字总和 / 数字个数 ``""" ``print``(f``"\n尝试计算"``) ``try``: ``if not args: ``raise ValueError(``"列表不能为空。"``) ``average ``= sum``(args) ``/ len``(args) ``except TypeError: ``print``(``"输入的必须是一个数字列表。"``) ``except ValueError as ve: ``print``(ve) ``except Exception as e: ``print``(f``"发生了一个错误: {e}"``) ``else``: ``print``(f``"计算成功,平均值为: {average}"``) ``return average # 测试函数 if __name__ ``=``= "__main__"``: ``# 测试用例 ``test_numbers ``= [ ``[``1``, ``2``, ``3``, ``4``, ``5``], ``[], ``[``1``, ``'a'``, ``3``], ``[``10``, ``20``, ``30``] ``] ``for numbers ``in test_numbers: ``print``(f``"\n测试数字列表: {numbers}"``) ``calculate_average(``*``numbers) def print_user_info(user_id,``*``*``kwargs): ``""" ``该函数接收用户ID和其他可选的关键字参数,并打印用户信息。 ``""" ``print``(f``"\n尝试打印用户信息"``) ``try``: ``if not isinstance``(user_id, ``int``): ``raise TypeError(``"用户ID必须是一个整数。"``) ``print``(f``"用户ID: {user_id}"``) ``for key, value ``in kwargs.items(): ``print``(f``"{key}: {value}"``) ``except TypeError as te: ``print``(te) ``except Exception as e: ``print``(f``"发生了一个错误: {e}"``) ``else``: ``print``(``"用户信息打印成功。"``) # 测试函数 if __name__ ``=``= "__main__"``: ``# 测试用例 ``test_users ``= [ ``(``1``, {``'name'``: ``'Alice'``, ``'age'``: ``30``}), ``(``'2'``, {``'name'``: ``'Bob'``, ``'age'``: ``25``}), ``(``3``, {``'name'``: ``'Charlie'``}), ``(``4``, {}) ``] ``for user_id, info ``in test_users: ``print``(f``"\n测试用户ID: {user_id}, 信息: {info}"``) ``print_user_info(user_id, ``*``*``info) def describe_shape(shape_name,color``=``'black'``,``*``*``kwargs): ``""" ``该函数接收形状名称、颜色和其他可选的关键字参数,并打印形状描述。 ``""" ``print``(f``"\n尝试描述形状"``) ``try``: ``if not isinstance``(shape_name, ``str``): ``raise TypeError(``"形状名称必须是一个字符串。"``) ``print``(f``"形状名称: {shape_name}"``) ``print``(f``"颜色: {color}"``) ``for key, value ``in kwargs.items(): ``print``(f``"{key}: {value}"``) ``except TypeError as te: ``print``(te) ``except Exception as e: ``print``(f``"发生了一个错误: {e}"``) ``else``: ``print``(``"形状描述打印成功。"``) # 测试函数 if __name__ ``=``= "__main__"``: ``# 测试用例 ``test_shapes ``= [ ``(``'Circle'``, ``'red'``, {``'radius'``: ``5``}), ``(``'Rectangle'``, ``'blue'``, {``'length'``: ``10``, ``'width'``: ``5``}), ``(``123``, ``'green'``, {``'side'``: ``4``}), ``(``'Triangle'``, ``'yellow'``) ``] ``for item ``in test_shapes: ``if len``(item) >``= 3``: ``shape_name, color, info ``= item ``print``(f``"\n测试形状名称: {shape_name}, 颜色: {color}, 信息: {info}"``) ``describe_shape(shape_name, color``=``color,``*``*``info) ``elif len``(item) ``=``= 2``: ``shape_name, color ``= item ``info ``= {} ``print``(f``"\n测试形状名称: {shape_name}, 颜色: {color}, 信息: {info}"``) ``describe_shape(shape_name, color``=``color,``*``*``info) ``else``: ``raise ValueError(f``"输入信息过少!当前元组:{item},至少需要形状名称+颜色两项"``) |

装饰器:

|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | def logger(func): ``# 包装函数,接收任意参数 ``def wrapper(``*``args, ``*``*``kwargs): ``print``(f``"【日志】准备执行函数:{func.__name__}"``) ``# 执行原始函数,拿到返回结果 ``result ``= func(``*``args, ``*``*``kwargs) ``print``(f``"【日志】函数执行完毕:{func.__name__}"``) ``return result ``return wrapper # 测试 @logger def add(a, b): ``return a ``+ b @logger def hello(): ``print``(``"hello world"``) # 调用测试 print``(add(``3``,``5``)) hello() |

相关推荐
FYKJ_20101 小时前
SSM校园互助与闲置交易平台62145-计算机课程设计、毕业设计
java·spring boot·python·mysql·架构·spark·课程设计
“AI国潮设计-小江”1 小时前
Python实战 | SDXL批量生成“带炸英歌”国潮IP:从海报到门店落地(附核心Prompt与授权思路)
开发语言·人工智能·python·prompt·aigc
我就是不信1 小时前
深入理解 Python 虚拟机:字典(dict)的优化
开发语言·python·哈希算法
晚风醉蝶1 小时前
YOLO11图标点选验证码识别实战
python·目标检测·验证码识别·yolo11
打工仔折腾 AI1 小时前
多台服务器日志分散难查?用Promtail+Loki+Grafana搭建集中检索平台
服务器·人工智能·后端·python·性能优化·django·grafana
ysu_03141 小时前
uv实战指南-从Python版本虚拟环境到pyproject依赖管理
开发语言·python·pip·uv·虚拟环境·包管理·依赖管理
打工仔折腾 AI2 小时前
DiPlay 实测:iPhone 绕过硬件盒子直连 BYD 车机的思路拆解
android·人工智能·后端·python·gradle·iphone·ai agent 实战
Omics Pro2 小时前
计算虚拟扰动:网络毒理+虚拟敲除
数据库·人工智能·算法·机器学习·自然语言处理
老歌老听老掉牙6 小时前
空间曲线数据的拼接与几何变换分析
python·曲线