Python函数生成器

263 浏览
25 试用
6 购买
Nov 7, 2025更新

根据自然语言需求生成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. 参数校验: 函数首先会检查输入参数是否为intfloat类型。如果不是,会触发ValueError异常。
  2. 核心逻辑: 如果参数校验通过,函数会直接返回两个数字的和。
  3. 边界情况: 处理了整数和浮点数的混合,以及非数字输入的情况。

使用说明

  • 您可以直接调用 add_numbers,传入两个数字。
  • 如果提供非法输入(如字符串或其他非数字类型),会抛出异常。

示例

add_numbers(2, 3)        # 返回 5
add_numbers(3.5, 4.2)    # 返回 7.7
add_numbers(2, -3)       # 返回 -1

此实现遵循了Python的最佳实践,易于理解和扩展。

以下是根据需求生成的Python函数实现,用于动态生成SQL查询语句。函数名为generate_sql_query,并已加入参数校验和逻辑注释。

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

函数示例用法:

# 示例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子句值支持 intfloatstrNone,其他类型会抛出异常。
  3. 代码可读性
    • 添加了详细注释,方便后续开发者维护。

如果有其他特殊的需求或扩展要求,可以进一步调整代码逻辑。

以下是根据需求实现的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. 健壮性:处理空字符串输入。如果输入为空字符串 "",函数会直接返回空字符串,因为反转结果仍然是空字符串。

使用示例

# 示例1: 普通字符串反转
print(reverse_string("hello"))  # 输出: "olleh"

# 示例2: 空字符串处理
print(reverse_string(""))  # 输出: ""

# 示例3: 单字符字符串
print(reverse_string("a"))  # 输出: "a"

# 示例4: 包含空格或特殊字符的字符串
print(reverse_string("!@ # ~$"))  # 输出: "$~ # @!"

示例详情

解决的问题

为开发者或技术相关从业者提供一种便捷高效的方式,通过简单的自然语言描述即可生成符合Python最佳实践的函数代码,减少编写代码的时间,同时保证代码质量。

适用用户

初级开发者

帮助学习编程的开发者快速生成高质量函数代码,提升学习效率,并掌握最佳实践。

高级开发者

为有经验的开发者加速低价值重复工作的实现,让他们集中精力在更高阶的技术创新上。

产品经理

无需深入编程,直接通过自然语言描述需求,获取可执行代码,实现快速验证想法。

特征总结

根据自然语言输入,一键生成满足需求的Python函数,免去复杂的编码过程,让开发者轻松高效完成任务。
自动添加参数校验和边界处理逻辑,提升代码的健壮性,减少潜在错误,让功能更加稳定可靠。
生成的代码遵循Python最佳实践,内置标准化注释,方便团队协作与后续维护,大幅节省沟通成本。
支持多场景需求,无论是简单的数学计算还是复杂数据处理,都能智能生成精准代码。
灵活适配个性化需求,可通过描述调整输入、输出参数和逻辑细节,满足多样化场景使用。
简化开发流程,将从需求到代码实现的过程缩短为几秒,显著提升开发者的效率和工作体验。
自动优化代码结构,保持简洁明了,让函数更具可读性和扩展性,为复杂项目开发打下稳固基础。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥0元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 90 tokens
- 1 个可调节参数
{ 函数需求描述 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59