为什么不应该';我把这句话;否则";与“同一级别”;如果;用Python
当我把else与if放在同一级别时,当我调用我的函数时,程序不起作用。(jupyter笔记本中的小星星)。但是,当我把“其他”拖到后面一级时,一切都很好。函数的作用是返回给定数之前存在的素数的个数。这是我的密码:为什么不应该';我把这句话;否则";与“同一级别”;如果;用Python,python,jupyter-notebook,jupyter,Python,Jupyter Notebook,Jupyter,当我把else与if放在同一级别时,当我调用我的函数时,程序不起作用。(jupyter笔记本中的小星星)。但是,当我把“其他”拖到后面一级时,一切都很好。函数的作用是返回给定数之前存在的素数的个数。这是我的密码: def count_primes(num): primes = list(range (3,num,2)) digit = 3 if num < 2: return 0 while digit <= num:
def count_primes(num):
primes = list(range (3,num,2))
digit = 3
if num < 2:
return 0
while digit <= num:
for x in range (3, digit, 2):
if digit % x == 0:
primes.remove(digit)
digit += 2
break
else:
digit += 2
primes.insert(0,2)
print (primes)
return len(primes)
def count_prime(num):
素数=列表(范围(3,num,2))
数字=3
如果num<2:
返回0
而digit则是因为您不想在for循环中获取else。你只需要返回一次素数
例如,如果我制作程序只是为了检查一个数字是否为素数-
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
注:如果数字是1或更少,我还没有包括在内
我不想打印数不是素数的几次。因为如果我在循环中放入else,它将在每次if失败时运行。修复上面代码中的缩进,该缩进应用于
的,而不是,如果答案是“因为这使它出错”。我编辑并修复了缩进@反社会是这样的:for循环在“if”语句不为真时结束,然后跳回while循环并执行“else”而不是“for”循环,然后一直到while循环的顶端。对不起,我是编程新手,试图自学,因此,有时我会感到困惑,因为它总是从上到下,所以请记住,如果你在另一个循环中创建了两个循环,那么第一个循环将运行一次,而你将进入第二个循环,它将运行直到提到的条件,然后第一个循环将递增,并且该过程将再次重复。你会通过一些练习得到它的。