Brauche hilfe bei Phyton?

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.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
Aaajajajajaja 
Fragesteller
 20.04.2023, 02:55

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?

1
MrAmazing2  20.04.2023, 03:57
@Aaajajajajaja

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.

0
Aaajajajajaja 
Fragesteller
 20.04.2023, 08:03

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

0
MrAmazing2  20.04.2023, 08:42
@Aaajajajajaja

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?

0
Aaajajajajaja 
Fragesteller
 20.04.2023, 08:59
@MrAmazing2
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"




0
MrAmazing2  20.04.2023, 18:30
@Aaajajajajaja

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.

0
Aaajajajajaja 
Fragesteller
 20.04.2023, 20:54
@MrAmazing2

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 .

0
MrAmazing2  20.04.2023, 21:37
@Aaajajajajaja

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

0
Aaajajajajaja 
Fragesteller
 20.04.2023, 21:49
@MrAmazing2

Lol....es klappt...hatte wohl nen denk fehler.Naja danke dir 👍

1
Aaajajajajaja 
Fragesteller
 20.04.2023, 22:02
@Aaajajajajaja

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.

0
MrAmazing2  20.04.2023, 22:20
@Aaajajajajaja

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.

0
Aaajajajajaja 
Fragesteller
 20.04.2023, 22:28
@MrAmazing2

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: ")


1