Python 为什么';t此函数似乎正在返回任何值
运行此命令,输入这两个值后,会得到一个NameError:未定义名称“x”。 它最初没有getv()函数,但我包含它是为了对输入变量进行测试检查,以便它们仅为int对象或str,并且只包含数字。如果没有getv()函数,它的工作会很顺利。为什么函数不返回值 您正在调用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
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