1

我正在尝试为我的骰子 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
4

2 回答 2

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")
于 2013-11-11T19:27:14.517 回答
0

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

您提供的代码显示“如果 dice 不等于 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")

这使您可以在不评估每个表达式的情况下尽早跳出循环。

于 2013-11-11T19:26:23.483 回答