Python 函数 returns None。不太明白为什么

Python function returns None. Don't quite understand why

import random

def diceroll():
    x = random.randrange(1, 6)
    print(x)
    repeatroll()

def repeatRoll():
    roll = input(print("Would you like to roll again?"))

    if roll.upper()=="Y":
        return diceroll()
    elif roll.upper()=="N":
        return print("You have chosen not to roll again")
    else:
        return print("Invalid input")

    return roll



repeatRoll()

任何人都可以向我解释为什么代码要求输入后 returns None 吗?

我一直以为是因为没有return功能

我完全糊涂了,我觉得答案很明显,但我不太明白。

不胜感激,谢谢。

可能是因为 print 语句没有 return python 中的任何内容,或者只是说 print 语句的 None 类型为 return。

print() 总是 return None

It doesn't return any value; returns None.

由于您在 input() 中调用了 print()。print() returns none 被 input()

作为输入

使用:

print("Would you like to roll again?")
roll = input()

您的代码需要稍作修改:

尝试使用此代码段

在 diceroll() 中调用 repeatRoll() 将不起作用,因为它们不在同一范围内。而且你的输入格式也不对

import random

def repeatRoll():
    roll='Y'
    while(roll=='Y'):
        print("Would you like to roll again?")
        roll = input()
        if roll.upper()=="Y":
            diceroll()
        elif roll.upper()=="N":
            return print("You have chosen not to roll again")
        else:
            return print("Invalid input")


def diceroll():
    x = random.randrange(1, 6)
    print(x)


repeatRoll()

希望对您有所帮助:")