我一直在尝试创建一个可以模拟骰子掷骰的程序,可以选择4,6或12个骰子。目前我遇到的问题是,无论我选择什么选项,程序都会完全跳过滚动,并立即询问我是否要再次滚动。我使用Portable Python 3.2.1.1来创建代码。这就是我到目前为止所做的:
#!/usr/bin/env python
import random
def fourdie():
min = 1
max = 4
print (random.randint(min, max));
return;
def sixdie():
min = 1
max = 6
print (random.randint(min, max));
return;
def twelvedie():
min = 1
max = 12
print (random.randint(min, max));
return;
roll = "yes"
y = 1
while roll == "yes" or roll == "y":
x = raw_input("What die do you want to roll? 4, 6 or 12?");
if x == 4:
print (fourdie());
elif x == 6:
print (sixdie());
elif x == 12:
print (twelvedie());
else:
print = "Sorry, I dont appear to have that dice type";
roll = raw_input("Do you want to roll again?");
任何帮助将不胜感激。 谢谢你的时间!
答案 0 :(得分:1)
input
函数返回一个字符串。
您可以将此字符串转换为int,然后将其与4,6或12进行比较:
x = int(input("What die do you want to roll? 4, 6 or 12?"))
if x == 4:
// whatever
elif x == 6:
// whatever
或者您可以将x
直接与字符串进行比较:
x = input("... whatever ...")
if x == "4":
// whatever
elif x == "6":
// whatever
另外一件事:没有必要在python中用分号结束行。让Guido van Rossum高兴。
答案 1 :(得分:0)
您的基本问题是打字,由Nigel Tufnel解决
我只是,因为它引起了我的兴趣,我想我会提到你可以让你的代码更通用:
while roll in ["yes", "y"]:
x = int(raw_input("Number of sides on the die you want to roll?"))
print random.randint(1,x)
roll = raw_input("Do you want to roll again?")