2017-09-11 47 views
-3
def main(): 
    get_value =get_display_info('5 6 0','7 0 0 0 5') 
    print(get_value) 

def get_display_info(dice_to_roll_again_str, dice_set_aside_str): 
    length1 =len(dice_to_roll_again_str) 
    d = dice_set_aside_str 
    if dice_set_aside_str == None: 
    return 0 
    else : 
    return len(dice_set_aside_str) 
    if length1 and dice_set_aside_str > 0: 
    return "(Dice to roll again:" + str(dice_to_roll_again_str) +','+ 
       "Dice set aside:" + str(d) + ')' 
    elif length1 > 0: 
    return "(Dice to roll again:" + str(dice_to_roll_again_str) + ')' 
    elif dice_set_aside_str > 0: 
    return "(Dice set aside:" + str(d) + ')' 

爲什麼我的程序在達到這個語句時停止執行?執行程序時出錯python

if length1 and dice_set_aside_str > 0: 
+0

你好阿德里安,你能詳細解釋一下你想要什麼,並解釋你的項目,所以我們給你的項目和代碼的最好主意,因爲你是python中的新手,你把第二次這個問題放在stackoverflow中。 –

+0

你第一次把這個問題,https://stackoverflow.com/questions/46108421/how-do-execute-my-program-if-it-encounter-a-none-in-its-parameter-in-python/46108894#46108894 –

+0

該程序實際上是一個卡在泥的遊戲,其中dice_value是隨機產生的1到6之間,這是我的任務的一部分,我只需要填寫空def函數,而無需修改def main函數。我的任務狀態是,對於這個特定的問題,我需要獲取參數的長度,它可能在其參數中沒有遇到任何問題。因爲算法太長,很難顯示和詳細解釋。 – Adrian

回答

0

您的代碼將這個塊後無條件退貨:

def get_display_info(dice_to_roll_again_str, dice_set_aside_str): 
    length1 =len(dice_to_roll_again_str) 
    d = dice_set_aside_str 
    if dice_set_aside_str == None: 
    return 0 
    else : 
    return len(dice_set_aside_str) 
+0

我應該如何添加第二個' if語句「之後。我之所以沒有將它包含到dice_set_aside_str中,是因爲有一段時間它的參數中沒有遇到任何錯誤 – Adrian

+0

將'else'語句放在塊的末尾,並將'if'與「elif」聲明(我刪除了一個例子,因爲它在評論中是完全混亂的)。 if - elif - else語句有點像來自某些其他語言的「select case」或「case」。 這有幫助嗎? – oneindelijk

0

你好阿德里安,

解決方案

試試這個下面的代碼,

def main(): 
    get_value =get_display_info('5 6 0','7 0 0 0 5') 
    print "Value : ",get_value 

def get_display_info(dice_to_roll_again_str, dice_set_aside_str): 

    length1 = len(dice_to_roll_again_str) 
    d = dice_set_aside_str 

    if dice_set_aside_str == "": 
    return 0 
    else : 
    return len(dice_set_aside_str) 

    if length1 and dice_set_aside_str > 0: 
    return "(Dice to roll again:{}".format(str(dice_to_roll_again_str))+",Dice set aside:{}".format(str(dice_set_aside_str))+")" 
    elif length1 > 0: 
    return "(Dice to roll again:{}".format(str(dice_to_roll_again_str))+")" 
    elif dice_set_aside_str > 0: 
    return "Dice set aside:{}".format(str(dice_set_aside_str))+")" 

# Call the main() function 
main() 
# Call and Print get_display_info() function. 
print "Display information : ",get_display_info("mayur","vora") 

我希望我的回答很有幫助。
如果有任何查詢請這麼評論。