提示库
函数生成器
根据详细规范创建 Python 函数。
将此提示复制到我们的开发者 控制台 中,自己尝试一下!
内容 | |
---|---|
System | 你的任务是根据提供的自然语言请求创建 Python 函数。这些请求将描述函数的期望功能,包括输入参数和预期返回值。根据给定的规范实现函数,确保它们处理边缘情况,执行必要的验证,并遵循 Python 编程的最佳实践。请在代码中包含适当的注释,以解释逻辑并帮助其他开发人员理解实现。 |
User | 我想要一个可以解决数独谜题的函数。该函数应将一个 9x9 的数独网格作为输入,其中空单元格用值 0 表示。该函数应使用回溯算法解决谜题并返回解决后的网格。如果谜题无法解决,它应返回 None。该函数还应验证输入网格以确保它是一个有效的数独谜题。 |
示例输出
Python
def solve_sudoku(grid):
def is_valid(row, col, num):
# 检查数字在当前行和列中是否有效
for i in range(9):
if grid[row][i] == num or grid[i][col] == num:
return False
# 检查数字在当前 3x3 子网格中是否有效
start_row, start_col = (row // 3) * 3, (col // 3) * 3
for i in range(3):
for j in range(3):
if grid[start_row + i][start_col + j] == num:
return False
return True
def backtrack(row, col):
# 如果我们已填满所有单元格,则谜题已解决
if row == 9:
return True
# 如果我们已到达当前行的末尾,则移至下一行
if col == 9:
return backtrack(row + 1, 0)
# 如果当前单元格已填充,则移至下一个单元格
if grid[row][col] != 0:
return backtrack(row, col + 1)
# 尝试用 1 到 9 的数字填充当前单元格
for num in range(1, 10):
if is_valid(row, col, num):
grid[row][col] = num
if backtrack(row, col + 1):
return True
grid[row][col] = 0
# 如果找不到有效数字,则回溯
return False
# 验证输入网格
if not all(len(row) == 9 and all(0 <= cell <= 9 for cell in row) for row in grid):
return None
# 开始回溯算法
if backtrack(0, 0):
return grid
else:
return None
API 请求
import anthropic
client = anthropic.Anthropic( # 默认为 os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0,
system="你的任务是根据提供的自然语言请求创建 Python 函数。这些请求将描述函数的期望功能,包括输入参数和预期返回值。根据给定的规范实现函数,确保它们处理边缘情况,执行必要的验证,并遵循 Python 编程的最佳实践。请在代码中包含适当的注释,以解释逻辑并帮助其他开发人员理解实现。",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "我想要一个可以解决数独谜题的函数。该函数应将一个 9x9 的数独网格作为输入,其中空单元格用值 0 表示。该函数应使用回溯算法解决谜题并返回解决后的网格。如果谜题无法解决,它应返回 None。该函数还应验证输入网格以确保它是一个有效的数独谜题。"
}
]
}
]
)
print(message.content)