2017-09-11 45 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") 

我希望我的回答很有帮助。
如果有任何查询请这么评论。