Zahl überprüfen ob gerade oder ungerade mit boolean

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Beowolf19
User
Beiträge: 1
Registriert: Mittwoch 22. Mai 2019, 18:33

Hallo,

Ich hab morgen meine Probeklausur in der Programmierung und bis deshalb seit Tagen fleißig am lernen, aber leider fällt mir gerade das Thema "Funktionen" nicht leicht.

Ich habe hier ein Problem bei dieser Aufgabe, ich weiß nicht wie ich es perfekt umsetzen soll:
"Schreiben Sie eine Funktion ist_gerade, die für eine übergebene Ganzzahl bestimmt,
ob diese gerade oder ungerade ist und das Ergebnis in Form eines boolean-Wertes zurückliefert."

Mein Code bisher:

Code: Alles auswählen

def ist_gerade(a): 
    return(bool(a%2==0))
ist_gerade (10)
print (ist_gerade)
Ich verstehe wirklich nicht wie ich diese Aufgabe lösen kann, und natürlich will ich nicht dass mir jemand eine Musterlösung zeigt. Lernen muss ich es ja selber deswegen wäre ich dankbar wenn mir nur jemand erklären kann wie es hier funktioniert :idea:
__deets__
User
Beiträge: 14523
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst entweder den Rückgabewert einem Namen zuweisen, und den dann ausgeben. Oder gleich alles in eines packen -

Code: Alles auswählen

ergebnis = funktionsaufruf(argument)
print(ergebnis)

print(funktionsaufruf(argument))
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

%2 (Modulo 2) liefert 0 oder 1, 0 kann als False und jede andere Zahl als True interpretiert werden
die boolesche Umkehrung erfolgt durch not()
return ist keine Funktion, es benötigt keine Klammern
ist_gerade() ist eine Funktion, zwischen Name und Argument in Klammern gehört kein Leerzeichen, genauso wie bei print()
Was erwartest du als Ausgabe, wenn du das Argument deiner Funktion weglässt?
Ergebnis:

Code: Alles auswählen

def ist_gerade(a): 
    return not(a%2)
print(ist_gerade(10))
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@Beowolf19: Vergleiche, wie == liefern schon einen boolschen Wert, das Umwandeln mit bool ist also überflüssig.

Code: Alles auswählen

def ist_gerade(a): 
    return a%2 == 0

print(ist_gerade(10))

@ThomasL: `not` ist keine Funktion, es benötigt keine Klammern, sollte aber auf jeden Fall ein Leerzeichen zwischen not und Klammer haben.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

@self :shock: :oops: den Lauten hier machen und selber keine Ahnung... au man voll rein getreten :lol:
@Sirius3 Danke dafür das du mich ungestümen Noob immer wieder auf den Boden der Realität zurück holst.
Wieder etwas gelernt und daran erinnert worden, wenn man etwas nicht genau weiß, besser nicht zu laut schreien. :roll:
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten