Prompt-Bibliothek
Funktionsfabrikator
Erstellen Sie Python-Funktionen basierend auf detaillierten Spezifikationen.
Kopieren Sie diese Aufforderung in unsere Entwickler-Konsole, um es selbst auszuprobieren!
Inhalt | |
---|---|
System | Ihre Aufgabe ist es, Python-Funktionen basierend auf den bereitgestellten natürlichsprachigen Anforderungen zu erstellen. Die Anforderungen beschreiben die gewünschte Funktionalität der Funktion, einschließlich der Eingabeparameter und des erwarteten Rückgabewerts. Implementieren Sie die Funktionen gemäß den gegebenen Spezifikationen und stellen Sie sicher, dass sie Randfälle behandeln, notwendige Validierungen durchführen und Best Practices für die Python-Programmierung befolgen. Bitte fügen Sie geeignete Kommentare im Code hinzu, um die Logik zu erklären und anderen Entwicklern das Verständnis der Implementierung zu erleichtern. |
User | Ich möchte eine Funktion, die ein Sudoku-Rätsel lösen kann. Die Funktion sollte ein 9x9-Sudoku-Gitter als Eingabe erhalten, wobei leere Zellen durch den Wert 0 dargestellt werden. Die Funktion sollte das Rätsel mit einem Backtracking-Algorithmus lösen und das gelöste Gitter zurückgeben. Wenn das Rätsel unlösbar ist, sollte sie None zurückgeben. Die Funktion sollte auch das Eingabegitter validieren, um sicherzustellen, dass es sich um ein gültiges Sudoku-Rätsel handelt. |
Beispielausgabe
Python
def solve_sudoku(grid):
def is_valid(row, col, num):
# Überprüfen, ob die Zahl in der aktuellen Zeile und Spalte gültig ist
for i in range(9):
if grid[row][i] == num or grid[i][col] == num:
return False
# Überprüfen, ob die Zahl im aktuellen 3x3-Teilgitter gültig ist
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):
# Wenn alle Zellen gefüllt sind, ist das Rätsel gelöst
if row == 9:
return True
# Zur nächsten Zeile wechseln, wenn das Ende der aktuellen Zeile erreicht ist
if col == 9:
return backtrack(row + 1, 0)
# Wenn die aktuelle Zelle bereits gefüllt ist, zur nächsten Zelle wechseln
if grid[row][col] != 0:
return backtrack(row, col + 1)
# Versuchen, die aktuelle Zelle mit Zahlen von 1 bis 9 zu füllen
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
# Wenn keine gültige Zahl gefunden wird, Backtracking durchführen
return False
# Das Eingabegitter validieren
if not all(len(row) == 9 and all(0 <= cell <= 9 for cell in row) for row in grid):
return None
# Den Backtracking-Algorithmus starten
if backtrack(0, 0):
return grid
else:
return None
API-Anfrage
Hinweis: Claude 3 Opus wird bald für die Bedrock-API verfügbar sein.
import anthropic
client = anthropic.Anthropic( # defaults to 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="Ihre Aufgabe ist es, Python-Funktionen basierend auf den bereitgestellten natürlichsprachigen Anforderungen zu erstellen. Die Anforderungen beschreiben die gewünschte Funktionalität der Funktion, einschließlich der Eingabeparameter und des erwarteten Rückgabewerts. Implementieren Sie die Funktionen gemäß den gegebenen Spezifikationen und stellen Sie sicher, dass sie Randfälle behandeln, notwendige Validierungen durchführen und Best Practices für die Python-Programmierung befolgen. Bitte fügen Sie geeignete Kommentare im Code hinzu, um die Logik zu erklären und anderen Entwicklern das Verständnis der Implementierung zu erleichtern.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "Ich möchte eine Funktion, die ein Sudoku-Rätsel lösen kann. Die Funktion sollte ein 9x9-Sudoku-Gitter als Eingabe erhalten, wobei leere Zellen durch den Wert 0 dargestellt werden. Die Funktion sollte das Rätsel mit einem Backtracking-Algorithmus lösen und das gelöste Gitter zurückgeben. Wenn das Rätsel unlösbar ist, sollte sie None zurückgeben. Die Funktion sollte auch das Eingabegitter validieren, um sicherzustellen, dass es sich um ein gültiges Sudoku-Rätsel handelt."
}
]
}
]
)
print(message.content)