 Concevez un programme qui prend des nombres entre 0 et 9 999 et imprime la version parlée du nombre.
def convert_to_spoken(num):\n if not num:\n return 'zero'\n \n if num > 9999:\n print('Le nombre doit être inférieur à 10 000')\n return\n \n singles = { 1 : 'un', 2 : 'deux', 3 : 'trois', 4 : 'quatre',\n 5 : 'cinq', 6 : 'six', 7 : 'sept', 8 : 'huit', \n 9 : 'neuf'\n }\n \n adolescents = {10 : 'dix', 11 : 'onze', 12 : 'douze',\n 13 : 'treize', 14 : 'quatorze', 15 : 'quinze',\n 16 : 'seize', 17 : 'dix-sept', 18 : 'dix-huit',\n 19 : 'dix-neuf'\n }\n \n dizaines = {2 : 'vingt', 3 : 'trente', 4 : 'quarante', 5 : 'cinquante',\n 6 : 'soixante', 7 : 'soixante-dix', 8 : 'quatre-vingt', 9 : 'quatre-vingt-dix',\n }\n \n # créer une liste d'étapes basée sur la longueur du nombre\n étapes = [\n ('mille', 1000000), ('cent', 1000),\n ('', 0)\n ]\n \n # diviser le nombre en 3 chiffres chacun\n chiffres = []\n tandis que num > 0 :\nr = num % 1000\n digits.insert(0, r)\n num //= 1000\n \n speech_num = []\n # convertir chaque chiffre à 3 chiffres au format parlé\n for i, dig in enumerate(digits):\n if dig == 0:\n continue\n \n lbl, step = steps[i]\na, b = divmod(creuser, étape)\n \n num_parlé.appen d(convert_to_spoken_3dig(a, b, \n singles, teens, tens))\n spoken_num.append(lbl)\n \n return ' .join(spoken_num)\n\ndef convert_to_spoken_3dig(a, b, singles, teens , dizaines):\n num_parlé = []\n \n # convertir la place des centaines\n si a:\n num_parlé.append(singles[a] + 'cent')\n \n # convertir la place des dizaines\n si b :\n if b in singles :\n spoken_nums.append(singles[b])\n elif b in teens :\n spoken_nums.append(teens[b])\n else :\nt, o = divmod(b, 10)\n nombres_parlés.append(dizaines[t])\n si o :\n nombres_parlés.append(singles[o])\n \n return ' '.join(nums_parlés)