2017-07-23 2 views
0

Comment sélectionner l'une des valeurs décimales produites et la convertir en variable.Comment formater et sélectionner des randoms dans une plage en python

for i in range(10): 
    print (random.random() * (0.909 - 0.101) + 0.101) 

Aussi comment puis-je faire cette variable ont seulement trois décimales, il doit être dans la variable non l'impression que je devrais alors être en mesure de faire simplement ce lieu de générer les décimales dans l'impression que je voudrais le faire dans une variable et choisir une valeur?

print = (myVar) 
+1

Orthogonal à votre question, mais pourquoi ne pas utiliser 'random.uniform (0,101, 0,909)'? C'est équivalent à votre expression, mais plus facile à écrire (et à lire). –

+0

merci va essayer de bonnes choses beaucoup de bonnes réponses –

Répondre

1

bien juste assigner votre aléatoire au lieu de l'imprimer, et rond à 3 décimales:

myVar = round(random.random() * (0.909 - 0.101) + 0.101, 3) 
+0

zwer parfait et efficace les autres sont bons aussi, mais le vôtre prend moins d'espace et le fait sans trop penser –

+0

@GoulouhAnwar - vous pouvez envisager d'accepter la réponse pour référence future. – zwer

+0

je ferai du nouveau sur le site merci encore –

-1

Vous pouvez formater la chaîne en spécifiant les décimales comme celui-ci avec le 3.

>>> num = 3.123468 
>>> "{:.3f}".format(num) 
"3.123" 
7

Vous cherchez à effectuer les opérations suivantes avec la fonction d'impression:

print("{0:.3f}".format(result)) 

Comme indiqué dans les commentaires, une alternative pour prendre en charge la mise en forme de chaîne de style ancien si l'on choisit d'utiliser cette méthode. La solution peut être obtenue avec ce ainsi:

print("%0.3f" % result) 

En utilisant cette formatter n'imprimera le résultat à trois décimales.

Démo:

from random import random 

for n in range(10): 
    result = random() * (0.909 - 0.101) + 0.101 
    print("{0:.3f}".format(result)) 

Sortie:

0.323 
0.721 
0.665 
0.831 
0.141 
0.297 
0.643 
0.456 
0.716 
0.320 
+1

Juste pour info à quiconque ne peut pas utiliser 'str.format()' ou préfère la mise en forme de chaîne de style ancien, la même sortie dans la réponse peut être réalisée en utilisant: '"% 0.3f " % résultat'. –

+0

@ChristianDean bon appel. Je vais ajouter que – idjaw

0

Une façon peut être d'utiliser format en spécifiant .3f pour enregistrer à result et utiliser result-print:

from random import random 

for i in range(10): 
    result = format((random() * (0.909 - 0.101) + 0.101), '.3f') 
    print(result) 

De même, round peut être utilisé too.You peut trouver un examples here.