我一直在测试我的一些代码,由于某种原因我的if语句被忽略了。第一个if语句有效但第二个if语句没有,我已经尝试将其更改为elif,但仍然无效。提前谢谢。
import random
diff = input("What is the ritual difficulty? ")
level = input("How many ritual levels do you have that pertain to this ritual? ")
bag = []
for success in xrange(10):
bag.append("Success")
bag.append("Flaw")
bag.append("Fail")
extra = level - diff
if extra >= 1:
extra = extra / 2
int(extra)
for chance in xrange(extra):
bag.append("Success")
if extra < 0:
for chance in xrange(extra):
bag.append("Flaw")
bag.append("Fail")
bag.append("Backlash")
print bag
random.shuffle(bag)
outcome = bag.pop()
print "The outcome of the ritual is: ", outcome
答案 0 :(得分:3)
如果if
大于diff
,则会输入第二个level
。但是,即使它确实输入了它也不会有所作为:
if extra < 0:
for chance in xrange(extra):
bag.append("Flaw")
bag.append("Fail")
bag.append("Backlash")
xrange
函数会产生一个空的“列表”(它实际上不是一个列表,正如documentation for xrange
解释的那样)为负值,即不会将任何内容附加到包中。
答案 1 :(得分:0)
不会被忽略,但是当for
上xrange(extra)
循环extra
且xrange(-extra)
为负时,显然此循环会立即终止。
P.S。:您可能想尝试{{1}}而不是......