def prime_check(num):
"""
Function to check if a number is prime
"""
for n in range(2,num):
if num%n == 0:
print(num, "is not prime")
break
else:
print(num, "is not prime")
请原谅我,因为我刚刚开始使用 Stack Over Flow,我不知道如何在此处显示语法突出显示。 但是看看上面的代码,当我调用函数并将整数(数字 2(传入函数时,没有结果,同样当我传入数字 21 时,它说 21 是素数, 这是错误的。但是,当使用来自 Udemy 的代码时,它与我的有点相似(缩进除外(,该功能工作正常。我需要帮助了解缩进差异及其工作原因。udemy 代码如下所示。
def is_prime(num):
'''
Naive method of checking for primes.
'''
for n in range(2,num):
if num % n == 0:
print(num,'is not prime')
break
else: # If never mod zero, then prime
print(num,'is prime!')
请注意我自己的代码和他们的代码之间的缩进差异。请我需要了解其中的区别。帮助!!!!!!!!!!
>如果for
循环没有中断,就会发生else
。见文档。
在上面的程序中,当超过range
限制时for
循环的条件失败时,else
语句被执行..即(for
循环检查num
是否可以被n
整除,如果它是可整除的,则返回"Not a Prime Number"
...for
循环条件结束后else
将执行该部分。