关于Collat​​z函数的一个简单问题,为什么这是无法访问的代码?

时间:2019-04-30 07:21:53

标签: python-3.x

我是python的新手,当我尝试编写Collat​​z函数时,我发现pycharm向我显示了一行无法访问。我不知道为什么该功能无法运行代码

grepl

2 个答案:

答案 0 :(得分:1)

return语句下相同作用域内的所有代码均无法访问,因为该函数将在此处完成其执行。根据您的情况,您将返回结果,因此无需再次运行该函数以进行打印。只需将其放入一个变量中并使用它即可:

def Collatz(numBer):
        if numBer%2 == 0:
            return numBer//2
        else:
            return 3*numBer+1

print('Please input the number:')
numBer = int(input())
while numBer != 1:
    numBer = Collatz(numBer)
    print(numBer)   

答案 1 :(得分:0)

您好,欢迎来到堆栈溢出!

打印“不可达”的原因是由于打印之前返回。 return结束了控制流,因此忽略了返回后的所有代码。基本上,控制流是这样的(基于您的功能):

“数字被2整除吗?”

“如果是,请给我该数字与2的整数除”。

“否则,请给我3 * + 1”

如果要在返回数字之前打印该数字,最好先将其存储到变量中,然后再返回该变量,如下所示:

def Collatz(numBer):
    if Collatz % 2 == 0:
       value = numBer // 2

    else:
       value = 3 * numBer + 1

    print(value)
    return value