Библиотека запросов
Фабрикатор функций
Создание функций 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)