函数中使用/不使用参数之间的区别?

时间:2019-03-18 19:17:03

标签: python

下面的代码确定数字是否为质数。

如果我执行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!')

1 个答案:

答案 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()会正常工作。