2017-12-19 1 views
-2

Dies ist, was ich in meiner Freizeit tat, aber aus irgendeinem Grund, wenn ich diesen Code versuche, bekomme ich alles. Das Ziel für sie ist eine Zufallszahl von 1 bis 6 Statt zu holen, ist das, was ichGibt es etwas falsch mit meinem Code in Python

number = 1,2,3,4,5,6 

import random 

for i in range(20): 
    question= raw_input("Do you want a number from 1 to 6") 
    if question == "yes": 
     print number 
    elif question == "no": 
     print "Ok" 

enter image description here

+1

Was ist das Problem, das Sie versuchen zu lösen? Was ist die Frage, die du beantworten willst? –

+1

versuchen Sie, genauer mit Ihrem Fragetitel zu sein – WooWapDaBug

+0

Was haben Sie erwartet, dass 'print number' zu tun ist? –

Antwort

2

Der Wert von number erhalten, ist das Tupel (1, 2, 3, 4, 5, 6), so wird dies wie erwartet . Wenn Sie eine Zufallszahl aus diesem Satz auswählen möchten, können Sie versuchen, die random.sample Funktion

Beispiel für die Verwendung:

import random 
result = random.sample(numbers, 1)  
print result # will produce one number from the set 

oder, wenn Sie wissen, dass Sie gehen, um immer eine Auswahl unter Verwendung von ein zusammenhängender Bereich, können Sie verwenden randint

+0

Sie denken, sie wollen die Nummer in einer Liste? –

+0

nur weil das ist, wie das OP das Problem ursprünglich angegeben :) –

+0

Ich überprüfte die Revisionshistorie und kann nichts finden, das so sagt ... –

1

Ja, es ist falsch in Ihrem Code Sie nur Liste von Ints drucken. Um eine Zufallszahl zu erhalten müssen Sie random.randint Funktion wie verwenden:

import random 
for i in range(20): 
    question= raw_input("Do you want a number from 1 to 6") 
    if question == "yes": 
     print random.randint(1, 6) 
    elif question == "no": 
     print "Ok"` 
2

Was Sie suchen ist random.choice.

Beispielcode:

>>> import random 
>>> number = [1,2,3,4,5] 

>>> for i in range(3): 
     print(random.choice(number)) 
=> 5 
    4 
    2 

Python docs:

random.choice (seq)

Return ein zufälliges Element aus der nicht-leere Sequenz Seq. Wenn seq leer ist, wird IndexError ausgelöst.


Was das Problem in Ihrem Code, werden Sie keine zufällig generierten Zahlen bekommen oder aus dem tuple Auswahl, sondern sind nur die ganze tuple Druck.