Anfänger Lösung - funktioniertWie zu verwenden reduzieren ohne Lambda
Hallo Leute. Es ist mir gelungen, einen Code zu schreiben, der true zurückgibt, wenn alle Einträge in einer Liste Primzahlen sind. Ich denke, dass dies ein guter Kandidat ist für „reduzieren“ - bis jetzt habe ich nur in Verbindung verwendet habe, mit Lambda reduziert - ist es möglich, Lambda zu vermeiden und direkte Funktion
def is_prime(list):
np = "Prime"
for n in list:
if n < 2:
np = "NonPrime"
print np
else:
for i in range(3, n):
if n % i == 0:
np ="NonPrime"
print np
return np
x = is_prime([3,5,13])
print x
alternativ reduziert Verwendung verwenden
def is_prime_no(x): #"True" represents Prime
np = "True"
if x < 2:
np = "False"
else:
for i in range(3, x): #int(math.sqrt(n))
if x % i == 0:
np ="False"
return np
Druck is_prime_no (12)
def prime_check(a,b):
if is_prime_no(a) == "True" and is_prime_no(b) == "True":
return "True"
else:
return "False"
print "prime check result ", prime_check(13,17)
Von hier aus geht nicht
values = [13,17,2,19]
def list_prime_check(values):
return reduce(prime_check, int(values))
print "Checking that all items in list are prime ", list_prime_check([0, 37, 40, 100])
Fehlermeldung:
int Argument String sein muss oder int Liste nicht
Entschuldigungen für frühere Post - aus Versehen ohne abgeschlossene geschickt
Was erwarten Sie von 'int (values)'? Wie die Fehlermeldung sagt, können Sie 'int()' nicht auf einer Liste aufrufen, und die Elemente in 'values' sind bereits ganze Zahlen. –
"Code, der true zurückgibt, wenn _all_ Elemente in einer Liste Primzahlen sind" Warum denken Sie, dass 'reduce' eine gute Wahl dafür wäre, und nicht, nun, [' all'] (https: //docs.python .org/3.5/library/functions.html # alle)? –