函数生成器

60 浏览
3 试用
0 购买
Aug 26, 2025更新

以专家视角生成满足逻辑和约束的高质量函数

示例1

以下是满足需求的`calculate_discount`函数的实现:

### 功能说明
- **函数参数**:
  - `price` (float): 原始价格,表示商品的原始价格。
  - `discount_rate` (float): 折扣率,表示将以多少比例进行折扣计算。
- **功能逻辑**:
  - 检查`price`和`discount_rate`是否有效,给出友好的错误提示。
  - 如果输入符合要求,则按照折扣计算逻辑进行计算。
  - 结果经过四舍五入到两位小数后返回。
- **边界处理**:
  - 如果`price`为负数,会抛出`ValueError`。
  - 如果`discount_rate`为负数或大于1.0(100%折扣),也会抛出`ValueError`。

下面是代码实现:

```python
import math

def calculate_discount(price: float, discount_rate: float) -> float:
    """
    计算折扣后的价格并四舍五入到两位小数。
    
    参数:
        price (float): 原始价格。
        discount_rate (float): 折扣率,应在0到1之间。
        
    返回:
        float: 折扣后的价格,四舍五入到两位小数。
    
    异常:
        ValueError: price为负数或discount_rate不在0到1之间时抛出。
    """
    # 参数检查
    if price < 0:
        raise ValueError("价格不能为负数")
    if not (0 <= discount_rate <= 1):
        raise ValueError("折扣率必须在0到1之间")
    
    # 折扣计算并四舍五入到两位小数
    discounted_price = price * discount_rate
    return round(discounted_price, 2)

# 测试代码 (可选)
if __name__ == "__main__":
    try:
        print(calculate_discount(100.0, 0.15))  # 输出: 15.0
        print(calculate_discount(0, 0.5))       # 输出: 0.0
        print(calculate_discount(200, 1.0))     # 输出: 200.0
        print(calculate_discount(-50, 0.2))     # 抛出 ValueError
    except ValueError as e:
        print(f"错误: {e}")
```

---

### 实现细节
1. **参数验证**:
   - 价格不能为负值,若出现负值,则抛出`ValueError`,并给出详细的错误提示。
   - 折扣率必须在0到1的区间内,超出则抛出`ValueError`。
   
2. **逻辑操作**:
   - 原始价格和折扣率相乘,计算出折扣后的价格。
   - 使用`round`函数对结果进行四舍五入到两位小数处理。

3. **示例用法**:
   - 函数被调用时,可以处理`price`为零或`discount_rate`为零的场景。
   - 同时对边界条件提供了有效的错误处理。

如果有其他需求或者需要扩展逻辑(例如处理更多的业务规则),可以进一步修改!

示例2

以下是使用Java编写的 `find_max_value` 方法,该方法旨在根据要求实现所描述的功能:

```java
import java.util.*;

public class MaxValueFinder {

    /**
     * 查找列表中的最大值,支持忽略负数的选项。
     * @param data_list List<Integer> 输入的整数列表
     * @param ignore_negative boolean 是否忽略负数
     * @return 列表中的最大值(整数),或者在特定条件下返回 null
     */
    public static Integer find_max_value(List<Integer> data_list, boolean ignore_negative) {
        // 边界检查:如果列表为空或为 null,直接返回 null
        if (data_list == null || data_list.isEmpty()) {
            return null;
        }

        // 如果忽略负数,则过滤掉负数
        if (ignore_negative) {
            // 使用流来过滤出非负数
            data_list = new ArrayList<>(data_list);
            data_list.removeIf(number -> number < 0);
        }

        // 再次检查:列表可能被过滤为空
        if (data_list.isEmpty()) {
            return null; // 如果只剩负数且被过滤,返回 null
        }

        // 利用 Collections 的内置方法获取最大值
        return Collections.max(data_list);
    }

    public static void main(String[] args) {
        // 示例测试
        List<Integer> test_list1 = Arrays.asList(3, -1, 7, 2, -10);
        List<Integer> test_list2 = Arrays.asList(-5, -15, -22, -1);
        List<Integer> test_list3 = new ArrayList<>();
        
        System.out.println(find_max_value(test_list1, false)); // 输出 7
        System.out.println(find_max_value(test_list1, true));  // 输出 7
        System.out.println(find_max_value(test_list2, false)); // 输出 -1
        System.out.println(find_max_value(test_list2, true));  // 输出 null
        System.out.println(find_max_value(test_list3, true));  // 输出 null
    }
}
```

### 方法逻辑和特点:
1. **参数检查**:
   - 判断输入列表是否为空或为 `null`。如果是,返回 `null` 作为输出。
2. **负数过滤**:
   - 当 `ignore_negative` 为 `true` 时,使用 `removeIf` 过滤掉所有负数。如果过滤后列表为空,则直接返回 `null`。
   - 这种方式确保按需忽略负数,不污染原始数据。
