Python 如果在参数中遇到None,如何执行程序?

Python 如果在参数中遇到None,如何执行程序?,python,python-3.x,Python,Python 3.x,我希望以某种方式执行def函数,如果它的参数中遇到None,它将返回一个空格,否则它将测量其长度 def get_display_info(dice_to_roll_again_str, dice_set_aside_str): length1 =len(dice_to_roll_again_str) if dice_set_aside_str == None: return ' ' else : length2 =len(dice_

我希望以某种方式执行def函数,如果它的参数中遇到None,它将返回一个空格,否则它将测量其长度

def get_display_info(dice_to_roll_again_str, dice_set_aside_str):   
    length1 =len(dice_to_roll_again_str)
    if dice_set_aside_str == None:
        return ' '
    else :
        length2 =len(dice_set_aside_str)
    if length2 != None:
        if length1 and length2 > 0:
            return "(Dice to roll again:" + str(dice_to_roll_again_str) +','+ "Dice set aside:" + str(dice_set_aside_str) + ')'
        elif length1 > 0:
            return "(Dice to roll again:" + str(dice_to_roll_again_str) + ')'
        elif length2 > 0:
            return "(Dice set aside:" + str(dice_set_aside_str) + ')'
参考文献 1。什么是空关键字或无关键字

2。format()函数

3。为初学者学习Python
-(最好的开始) -
-
-
-(编码状态)
-(Python内置函数)

你的失误 检查字符串长度时,请不要与None进行比较,而是与
null,“,”,isEmpty()…等不同的函数进行比较

暗示 您正在编写所有的条件false,而不是任何适当的条件,因此请编写适当的条件并使用编码标准,以便为阅读python文档提供更强大的程序参考

解决方案 我给出解决方案,但不改变所有条件,因为我不知道你的项目和你写的东西

def get_display_info(dice_to_roll_again_str, dice_set_aside_str):   
      if dice_set_aside_str == '':
        return ' '
      else :
        length2 =len(dice_set_aside_str)

      if dice_to_roll_again_str == '':
        return ' '
      else :
        length1 =len(dice_to_roll_again_str)

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

print get_display_info("vora","m")

无、正确和错误测试均使用文字进行:

if dice_set_aside_str is not None:
    return 0
在布尔测试中,没有任何项的任何内容都将解析为
False
。空字符串也是如此,无字符串也是如此。这一点我们可以结合:

if not dice_set_aside_str:
    return 0
else:
    return len(dice_set_aside_str)

我不了解.format,因为我是编程新手。不管怎样,我测试了它,它只适用于一个参数,但当我尝试在程序中实现时,它会显示缩进错误Hello Adrian,我在我的答案中添加了更多链接,所以首先阅读本教程,以便轻松理解或任何不理解的函数,所以在google上搜索它是最好的答案…缩进错误是,当您编写程序时,任何地方/行空间问题。所以,请阅读本文档,以便您更了解我更新了答案,请检查并尝试执行代码。我希望它运行成功。