繁体   English   中英

如果声明不发生

[英]If statement doesn't take place

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

您第二if如果将进入diff是比较大的level 但是,即使输入了它,它实际上也不会做任何事情:

if extra < 0:   
    for chance in xrange(extra):
        bag.append("Flaw")
        bag.append("Fail")
        bag.append("Backlash")

xrange函数将为负值生成一个空的“列表”(实际上不是列表,如xrange文档所述 ),即为负。

它不会被忽略,但是当您在xrange(extra)上运行for循环时, extra为负,那么显然此循环会立即终止。

PS:您可能想改用xrange(-extra) ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM