我正在运行Python 3.6.4并且无法使用randint函数。在尝试创建一段简单的代码来创建随机数时,为每个数字打印一个不同的响应。 我目前的代码如下:
from random import *
test = randint(0, 3)
if test == 0:
print("Zero")
if test == 1:
print("Number One")
if test == 2:
print("Number Two")
if test == 3:
print("Number Three")
唯一的问题是,如果randint创建数字零,它将只打印一些东西。因此它有四分之一的机会打印“零”,其余的则不打印。
我显然是个白痴,错过了一些非常简单的东西,但是......
答案 0 :(得分:2)
from random import *
test = randint(0, 3)
if test == 0:
print("Zero")
elif test == 1:
print("Number One")
elif test == 2:
print("Number Two")
elif test == 3:
print("Number Three")
你的所有if语句都是嵌套的,所以如果数字不是0,那么它们永远不会被触及!
此外,虽然没有必要,但您可以将后续的if
语句更改为elif
语句。即使您满足第一个条件,您的代码也会检查每个if
语句。如果符合任何条件,使用elif
将使代码停止检查!
答案 1 :(得分:0)
Yuu想要删除那些额外的缩进,并将所有if语句放在同一缩进级别。使用“elif”而不是if。
也会很好if test == 0:
print(0)
elif test == 2:
print(2)
......
......
else:
print("junk")
答案 2 :(得分:0)
问题是如果没有绘制0,则其余代码都不会运行;包括其他检查。想一想:
test = randint(0, 3)
#Everything under this, including the other checks
# will only run if test == 0.
if test == 0:
print("Zero")
if test == 1:
print("Number One")
您需要使用elif
:
if test == 0:
print("Zero")
elif test == 1: # This is checked if the first check fails
print("Number One")