Brauche hilfe bei Phyton?
Moin.Brauchmal kurz hilfe von wahren profis.Habe vor ca.2 tagen mit programmieren angefangen und spiele aktuell bissl rum zum üben.Deswegen hab ich mal eine prüfungs noten übersicht gemacht wie son aushang.So... fangen wir mal an....
Programmiersprache:
-Phyton
Equipment:
-Androit handy .xiaomi redmi 11pro.
-Windows xp ohne wlan...
Jetziger code: (als bilder weil es sonst mehr als 3000 zeichen sind)
___________________________________________
Ziel:
Möchte das ganze etwas komprimentieren.
Also so gestalten das man auf das Wort Klasse drücken muss und das daduch unter dem sort die namen+noten+und ja/nein angezeigt wird.vorher sollen die da nicht zusehen sein.Bsp.ungefähr
Klasse 10 A \/
Kennt jemand nh methode dafür ?hab mir schon eine ki dazu geholt aber die kommt gefühlt nicht drauf klar.Die sagt immer jup kein ding mach ich dir,aber bricht mitten drimn immer ab.
1 Antwort
Dass man auf das Wort Klasse drücken muss und das daduch unter dem sort die namen+noten+und ja/nein angezeigt wird.
Wenn du print(...) ausführst, dann wird der angegebene Text einfach nur in einem Terminal ausgegeben.
Ein solches Terminal hat in der Regel keine Funktionalität, die es ermöglicht, einen Klick zu erfassen - Schon garnicht, auf welche Stelle bzw. auf welches Wort man geklickt hat. Eventuell könnte man die Koordinaten des Klicks feststellen und anhand der relativen Koordinaten des Textes den angeklickten Text berechnen; oder einen Screenreader verwenden. Aber das wäre zu kompliziert. Und in so einer App geht das vermutlich auch garnicht.
Realistisch und sinnvoll wäre in diesem Fall folgendes:
Option A | Programm mit Benutzeroberfläche
Verwende eine GUI-Bibliothek wie Tkinter oder PyQT und erstelle damit ein Programm mit echter Benutzeroberfläche.
Eine solche Bibliothek bietet dir klickbare Buttons, die Möglichkeit Texte ein- und auszublenden, und vieles mehr.
Ich bezweifle aber, dass sowas auf der App in deinem Handy läuft, aber auf dem PC auf jeden Fall.
Für einen Anfänger könnte das aber etwas schwer sein.
Option B | Kommandozeile
Biete dem Nutzer bestimmte Optionen an oder stelle eine Frage, und erfasse per input(...) eine text-basierte Antwort.
Beispielsweise:
klasse = input("Welche Klasse möchtest du anzeigen: ")
Das Programm pausiert an dieser Stelle und wartet auf eine Eingabe des Nutzers. Dieser kann nun Beispielsweise "9A" eingeben und Enter drücken, woraufhin in der Variable klasse der Text "9A" gespeichert wird.
Anschließend kannst du per if-else den zugehörigen Text ausgeben:
if klasse == "9A":
print("-- Klasse 9A --")
print("Schüler | Note | Bestanden")
print("Elias | 1 | Ja")
print("Simon | 5 | Nein")
else if klasse == "9B":
print("-- Klasse 9B --")
print("Schüler | Note | Bestanden")
print("Torsten | 2 | Ja")
print("Günter | 3 | Ja")
else if klasse == "9C":
...
Ich denke diese Option wäre am besten.
Sie ist sehr leicht zu implementieren und daher super für Anfänger geeignet. Außerdem lernst du dadurch if-else und input(), zwei grundlegende Operationen / Kommandos, die du sicher noch öfter brauchen wirst.
Ich hoffe mal das Terminal in der App ist interaktiv und unterstützt das Einlesen von Text. Manche Terminals können nämlich garnichts anderes als Text ausgeben. Wenn das der Fall ist solltest du dir eine andere App suchen.
Formatier' das bitte mal als Code, damit ich sehen kann, ob die Einrückung stimmt. Das Symbol dazu ist das hier </>.
Und welchen Fehler bekommst du denn?
Klasse =Input("Welche Klasse")
if Klasse == "10A":
print("--Klasse 10A ---")
print()
print(James .....
print("_________________")
else if Klasse == "10B":
print("---Klasse 10B---")
print()
print("sophia....
Und der fehler...
ich zitiere mal.
"Ooop...
File "/data/user/0/
com.kvassyu.coding.py/files/default.py",
line 48 else if Klasse == "10B" : Λ
SyntaxError: invalid syntax"
Aber dann nach dem bestätigen die klassen nummer ändern geht nicht was?
Kannst den User ja nochmal fragen, ob er einer weitere Klasse sehen möchte
Ah stimmt, elif anstatt else if, sorry!
Und das input musst du klein schreiben, weil soweit ich weiß achtet Python auf Groß- und Kleinschreibung
Aber hast du wohl eh schon rausgefunden jetzt ^^
Noch ein Hinweis: Variablennamen, beispielsweise das „klasse“, schreibt man immer klein.
Ist so Konvention.
Jo danke👌.aber sagen wir mal ich würde eine weitere if code zeile hinzufügen würde die erste oben auf den bereich beschränkt werden bis zu dem neuen code.sprich 1 klasse.
Und würde ich den neuen code dann nach weiter unten packen würde man alle programme die erst durch das suchen angezeigt werden sollten direkt sehen.Das dilema hier wäre also das
Klasse =input("Klasse:")
if klasse == "11D":
print(" -----Klasse 11D-----")
print(" Schüler/innen:
Noten: Bestanden:")
print("_________________________________________")
print("Killua und Gon 1 Ja")
...
Regulär würde ja jz die nächste klasse kommen mit
elife Klasse == "10A":
...
Aber würde man ja jz das elif durch eine n neuen if code ersetzen wäre der oben auf klasse 11D festgestellt .
Ich versteh die Frage nicht, was genau meinst du?
Was ist das Problem daran, dass sich das if klasse == "11D" nur auf die Ausgabe der Klasse 11D beschränkt?
Wenn du den Nutzer nochmal fragen möchtest, ob er eine weitere Klasse ausgeben will, dann musst du dieses ganze if-elif Konstrukt einfach kopieren und unter der Frage (die du wieder mit input(…) machst) ein weiteres mal einfügen.
Oder du lernst Schleifen / Loops :D
Lol....es klappt...hatte wohl nen denk fehler.Naja danke dir 👍
Das geht aber nicht nach oben oder?das sobald man 2 erreicht hat nicht auf 1 wieder kann.ist beu mir zumindest grad so
1.
2.
3.
Der Computer geht den Code von oben nach unten Zeile für Zeile durch. Es geht also nicht wieder nach oben, nein.
Man kann höchstens wieder an den Anfang springen, indem man seinen Code in eine Schleife einfügt. Erreicht dein Computer das Ende der Schleife, so wird wieder an ihren Anfang zurückgesprungen.
Hab jz:
Classes = ("11D", "10A", "10B", "10C",)
user_class = input("Enter the class you want to see results for: ")
while user_class not in classes:
print("Invalid input. Please enter a valid class name.")
user_class = input("Enter the class you want to see results for: ")
Yo danke dir👌mit input hab ich schonmal gearbeitet ging in richtung:
Name =input("James?")
print("Hallo " + Name +",Wie gehts?")
Aber kannste so if else kurz erklären?
Ich übersetz es dir einfach mal auf deutsch, ich denke dann verstehst du's:
Wenn <Bedingung 1> zutrifft,
mache ...
Andernfalls, wenn <Bedingung 2> zutrifft,
mache ...
Ansonsten,
mache ...
Das wäre
if <Bedingung 1>:
...
else if <Bedingung 2>:
...
else:
...
Der Computer schaut also zuerst, ob Bedingung 1 zutrifft, und falls ja, führt er den darunter angegebenen Code aus. (Diesen Code musst du in Python übrigens einrücken, wie ich es in meinem Beispiel gemacht habe. Anhand der Einrückung stellt Python nämlich fest, was alles zum If gehört und wo es endet)
Andernfalls, also nur falls die Bedingung beim ersten if nicht zutraf, schaut er, ob die Bedingung beim else if zutrifft, in dem Fall Bedingung 2. Falls ja führt er den Code darunter aus. Und so weiter, da können auch noch weitere else-ifs folgen. Er geht also nacheinander das if und die zugehörigen else if durch und führt den Code unter der ersten Bedingung aus, die davon zutrifft.
Traf keine der Bedingungen zu, so wird der Code unter dem else ausgeführt, falls dieses vorhanden ist.
Beispiel:
if x < 3:
print("a")
else if x < 5:
print("b")
else if x == 5:
print("c")
else:
print("d")
Ausgabe bei x = 5:
c
Ausgabe bei x = 2:
a
Ausgabe bei x = 7:
d
Versuch mal, jedes dieser Beispiele nachzuvollziehen, indem du den Code schritt für schritt durchgehst, und x einsetzt.
Habs jz so gemacht.
Klasse =Input("Welche Klasse?")
if Klasse == "10A":
print(" ------Klasse 10A -----")
...
else if Klasse == "10B":
print(" -----Klasse 10B-----")
Aber kriege durch gehend eine fehler meldung bei der 'elsen if 'Reihe