代码编写
💻 从零开始写代码
场景:根据需求编写代码
例子 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]解释:
- 使用 set 记录已见过的元素
- 遍历列表,只保留第一次出现的元素
- 保持原有顺序
时间复杂度: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)