没有错误时出现错误代码

时间:2013-11-11 19:17:20

标签: python random dice

我正在尝试为我的骰子sim发送错误消息

import random
loop=1

while loop == 1:
 dice=input("Choose dice 4,6 or 12 sided")
 if dice =="4":
     n=random.randint(1,4)
     print(dice)
     print(n)
 if dice =="6":
     n=random.randint(1,dice)
     print(dice)
     print(n)
 if dice =="12":
     n=random.randint(1,dice)
     print(dice)
     print(n)

 else:
    print("Error")

错误出现在4和6但是当我使用12边时没有出现错误

Choose dice 4,6 or 12 sided4
4
4
Error

2 个答案:

答案 0 :(得分:1)

你应该说明你正在使用哪种编程语言。我假设这是Python,但如果不是我的回答可能是错误的。

您的问题是您需要使用elif,而不是。您还试图在字符串和整数之间隐式转换,但这不起作用。这段代码应该,除非我错过了别的东西。

import random
loop=1

while loop == 1:
 dice=input("Choose dice 4,6 or 12 sided")
 if dice =="4":
     n=random.randint(1,4)
     print(dice)
     print(str(n))
 elif dice =="6":
     n=random.randint(1,int(dice))
     print(dice)
     print(str(n))
 elif dice =="12":
     n=random.randint(1,int(dice))
     print(dice)
     print(str(n))
 else:
    print("Error")

答案 1 :(得分:0)

您需要使用elif代替if或switch语句。

您提供的代码"如果骰子不等于12,则打印错误"。

尝试类似:

while loop == 1:
 dice=input("Choose dice 4,6 or 12 sided")
 if dice =="4":
     n=random.randint(1,4)
     print(dice)
     print(n)
 elif dice =="6":
     n=random.randint(1,dice)
     print(dice)
     print(n)
 elif dice =="12":
     n=random.randint(1,dice)
     print(dice)
     print(n)
 else:
    print("Error")

这使您可以在不评估每个表达式的情况下提前摆脱循环。