Nombre aléatoire (Python)

Résolu/Fermé
P83eace Messages postés 18 Date d'inscription vendredi 6 novembre 2009 Statut Membre Dernière intervention 20 décembre 2011 - 20 déc. 2011 à 23:04
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 31 mars 2012 à 00:59
Bonjour,
J'aimerai créé un nombre aléatoire compris dans l'intervalle [2; plus l'infinie] sur python. Est ce possible ?
Merci d'avance.

3 réponses

big boss d Messages postés 30 Date d'inscription samedi 3 juillet 2010 Statut Membre Dernière intervention 1 février 2012 10
20 déc. 2011 à 23:08
je ne crois pas a l'infini mais essaye sa

import random
r = random.randint(1,100)


Et pour les autres fonctions de random:
https://docs.python.org/3/library/random.html
2
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
20 déc. 2011 à 23:16
Voir même : random.randint(2,100)
0
de tt manière un nombre est tjrs "limité" sur ordi tu doit choisir une borne maxi...et pas trop grandedeja tu peux essayer de trouver la valeur maxi des long sur python.org

heu peut être pas tjrs je connais pas tout mais en c java python tout les trucs normaux c limité mais il y a certains langages ou on peut redéfinir le nombre de bits utilisés pour les nombres (genre ada je crois)

perso si quelqu'un sait comment on peut arriver a avoir des float suffisamment grands (genre un équivalent du double en c j'suis preneur)
0
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
31 mars 2012 à 00:59
salut yop

Avec Python, les entiers très grands ont une précision illimitée. Tu peux par exemple utiliser des entiers de 250 chiffres si ça te chante.

Pour les floats, il existe en Python un module "decimal" qui permet de faire à peu près n'importe quoi de ce qu'on veut.
Par exemple, on peut fixer la précision après la virgule comme on la veut, au travers d'un attribut getcontext(), la précision par défaut étant 28 chiffres après la virgule:



from decimal import *


print getcontext()
print Decimal(1) / Decimal(7)

print
getcontext().prec = 123
print Decimal(1) / Decimal(7)


affiche

Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999, capitals=1, flags=[], traps=[DivisionByZero, InvalidOperation, Overflow])
0.1428571428571428571428571429

0.142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857143
0