Skip to content

代码编写

💻 从零开始写代码

场景:根据需求编写代码

例子 1:简单函数

你: 帮我写一个 Python 函数:输入一个列表,返回去重后的列表,
要求保持原顺序

傻妞: 好的,这是实现:

```python
def remove_duplicates(lst):
    """
    去除列表中的重复元素,保持原顺序
    
    Args:
        lst: 输入列表
    
    Returns:
        去重后的列表
    """
    seen = set()
    result = []
    for item in lst:
        if item not in seen:
            seen.add(item)
            result.append(item)
    return result

# 使用示例
print(remove_duplicates([1, 2, 2, 3, 1, 4]))
# 输出: [1, 2, 3, 4]

解释:

  1. 使用 set 记录已见过的元素
  2. 遍历列表,只保留第一次出现的元素
  3. 保持原有顺序

时间复杂度:O(n) 空间复杂度:O(n)


**例子 2:复杂功能**

你: 帮我写一个 REST API 端点:接收用户注册信息, 验证邮箱格式,保存到数据库,返回成功/失败

傻妞: 这是 Flask 实现:

python
from flask import Flask, request, jsonify
import re
import sqlite3

app = Flask(__name__)

def is_valid_email(email):
    """验证邮箱格式"""
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return re.match(pattern, email) is not None

def save_to_db(email, password):
    """保存到数据库"""
    try:
        conn = sqlite3.connect('users.db')
        cursor = conn.cursor()
        cursor.execute(
            "INSERT INTO users (email, password) VALUES (?, ?)",
            (email, password)
        )
        conn.commit()
        return True
    except Exception as e:
        print(f"Error: {e}")
        return False
    finally:
        conn.close()

@app.route('/api/register', methods=['POST'])
def register():
    """用户注册端点"""
    data = request.get_json()
    
    # 验证输入
    if not data or 'email' not in data or 'password' not in data:
        return jsonify({'error': '缺少必要字段'}), 400
    
    email = data['email']
    password = data['password']
    
    # 验证邮箱
    if not is_valid_email(email):
        return jsonify({'error': '邮箱格式不正确'}), 400
    
    # 保存到数据库
    if save_to_db(email, password):
        return jsonify({'message': '注册成功'}), 201
    else:
        return jsonify({'error': '注册失败'}), 500

if __name__ == '__main__':
    app.run(debug=True)

功能: ✓ 邮箱格式验证 ✓ 输入验证 ✓ 数据库保存 ✓ 错误处理 ✓ RESTful 响应


## 代码生成

### 场景:生成样板代码

你: 生成一个 React 组件的模板代码:

  • 函数式组件
  • 使用 useState
  • 包含 props
  • 有基本样式

傻妞: 这是 React 组件模板:

jsx
import React, { useState } from 'react';
import './MyComponent.css';

const MyComponent = ({ title, initialValue = 0 }) => {
  const [count, setCount] = useState(initialValue);
  
  const increment = () => {
    setCount(prev => prev + 1);
  };
  
  const decrement = () => {
    setCount(prev => prev - 1);
  };
  
  return (
    <div className="my-component">
      <h2>{title}</h2>
      <div className="counter">
        <button onClick={decrement}>-</button>
        <span>{count}</span>
        <button onClick={increment}>+</button>
      </div>
    </div>
  );
};

export default MyComponent;

对应的 CSS:

css
.my-component {
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 8px;
}

.counter {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

button {
  padding: 5px 15px;
  cursor: pointer;
}

---

[返回目录](./) | 下一篇:[代码审查](./review.md)