根据自然语言需求生成Python函数,支持参数校验和边界处理
以下是根据上述需求实现的Python函数,该函数接受两个数字作为输入,返回它们的和。代码中包含参数校验和适当的注释以解释逻辑: ```python def add_numbers(num1, num2): """ 将两个数字相加并返回结果。 参数: num1 (int or float): 第一个数字 num2 (int or float): 第二个数字 返回: float: 两个数字的和 异常: ValueError: 如果输入参数不是数字类型(int或float)。 """ # 检查参数类型是否为数字 if not isinstance(num1, (int, float)): raise ValueError("num1 必须是整型或浮点型数字") if not isinstance(num2, (int, float)): raise ValueError("num2 必须是整型或浮点型数字") # 返回两个数字的和 return num1 + num2 # 示例用法 if __name__ == "__main__": try: result = add_numbers(3, 5) print(f"结果是: {result}") # 输出: 结果是: 8 except ValueError as e: print(f"参数错误: {e}") ``` ### 功能解析 1. **参数校验**: 函数首先会检查输入参数是否为`int`或`float`类型。如果不是,会触发`ValueError`异常。 2. **核心逻辑**: 如果参数校验通过,函数会直接返回两个数字的和。 3. **边界情况**: 处理了整数和浮点数的混合,以及非数字输入的情况。 ### 使用说明 - 您可以直接调用 `add_numbers`,传入两个数字。 - 如果提供非法输入(如字符串或其他非数字类型),会抛出异常。 ### 示例 ```python add_numbers(2, 3) # 返回 5 add_numbers(3.5, 4.2) # 返回 7.7 add_numbers(2, -3) # 返回 -1 ``` 此实现遵循了Python的最佳实践,易于理解和扩展。
以下是根据需求生成的Python函数实现,用于动态生成SQL查询语句。函数名为`generate_sql_query`,并已加入参数校验和逻辑注释。 ```python def generate_sql_query(table_name, columns, where_conditions=None): """ 动态生成SQL查询语句。 :param table_name: str - 数据库表名 (必须是非空字符串)。 :param columns: list or tuple - 要查询的列名 (必须是非空的列表或元组,元素必须是字符串)。 :param where_conditions: dict or None - 生成WHERE子句的条件,每个键值对表示条件 (可选)。 键为列名,值为该列需匹配的值。 :return: str - 生成的SQL查询语句。 :raises ValueError: 如果输入参数不符合要求,则抛出异常。 """ # 校验表名 if not isinstance(table_name, str) or not table_name.strip(): raise ValueError("Table name must be a non-empty string.") # 校验列名 if not isinstance(columns, (list, tuple)) or len(columns) == 0: raise ValueError("Columns must be a non-empty list or tuple.") if not all(isinstance(col, str) and col.strip() for col in columns): raise ValueError("Each column name must be a non-empty string.") # 校验WHERE条件 (如果有) if where_conditions is not None: if not isinstance(where_conditions, dict): raise ValueError("Where conditions must be a dictionary.") for key, value in where_conditions.items(): if not isinstance(key, str) or not key.strip(): raise ValueError("Each key in where_conditions must be a non-empty string.") # 防止SQL注入: 将列名和表名用反引号括起来 (假定使用支持此语法的数据库,如MySQL) table_name = f"`{table_name.strip()}`" columns = ", ".join(f"`{col.strip()}`" for col in columns) # 生成基本的SELECT语句 query = f"SELECT {columns} FROM {table_name}" # 如果存在WHERE条件,则附加WHERE子句 if where_conditions: where_clauses = [] for column, value in where_conditions.items(): if isinstance(value, str): # 字符串值加单引号 value = f"'{value.replace('\'', '\'\'')}'" # 转义单引号 elif value is None: # 如果值为None,转换为SQL的NULL value = "NULL" elif not isinstance(value, (int, float)): # 不允许其他类型 raise ValueError(f"Unsupported value type for column `{column}`: {type(value)}") else: # 数字类型不加引号 value = str(value) where_clauses.append(f"`{column.strip()}` = {value}") query += " WHERE " + " AND ".join(where_clauses) return query ``` ### 函数示例用法: ```python # 示例1:基本查询 sql1 = generate_sql_query("users", ["id", "name", "email"]) print(sql1) # 输出: SELECT `id`, `name`, `email` FROM `users` # 示例2:带WHERE条件的查询 sql2 = generate_sql_query( "orders", ["order_id", "customer_id", "amount"], {"customer_id": 123, "status": "confirmed", "amount": 500.75} ) print(sql2) # 输出: SELECT `order_id`, `customer_id`, `amount` FROM `orders` WHERE `customer_id` = 123 AND `status` = 'confirmed' AND `amount` = 500.75 # 示例3:包含NULL值的WHERE条件 sql3 = generate_sql_query( "products", ["product_id", "product_name"], {"category_id": None, "is_available": 1} ) print(sql3) # 输出: SELECT `product_id`, `product_name` FROM `products` WHERE `category_id` = NULL AND `is_available` = 1 ``` ### 说明 1. **SQL注入保护**: - 表名和列名用反引号括起来,避免非法字符。 - 字符串中的单引号被转义为SQL安全的形式。 2. **边界情况处理**: - 表名和列名不能为空。 - WHERE子句值支持 `int`、`float`、`str` 和 `None`,其他类型会抛出异常。 3. **代码可读性**: - 添加了详细注释,方便后续开发者维护。 如果有其他特殊的需求或扩展要求,可以进一步调整代码逻辑。
以下是根据需求实现的Python函数代码。该函数对输入字符串进行反转。 ```python def reverse_string(input_string): """ Function to reverse a given string. Args: input_string (str): The string to be reversed. Returns: str: The reversed string. Raises: TypeError: If the input is not a string. """ # Parameter validation to ensure the input is a string if not isinstance(input_string, str): raise TypeError("Input must be a string") # Use Python's slicing feature to reverse the string reversed_string = input_string[::-1] return reversed_string # Example usage: # result = reverse_string("hello") # print(result) # Output: "olleh" ``` ### 功能说明 1. **参数验证**:函数会验证输入是否为字符串。如果输入不是字符串类型,会抛出 `TypeError`,确保函数仅接收有效参数。 2. **实现逻辑**:利用字符串切片(`[::-1]`)的特性反转字符串,从尾到头获取字符。 3. **健壮性**:处理空字符串输入。如果输入为空字符串 `""`,函数会直接返回空字符串,因为反转结果仍然是空字符串。 ### 使用示例 ```python # 示例1: 普通字符串反转 print(reverse_string("hello")) # 输出: "olleh" # 示例2: 空字符串处理 print(reverse_string("")) # 输出: "" # 示例3: 单字符字符串 print(reverse_string("a")) # 输出: "a" # 示例4: 包含空格或特殊字符的字符串 print(reverse_string("!@ # ~$")) # 输出: "$~ # @!" ```
帮助学习编程的开发者快速生成高质量函数代码,提升学习效率,并掌握最佳实践。
为有经验的开发者加速低价值重复工作的实现,让他们集中精力在更高阶的技术创新上。
无需深入编程,直接通过自然语言描述需求,获取可执行代码,实现快速验证想法。
帮助数据分析师快速生成用于处理数据的Python函数,无需深入掌握编程细节。
为学生提供编程学习辅助工具,为教育者生成直观案例代码,提升教学效果与互动体验。
为开发者或技术相关从业者提供一种便捷高效的方式,通过简单的自然语言描述即可生成符合Python最佳实践的函数代码,减少编写代码的时间,同时保证代码质量。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
免费获取高级提示词-优惠即将到期