#!/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)
运行它,在输入2个值后,我得到一个NameError:name' x'没有定义。 它是在没有getv()函数的情况下,但是我将它包含在输入变量中进行测试检查,以便它们只包含int对象或str并且只包含数字。没有getv()函数,它可以顺利运行。为什么函数不返回值?
答案 0 :(得分:4)
当您致电getv
时,您需要将这些变量实际分配给某些人:
x, y = getv()
此外,您无法在函数中执行两次返回,请将其更改为:
return x, y
答案 1 :(得分:3)
您正在调用getv()
而未将返回值分配给任何内容。你可能想做这样的事情
x = 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()
注意:如果您要将这些值用于数学运算,则应将它们转换为int()