下面的代码确定数字是否为质数。
如果我执行def prime(number)
,将得到与def prime()
相同的输出,对于底部的if语句,将得到相同的输出。两者之间有什么区别?
def prime(number):
if number > 0:
for i in range(2, number):
if number % i == 0:
return False
return True
number = int(input('Enter your number:\n'))
if prime(number):
print('Prime Number!')
else:
print('Not Prime Number!')
答案 0 :(得分:0)
之所以可行,是因为如果未在局部作用域中定义变量,则Python将改为获取全局作用域变量(如果要从局部作用域更改全局变量,则应使用语句{ {1}})。您在这些范围之间的名称应该是唯一的,例如:
global my_variable
这是一种更好的做法,现在def prime(local_number): # whatever is fed to our function we'll call "local_number"
if local_number > 0:
for i in range(2, local_number):
if local_number % i == 0:
return False
return True
number = int(input('Enter your number:\n')) # our global variable
if prime(number):
print('Prime Number!')
else:
print('Not Prime Number!')
会出错,而prime()
会正常工作。