Numeri romani canonici
Formatta un intero da 1 a 3999 come numero romano canonico maiuscolo.
def roman_numeral(n):
if type(n) is not int or not 1 <= n <= 3999:
raise ValueError("roman.range")
values = [(1000,"M"),(900,"CM"),(500,"D"),(400,"CD"),
(100,"C"),(90,"XC"),(50,"L"),(40,"XL"),
(10,"X"),(9,"IX"),(5,"V"),(4,"IV"),(1,"I")]
parts = []
for value, symbol in values:
count, n = divmod(n, value)
parts.append(symbol * count)
return "".join(parts)| Progetto | Verifica forme sottrattive come 4 e 900, rifiutando zero, numeri fuori intervallo e valori non interi. |
|---|---|
| Controlla prima di applicare | Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche. |
| Modelli | Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente. |
def roman_numeral(n):
if type(n) is not int or not 1 <= n <= 3999:
raise ValueError("roman.range")
values = [(1000,"M"),(900,"CM"),(500,"D"),(400,"CD"),
(100,"C"),(90,"XC"),(50,"L"),(40,"XL"),
(10,"X"),(9,"IX"),(5,"V"),(4,"IV"),(1,"I")]
parts = []
for value, symbol in values:
count, n = divmod(n, value)
parts.append(symbol * count)
return "".join(parts)Dai al formattatore un contratto affidabile per i suoi chiamanti
NumeralHaven offre un ambiente di programmazione per Windows in cui discutere i dettagli implementativi con un modello IA collegato. La formattazione è un buon punto di partenza perché anche una piccola funzione può racchiudere regole visibili del prodotto. Descrivi l’input accettato e l’output esatto prima di chiedere modifiche e includi il codice che presenta il risultato all’utente.
L’esempio di progetto fornito è un formattatore di numeri romani. Puoi chiedere all’assistente di esaminarne l’intervallo numerico supportato e le forme sottrattive, poi di spiegare come i chiamanti debbano gestire i valori rifiutati. Lo scopo è sviluppare il tuo codice con aspettative chiare, senza presumere che l’ambiente offra un servizio finito di conversione numerica.
Una volta esplicitato il contratto, controlla se la modifica suggerita cambia la forma dell’output, i tipi accettati o il comportamento in caso di errore. Esegui casi di prova attorno ai limiti dell’intervallo e alle forme sottrattive rappresentative usando gli strumenti del progetto. Controlla anche il percorso di visualizzazione circostante, affinché un valore non valido non diventi uno spazio vuoto inspiegato o un’etichetta fuorviante nell’interfaccia.
Per lavorare con l’assistenza del modello, collega un endpoint compatibile con OpenAI o di Anthropic e fornisci credenziali quando richieste. Un modello IA senza filtri è un’opzione se il servizio lo offre. Capacità di contesto, disponibilità degli strumenti e restrizioni delle risposte restano specifiche del server e del modello scelti; la revisione resta parte del processo di sviluppo.
Prima di modificare un formattatore di valori
Perché includere il chiamante del formattatore nella richiesta?
Il chiamante decide come un valore rifiutato o una stringa formattata raggiunge l’interfaccia. Includi quel percorso affinché l’assistente possa spiegare l’effetto di un valore restituito o di un’eccezione modificati, non solo la conversione interna.
Quali esempi rendono preciso un requisito di formattazione?
Fornisci valori accettati con le esatte stringhe attese e valori da rifiutare. Per i numeri romani, includi i limiti dell’intervallo e le forme sottrattive. Questi casi rendono visibili le convenzioni di output prima di proporre un’implementazione.
Un formattatore deve accettare silenziosamente testo numerico?
Solo se il contratto dell’applicazione richiede quella conversione. Esplicita i tipi accettati e valuta dove debba avvenire l’analisi del testo. Una conversione comoda dentro la formattazione può nascondere un errore del chiamante o cambiare come i valori non validi arrivano all’utente.
Un modello diverso può cambiare l’output richiesto al formattatore?
Cambiare modello collegato non dovrebbe cambiare i requisiti dichiarati. Mantieni gli stessi casi di prova e regole di accettazione quando confronti proposte. Valuta ogni modifica rispetto a queste regole, senza considerare autorevole la convenzione preferita dal modello.
NumeralHaven · Aggiornato 2026-10-25