2016-04-08 6 views
-2

Ich habe Probleme, ein bestimmtes Bild zu zeigen, wenn ich die IF-Klausel verwende. Die Idee ist, ein Bild der "1" -Seite eines Würfels zu zeigen, wenn die erzeugte Zufallszahl gleich "1" usw. für jede Zahl ist.Bild in Python-Code anzeigen & einfache Multiplikation

Ich habe auch Probleme, das Ergebnis zu verdoppeln, die Wette zu verdoppeln. Zum Beispiel, wetten $ 10 und gewinnen $ 20. Ich erhalte $ 1010

import cgi 
form = cgi.FieldStorage() 

name = str(form.getvalue("name")) 
bet = str(form.getvalue("bet")) 


print """Content-type: text/html 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html><head> 
<title>Lab 10</title> 
</head><body> 
""" 
import random 
die1 = str(random.randint(1,6)) 
die2 = str(random.randint(1,6)) 

print "<p>Thanks for playing, "+name+" . You rolled "+die1+".</p>" 
print "<p> Your opponent rolled "+die2+".</p>" 

if die1==die2: 
print "You win $"+bet+"!</p>" 
if die1>die2: 
print "You win $"+bet*2+"!</p>" 
if die1<die2: 
print "You lose $"+bet+"! Try again.</p>" 

if die1==int("1"): 
print "<img src='dice-1.png' alt='1' width='107' height='107' />" 



print "</body>" 
print "</html>" 
+0

Bis "$ 1010", beachten Sie, wie Sie die Würfelrolle in eine Zeichenfolge ändern, bevor Sie es mit zwei multiplizieren. Nur ein paar Zeilen später vergleichen Sie diese Zeichenfolge mit einer Ganzzahl, die Sie aus einer Zeichenfolgendarstellung dieser Ganzzahl erhalten. Warum benutze 'int (" 1 ")' anstelle von '1'? Sie haben einige Lernzeit in Bezug auf Typen. – TigerhawkT3

+0

@ TigerhawkT3 nach "Danke fürs spielen, du hast gerollt ..." – aaandrewp

+0

Okay, also was ist die Frage? Erhalten Sie Ausnahmen? Schlechte Ergebnisse? Sie bitten uns, einen Code für Sie zu schreiben? – skrrgwasme

Antwort

0

Sie Strings und ganze Zahlen ineinander verändern und Vergleiche, die nicht einen Fehler in Python 2, erhöhen wird aber auch nicht. Sei konsistent, ob etwas eine Zeichenfolge oder eine Zahl ist. Verwenden Sie str.format, um Werte in Ihre Strings zu interpolieren, ohne sich um die Verkettung kümmern zu müssen.

name = str(form.getvalue("name")) 
bet = int(form.getvalue("bet")) 

print """Content-type: text/html 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html><head> 
<title>Lab 10</title> 
</head><body> 
""" 
import random 
die1 = random.randint(1,6) 
die2 = random.randint(1,6) 

print "<p>Thanks for playing, {}. You rolled {}.</p>".format(name, die1) 
print "<p> Your opponent rolled {}.</p>".format(die2) 

if die1 == die2: 
    print "You win ${}!</p>".format(bet) 
if die1 > die2: 
    print "You win ${}!</p>".format(bet*2) 
if die1 < die2: 
    print "You lose ${}! Try again.</p>".format(bet) 

print """<img src="dice-{}.png" alt="{}" width="107" height="107" /><br /> 
<img src="dice-{}.png" alt="{}" width="107" height="107" />""".format(
    die1, die1, die2, die2) 
+0

danke! Ich schaffte es, die Bilder selbst funktionieren zu lassen, hatte nur Schwierigkeiten mit der Verdoppelung der Wette. Jetzt verstehe ich, wo ich falsch gelaufen bin – aaandrewp