Python 为什么';t此函数似乎正在返回任何值

Python 为什么';t此函数似乎正在返回任何值,python,function,return,Python,Function,Return,运行此命令,输入这两个值后,会得到一个NameError:未定义名称“x”。 它最初没有getv()函数,但我包含它是为了对输入变量进行测试检查,以便它们仅为int对象或str,并且只包含数字。如果没有getv()函数,它的工作会很顺利。为什么函数不返回值 您正在调用getv(),而没有将返回值赋给任何对象。你可能想做这样的事情 #!/usr/bin/python3 def isprime(n): if n == 0 or n == 1: return False

运行此命令,输入这两个值后,会得到一个NameError:未定义名称“x”。 它最初没有getv()函数,但我包含它是为了对输入变量进行测试检查,以便它们仅为int对象或str,并且只包含数字。如果没有getv()函数,它的工作会很顺利。为什么函数不返回值

您正在调用
getv()
,而没有将返回值赋给任何对象。你可能想做这样的事情

#!/usr/bin/python3

def isprime(n):
    if n == 0 or n == 1:
        return False
    for x in range(2, n):
        if n % x == 0:
            return False
    else:
        print(n, "is a prime number")
        return True
def getv():
    x = input("Between what 2 number do you want to check for primes?\n>>\t")
    y = input("Second number.\n>>\t")
    return x
    return y
getv()  
z = int(x) - 1

for n in range(int(z),int(y)):
    isprime(n)
或者可能

x = getv()

注意:如果要将这些值用于数学,则应使用
int()

将它们转换为整数。在调用
getv
时,需要实际将这些变量分配给某些对象:

def getv():
    x = input("Between what 2 number do you want to check for primes?\n>>\t")
    y = input("Second number.\n>>\t")
    return x, y

x, y = getv()
此外,您不能在函数中执行两次返回,请将其更改为:

x, y = getv()

您确定错误来自
getv()
函数吗?它看起来像是从行
z=int(x)-1
来的,因为
x
那时还没有定义。它返回一个值,但您没有使用它。
return x, y