2017-09-11 16 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) + ')' 

なぜ私のプログラムはこの文に達した時点で実行を停止しますか?プログラムの実行中にエラーが発生する

if length1 and dice_set_aside_str > 0: 
+0

こんにちはAdrian、あなたはあなたが望むものを説明してプロジェクトを説明することができるので、あなたはプロジェクトとコードに関して最善を尽くします。なぜなら、あなたはPythonで新しく、この質問を2回目の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

プログラムは実際にはmiceゲームでスタックされていますが、dice_valueは1から6の間でランダムに生成されますが、def main関数を変更せずに空のdef関数を入力するだけです。私の割り当て状態は、この特定の問題については、私はパラメータの長さを取得する必要があり、何もそのパラメータに遭遇する可能性があります。それは、アルゴリズムが長すぎるので詳細に説明して説明することは難しいです – 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にnoneを含める理由です。 – 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") 

私の答えが役に立つと願っています。
質問があればコメントしてください。

関連する問題