3. **最大值查找**:
   - 利用 `Collections.max` 从列表中高效查找最大值。
4. **边界情况处理**:
   - 列表为空、全是负数且需要忽略负数等情况下,返回 `null`。
   
### 测试结果:
可以通过主函数对不同输入和边界情况进行验证:
- 包含正数和负数的列表。
- 全为负数的列表。
- 空列表。

### 性能特点:
- 通过 `Collections.max` 和流操作,简化了代码并提升可读性。
- 赋予清晰的边界条件验证,提高方法的健壮性。

示例3

以下是`generate_multiplication_table`函数的实现代码,采用JavaScript编写,考虑了处理边界情况以及提升代码性能与可维护性:

```javascript
/**
 * Generates a multiplication table for a given number up to the specified limit.
 *
 * @param {number} number - The base number for the multiplication table.
 * @param {number} limit - The upper limit up to which the multiplication table is generated.
 * @returns {Array<number>} - An array containing the results of the multiplication table.
 */
function generate_multiplication_table(number, limit) {
    // Ensure inputs are valid integers
    if (!Number.isInteger(number) || !Number.isInteger(limit)) {
        throw new Error("Both 'number' and 'limit' must be integers.");
    }

    // Handle edge cases
    if (limit <= 0) {
        // When limit is 0 or negative, return an empty array
        return [];
    }

    // Generate the multiplication table
    const result = Array.from({ length: limit }, (_, i) => number * (i + 1));

    return result;
}

// Example usage:
console.log(generate_multiplication_table(5, 10)); // Output: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
console.log(generate_multiplication_table(3, 0));  // Output: []
console.log(generate_multiplication_table(7, -5)); // Output: []
console.log(generate_multiplication_table(2, 5));  // Output: [2, 4, 6, 8, 10]
```

### 说明
1. **核心逻辑**:
   - 利用`Array.from()`生成一个数组,其中`length`指定了数组大小为`limit`。
   - 使用第二个参数`(_, i)`生成所需的乘法结果,计算公式为`number * (i + 1)`。

2. **边界处理**:
   - 如果`limit <= 0`,返回空数组,表示没有需要生成结果的情况。
   - 确保输入参数是整数,否则抛出错误,因为非整数输入不会产生预期的结果。

3. **性能优化**:
   - 使用`Array.from()`的方法比普通`for`循环写法更简洁且易读,避免了显式地创建变量和手动推入数组的操作。

4. **附加验证**:
   - 通过条件`Number.isInteger()`保证输入的合法性,防止非整数输入导致的计算错误。

此实现严谨、简洁且高效,非常适合在需要处理边界值的情况下进行乘法表生成。

适用用户

后端开发工程师

需要快速实现复杂功能逻辑的高效函数,同时确保代码性能与边界条件的可靠处理。

算法工程师

处理算法优化时,用于生成逻辑严谨且高效的代码实现,节省繁杂的代码编写时间。

编程初学者

借助模板化的代码输出,学习编程语言核心函数结构和常见实践技巧,提升编程能力。

技术产品经理

在开发初期快速生成可用代码原型,与技术团队沟通时提供更清晰直观的需求实现方案。

开发团队领队

为团队成员提供标准化且高质量的函数模板,减少重复劳动并提升整体开发效率。

解决的问题

提供一个高效、专业的工具,帮助开发者快速生成满足复杂逻辑和约束条件的高质量代码函数,提升开发效率并减少潜在错误。

特征总结

智能生成高效函数:快速生成满足特定参数和逻辑需求的高质量函数,简化开发流程。
自动处理边界情况:通过添加约束条件,确保函数能够轻松应对异常场景,提升可靠性。
覆盖多种编程语言:支持定制化选择不同语言,解决多技术栈项目中的开发需求。
逻辑严谨更优化:基于专家级逻辑设计,确保生成的函数在性能和可维护性上表现出色。
灵活支持算法设计:结合需求推荐合适算法或使用特定库,优化实现效果。
一键定制复杂逻辑:轻松快速处理复杂逻辑需求,节省繁杂的编码时间。
支持团队协作需求:为开发团队成员提供一致的标准化输出,减少沟通成本。
提升学习与培训效果:作为学习工具,为新手提供清晰的代码结构与实践指导。
加速原型开发:通过快速生成可用代码,加快产品迭代效率。

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

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

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

2. 发布为 API 接口调用

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

3. 在 MCP Client 中配置使用

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

20 积分
平台提供免费试用机制,
确保效果符合预期,再付费购买!

您购买后可以获得什么

获得完整提示词模板
- 共 152 tokens
- 9 个可调节参数
{ 编程语言 } { 函数名称 } { 参数一 } { 参数二 } { 逻辑与用途描述 } { 返回值描述 } { 边界情况一 } { 边界情况二 } { 库或习惯用法 }
自动加入"我的提示词库"
- 获得提示词优化器支持
- 版本化管理支持
获得社区共享的应用案例
限时免费

不要错过!

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

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