2016-08-01 43 views
0

Ich bin neu in Python mit keine vorherige Codierung Erfahrung. Ich benutze "Python Programmierung für den absoluten Anfänger" von Mike Dawson, um diese Sprache zu lernen. Eine der Aufgaben ist - ein Glückskeks zu simulieren und das Programm sollte jedes Mal, wenn es läuft, eines der fünf einzigartigen Vermögen zufällig zeigen.Python_assigning Variable mit Zufallsfunktion

Ich habe den Code unten geschrieben, aber nicht in der Lage, das Programm erfolgreich zu laufen -

# Fortune Cookie 
# Demonstrates random message generation 

import random 


print("\t\tFortune Cookie") 
print("\t\tWelcome user!") 

# fortune messages 
m1 = "The earth is a school learn in it." 

m2 = "Be calm when confronting an emergency crisis." 

m3 = "You never hesitate to tackle the most difficult problems." 

m4 = "Hard words break no bones, fine words butter no parsnips." 

m5 = "Make all you can, save all you can, give all you can." 

message = random.randrange(m1, m5) 

print("Your today's fortune " , message) 

input("\n\nPress the enter key to exit") 
+0

Warum können Sie das Programm nicht ausführen? Erhalten Sie einen Fehler, startet es nicht oder startet es, tut aber nichts? –

+0

Wahrscheinlicher Missbrauch von 'randrange'. user6576756 hat erwartet, dass es durch Magie funktioniert. – wim

Antwort

0

Ihr Fehler ist in message = random.randrange(m1, m5). Die Methode verwendet nur ganze Zahlen als Parameter. Sie sollten versuchen, Ihre Sätze in einer Liste statt und testen Sie die folgende Umsetzung:

import random 

print("\t\tFortune Cookie") 
print("\t\tWelcome user!") 

messages = [ 
    "The earth is a school learn in it.", 
    "Be calm when confronting an emergency crisis.", 
    "You never hesitate to tackle the most difficult problems.", 
    "Hard words break no bones, fine words butter no parsnips.", 
    "Make all you can, save all you can, give all you can." 
    ] 

print("Your today's fortune ", random.choice(messages)) 

input("\n\nPress the enter key to exit") 

random.choice wird ein zufälliges Element aus der Liste nehmen. Sie könnten auch eine Zufallszahl generieren und per Index aufrufen, aber das ist nicht so klar:

+0

ist die Zeile-für-Zeile-Formatierung für Looks? Es wäre für einen Anfänger effektiver, die reguläre Version zu lernen, meiner Meinung nach. – baranskistad

+0

@bjskistad Ja, es ist für Aussehen. Es sieht nicht so klar aus, wenn eine Zeile sich über Hunderte von Zeichen erstreckt, also ging ich damit um. Ist das wirklich viel schwerer zu verstehen? –

+1

Danke Ted. Eine kurze Frage - Wenn man beispielsweise 1000 Elemente auflisten und zufällig generieren muss, wird dieser Prozess, jedes Element innerhalb des Code-Codes aufzulisten, nicht umständlich sein? Was wäre ein effektiver Prozess? Vielen Dank, dass Sie sich die Zeit genommen haben, meinen Code zu überprüfen und Ihre Antwort zu geben. – Kyo