Dieses Programm nehme tun 1000 Primzahlen zu finden und sie in eineFunktion hält die gleiche Sache
Liste packen Hier ist der Code:
num = raw_input('enter a starting point')
primes = [2]
num = int(num)
def prime_count(num):
if num % 2 == 0: #supposed to check if the number is divided by 2 evenly
num = num +1 #if it is, then add 1 to that number and check again
return num
elif num % num == 0:
primes.append(num) #supposed to add that prime to a list
num = num + 1 #add 1 and check again
return num
while len(primes) <= 999:
prime_count(num)
Also, was eigentlich passiert, wenn ich es laufen: es fragt mich raw_input und geht dann verschiedene Dinge je nachdem, was ich als Eingabe wählen:
- Wenn ich eine erstklassige wählen, lassen sie uns 3 sagen, es läuft und fügt 999 von 3s auf der Liste anstelle der Zugabe es nur ein t ime und gehen auf 4
- versuchen Wenn ich ein Non-Prime wählen, lassen Sie uns sagen, 4, es ist nur bricht, danach habe ich nicht einmal eine Liste ausdrucken können
Was mache ich falsch?
UPDATE: Ich reparierte es, aber wenn ich laufe es mit diesem ich erhalte einen Fehler (Typeerror: nicht unterstützte Operandtyp (e) für%: 'NoneType' und 'int')
number = raw_input('enter a starting point')
primes = [2]
number = int(number)
def prime_count(x):
if x % 2 == 0: #supposed to check if the number is divided by 2 evenly
number = x +1 #if it is, then add 1 to that number and check again
return number
else:
for i in range(3, x-1):
if x % i == 0:
primes.append(x) #supposed to add that prime to a list
number = x + 1 #add 1 and check again
return number
while len(primes) <= 999:
number = prime_count(number)
Sie scheinen den Unterschied zwischen lokalen und globalen Variablen oder die Funktionsweise von Funktionsparametern und Rückgabewerten nicht zu verstehen. Um zu helfen, schlage ich vor, dass Sie alle Variablen außerhalb von 'prime_count' umbenennen. –
Sie müssen sich in Python über die Gültigkeitsbereichsregeln informieren. 'num' wird als lokale Variable in' prime_count' behandelt. Was ist der Sinn der Benutzereingabe hier überhaupt? –