如果声明没有发生

时间:2014-02-11 14:48:25

标签: python if-statement

我一直在测试我的一些代码,由于某种原因我的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

2 个答案:

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

不会被忽略,但是当forxrange(extra)循环extraxrange(-extra)为负时,显然此循环会立即终止。

P.S。:您可能想尝试{{1}}而不是......