【问题标题】:Purpose of assigning None to variables将 None 分配给变量的目的
【发布时间】:2016-02-16 08:43:49
【问题描述】:

我正在查看模拟考试的答案,这是其中一个问题的建议答案:

def multipal(word,n=None):
    for i in range(len(word)):
        if word[:i] == word[i-1::-1]:
            repeat = word[:i]
            if not n:
                no_repeats = len(word)/i
            else:
                no_repeats = n
            if word == repeat * no_repeats:
                return True
    return False

此函数的目的是确定输入单词是否是重复的“n”个回文(从前面读取的单词与从后面读取的单词相同,例如“aza”或“abba”)。例如,multipal('abaaba', 2) 将返回 True,但 multipal('abaaba', 3) 将返回 False


我想知道的是为什么n在原始参数中被分配None,它真的会影响函数的其余部分吗?

【问题讨论】:

    标签: python if-statement nonetype


    【解决方案1】:

    为函数参数赋值使其成为可选参数。因此,您可以在调用函数时将其省略。在您的情况下,您可以调用multipal('babbab'),而n 将获得默认值None(因为它是在函数定义中设置的)。

    至于这对你的功能有何影响,看看n的使用位置就知道了:

    if not n:
        no_repeats = len(word)/i
    else:
        no_repeats = n
    

    因此,如果n 具有虚假值(例如None0),则将使用分配动态重复计数的第一种情况。

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 2021-02-09
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多