簡體   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