Convertir un entier en nombres romains

PythonPythonBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les nombres romains sont un système de numération qui a été inventé à Rome antique. Ils sont encore utilisés aujourd'hui dans divers contextes, comme dans la numérotation des chapitres de livres et des suites de films. Dans ce défi, vous devrez créer une fonction qui convertit un entier compris entre 1 et 3999 (inclus) en sa représentation en nombres romains.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/comments("Comments") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/comments -.-> lab-13734{{"Convertir un entier en nombres romains"}} python/for_loops -.-> lab-13734{{"Convertir un entier en nombres romains"}} python/lists -.-> lab-13734{{"Convertir un entier en nombres romains"}} python/tuples -.-> lab-13734{{"Convertir un entier en nombres romains"}} python/function_definition -.-> lab-13734{{"Convertir un entier en nombres romains"}} python/build_in_functions -.-> lab-13734{{"Convertir un entier en nombres romains"}} end

Entier en nombre romain

Écrivez une fonction to_roman_numeral(num) qui prend un entier num compris entre 1 et 3999 (inclus) et renvoie sa représentation en nombre romain sous forme de chaîne de caractères.

Pour convertir un entier en sa représentation en nombre romain, vous pouvez utiliser une liste de correspondance contenant des tuples au format (valeur romaine, entier). Vous pouvez ensuite utiliser une boucle for pour itérer sur les valeurs de la liste de correspondance et utiliser divmod() pour mettre à jour num avec le reste, ajoutant la représentation en nombre romain au résultat.

Votre fonction devrait renvoyer la représentation en nombre romain de l'entier d'entrée.

def to_roman_numeral(num):
  lookup = [
    (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'),
  ]
  res = ''
  for (n, roman) in lookup:
    (d, num) = divmod(num, n)
    res += roman * d
  return res
to_roman_numeral(3) ## 'III'
to_roman_numeral(11) ## 'XI'
to_roman_numeral(1998) ## 'MCMXCVIII'

Sommaire

Dans ce défi, vous avez appris à convertir un entier en sa représentation en nombre romain. Vous avez utilisé une liste de correspondance contenant des tuples au format (valeur romaine, entier) et une boucle for pour itérer sur les valeurs de la liste de correspondance. Vous avez également utilisé divmod() pour mettre à jour num avec le reste, ajoutant la représentation en nombre romain au résultat.