相关疑难解决方法(0)

为什么我的递归python函数返回None?

我有这段自称的代码:

def get_input():
    my_var = input('Enter "a" or "b": ')

    if my_var != "a" and my_var != "b":
        print('You didn\'t type "a" or "b". Try again.')
        get_input()
    else:
        return my_var

print('got input:', get_input())
Run Code Online (Sandbox Code Playgroud)

现在,如果我输入"a"或"b",一切都很好.输出是:

Type "a" or "b": a
got input: a
Run Code Online (Sandbox Code Playgroud)

但是,如果我输入其他内容然后输入"a"或"b",我会得到:

Type "a" or "b": purple
You didn't type "a" or "b". Try again.
Type "a" or "b": a
got input: None
Run Code Online (Sandbox Code Playgroud)

我不知道为什么get_input()要回来None,因为它应该只返回my_var.print语句显示None正确的值,但函数由于某种原因不返回该值.

python recursion return function

46
推荐指数
2
解决办法
7万
查看次数

Python:函数始终返回None

我有一些基本上看起来像这样的Python代码:

my_start_list = ...

def process ( my_list ):
    #do some stuff

    if len(my_list) > 1:
        process(my_list)
    else:
        print(my_list)
        return my_list

print(process(my_start_list))
Run Code Online (Sandbox Code Playgroud)

奇怪的是:print(my_list)打印出正确的内容.但是,打印函数返回值的第二个print语句始终打印"None".即使我用return("abc")替换正常的return语句,它仍然是None.

由于变量的内容在return语句之前似乎是正确的一行,我不知道从哪里开始调试.是否有可能导致此问题的常见问题?

python return

9
推荐指数
2
解决办法
1万
查看次数

Python函数在递归后返回None

我无法弄清楚为什么这个python函数返回None,如果它递归调用自己.

这是我解决项目欧拉问题的一部分.无论如何我已经以更好的方式解决了这个问题,但是这仍然让我烦恼,因为函数似乎工作正常 - 它似乎知道我想要返回的变量的值.

def next_prime(previous):
    if previous % 2 == 0:
        candidate = previous + 1
    else:
    candidate = previous + 2
    print "trying", candidate
    prime = True
    for div in range(2,candidate//2,1):
        if candidate % div == 0:
            prime = False
            print candidate, "is not prime - divisible by", div
            next_prime(candidate)
            break
    if prime is True:
        print candidate, "is prime"
        #return candidate

last = 896576
print "After", last, ", the next prime is..."
next_prime(last)
Run Code Online (Sandbox Code Playgroud)

这给出了:

After 896576 , the …
Run Code Online (Sandbox Code Playgroud)

python recursion

3
推荐指数
1
解决办法
1955
查看次数

标签 统计

python ×3

recursion ×2

return ×2

function ×1