【发布时间】:2022-11-21 04:49:26
【问题描述】:
每次我尝试在函数 modulus 中使用变量 i 时,它都会将该变量设置为等于 0。
我尝试使用代码行:newi = i,但这行不通,因为i 已经等于 0。我在模数函数中尝试了 i = i,但这也行不通。我试过在程序顶部同时定义 i 和 a,但没有用。我期望通过运行 primeChecker 函数来更改 i,但值变为 0。我不知道为什么它是 0,因为我没有在我的代码中的任何地方设置 i = 0。
代码:
number = input("How many numbers? ")
intnumber = int(number)
modulus = {}
modulusCounter = 0
exceptionPrime = [2]
prime = [3, 5, 7]
print("lengthprime", len(prime))
def modulus(i, a):
print("i:", i)
print(prime)
print("modulus", prime[a])
i % (prime[a])
def primeChecker(i, a, prime, modulusCounter):
print("2 check")
print("a value: ", a)
print("prime: ", len(prime))
for a in range(len(prime)):
print("3 check")
print("a: " + str(a))
print("lengthprime: ", len(prime))
if modulus(i,a) == 0:
i += 2
modulusCounter += 1
print("1 check")
else: #elif modulus(a,i) != 0:
a += 1
print("2 check")
if a == len(prime) and modulusCounter == 0:
print("Prime: ", i)
print("3 check")
prime.append(i)
i += 1
modulusCounter = 0
a = 0
i = 3
a = 0
for i in range(intnumber):
print("1 check")
primeChecker(i, a, prime, modulusCounter)
print(prime)
【问题讨论】:
-
modulus的最后一行没有做任何有用的事情。i本身没有改变,您也不需要对表达式的值做任何事情。 -
modulus没有返回任何东西 -
肯定是第一次通过:
for i in range(intnumber)这一套i=0
标签: python python-3.x