Python函数生成器

53 浏览
4 试用
0 购买
Sep 1, 2025更新

根据自然语言需求生成Python函数,支持参数校验和边界处理

示例1

以下是根据上述需求实现的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的最佳实践,易于理解和扩展。

示例2

以下是根据需求生成的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. **代码可读性**:
   - 添加了详细注释,方便后续开发者维护。

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

示例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最佳实践的函数代码,减少编写代码的时间,同时保证代码质量。

特征总结

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

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

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

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

2. 发布为 API 接口调用

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

3. 在 MCP Client 中配置使用

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

免费
请先免费试用,确保满足您的需求。

您购买后可以获得什么

获得完整提示词模板
- 共 90 tokens
- 1 个可调节参数
{ 函数需求描述 }
自动加入"我的提示词库"
- 获得提示词优化器支持
- 版本化管理支持
获得社区共享的应用案例
限时免费

不要错过!

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

17
:
23
小时
:
59
分钟
:
59
摄影
免费 原价:20 限时
试用