Canonieke Romeinse cijfers
Zet een geheel getal van 1 tot en met 3999 om in canonieke Romeinse hoofdletters.
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)| Project | Controleer subtractieve vormen zoals 4 en 900 en weiger nul, getallen buiten het bereik en niet-gehele waarden. |
|---|---|
| Controleer vóór het toepassen | Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen. |
| Modellen | Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen. |
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)Geef een formatter een contract waarop aanroepers kunnen vertrouwen
NumeralHaven biedt een programmeeromgeving voor Windows om implementatiedetails te bespreken met een aangesloten AI-model. Opmaakwerk is een nuttig beginpunt, omdat een kleine functie zichtbare productregels kan bevatten. Beschrijf de geaccepteerde invoer en exacte uitvoer voordat u om wijzigingen vraagt en voeg de code toe die het resultaat aan een gebruiker toont.
Een formatter voor Romeinse cijfers is het meegeleverde projectvoorbeeld. U kunt de assistent vragen het ondersteunde getalbereik en de subtractieve vormen te beoordelen en vervolgens uit te leggen hoe aanroepers afgewezen waarden moeten afhandelen. Het doel is uw eigen code te ontwikkelen met duidelijke verwachtingen, niet aan te nemen dat de omgeving een kant-en-klare dienst voor cijferconversie biedt.
Zodra het contract expliciet is, inspecteert u of de voorgestelde wijziging de schrijfwijze van uitvoer, geaccepteerde typen of foutafhandeling verandert. Voer met uw projecttools testgevallen uit rond bereikgrenzen en representatieve subtractieve vormen. Controleer ook het omliggende weergavetraject, zodat een ongeldige waarde geen onverklaarde lege plek of misleidend label in de interface wordt.
Verbind voor modelondersteund werk een OpenAI-compatibel of Anthropic-endpoint en verstrek waar nodig toegangsgegevens. Een ongefilterd AI-model is een optie als die dienst het aanbiedt. Contextcapaciteit, beschikbare tools en antwoordbeperkingen blijven specifiek voor de gekozen server en het model; beoordeling blijft onderdeel van het ontwikkelproces.
Voordat u een waardeformatter wijzigt
Waarom de aanroeper van de formatter in het verzoek opnemen?
De aanroeper bepaalt hoe een afgewezen waarde of opgemaakte tekenreeks de interface bereikt. Voeg dat traject toe zodat de assistent het effect van een gewijzigde retourwaarde of uitzondering kan uitleggen, niet alleen de interne conversie.
Welke voorbeelden maken een opmaakvereiste precies?
Geef geaccepteerde waarden met hun exact verwachte tekenreeksen, plus waarden die moeten worden afgewezen. Neem voor Romeinse cijfers bereikgrenzen en subtractieve vormen op. Deze testgevallen maken uitvoerconventies zichtbaar voordat een implementatie wordt voorgesteld.
Moet een formatter numerieke tekst stilzwijgend accepteren?
Alleen als het toepassingscontract die conversie vereist. Vermeld geaccepteerde typen expliciet en beoordeel waar het parsen thuishoort. Een handige typeconversie tijdens de opmaak kan een fout bij de aanroeper verbergen of veranderen hoe ongeldige waarden de gebruiker bereiken.
Kan een ander model de vereiste uitvoer van de formatter veranderen?
Een ander aangesloten model mag uw vastgelegde vereisten niet veranderen. Houd dezelfde testgevallen en acceptatieregels aan bij het vergelijken van voorstellen. Beoordeel elke wijziging aan die regels in plaats van de voorkeursconventie van een model als gezaghebbend te behandelen.
NumeralHaven · Bijgewerkt 2026-10-25