(Python)randint如果/ else错误

时间:2018-02-09 19:32:29

标签: python

我正在运行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创建数字零,它将只打印一些东西。因此它有四分之一的机会打印“零”,其余的则不打印。

我显然是个白痴,错过了一些非常简单的东西,但是......

3 个答案:

答案 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")