Python 3.5中的randint不起作用

randint in Python 3.5 doesn't work

本问题已经有最佳答案,请猛点这里访问。

我是Python的新手,在开发D&D骰子程序时遇到了一些问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import random  

print("Hi,here you can roll all D′n′D Dice′s!")  
dice=input("What dice do u want?D4,D6,D8,D10,D12,D20 or D100?")  

if dice=="D4" or"d4":  
    print(random.randint(1,4))  
elif dice=="D6" or"d6":  
    print(random.randint(1,6))  
elif dice=="D8" or"d8":  
    print(random.randint(1,8))  
elif dice=="D10"or"d10":  
    print(random.randint(1,10))  
elif dice=="D12"or"d12":  
    print(random.randint(1,12))      
elif dice=="D20"or"d20":  
    print(random.randint(1,20))  
elif dice=="D100"or"d100":  
    print(random.randint(1,100))  
else: print("No?Ok!")

当我运行程序并输入骰子数目时,它总是输入第一个if语句。


你想写:

1
if dice=="D4" or dice=="d4":

而不是:

1
if dice=="D4" or"d4":

"d4"本身具有(true)布尔值,因为它不是空字符串。