我正在运行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时,它才会打印一些东西。因此,它有1/4的机会打印"Zero",其余的则不打印。
我显然是个傻子错过了一些非常简单的东西但是..。
发布于 2018-02-10 03:34:46
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将使代码在满足任何条件后/是否满足任何条件时停止检查!
发布于 2018-02-10 03:36:41
Yuu希望删除这些额外的缩进,并使所有的if语句处于相同的缩进级别。使用"elif“而不是if也会更好。
if test == 0:
print(0)
elif test == 2:
print(2)
......
......
else:
print("junk")发布于 2018-02-10 03:39:31
问题是如果没有绘制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")https://stackoverflow.com/questions/48712889
复制相似问题