Python was mache ich falsch?

4 Antworten

wenn ich 5 eingabe gibt er die 4 aus

Klar. Weil die Zahl 5 an Position 4 steht. Es wird von 0 gezählt.

Computer beginnen mit der 0 an zu zählen :)

addiere im print bei liste.index(eingabe) einfach eine 1 dazu.

liste = (1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10)


eingabe = int(input("Wonach soll gesucht werden: "))

zahl = liste.count(eingabe)

if zahl != 10:
    print("Die Position ist", liste.index(eingabe)+1)
    
else:
    print("Der Wert", eingabe, "wurde nicht gefunden")
doch dieses gibt mir die Zahl z.B wenn ich 5 eingabe gibt er die 4 aus.

was darauf hinweist, dass Python Arrays offensichtlich mit dem Index 0 beginnt.

doch dieses gibt mir die Zahl z.B wenn ich 5 eingabe gibt er die 4 aus.

Wie erwähnt , liegt das daran, dass in Python der Erste Index immer 0 ist. 1 hat bei dir also den Index 0, 2 den Index 1, etc.

Hier ist aber zu achten das dieses Programm keine Fehler auslöst, wenn die Zahl nicht gefunden wird.

Das liegt an diesem Abschnitt:

zahl = liste.count(eingabe)

if zahl != 10:
[...]

liste.count(eingabe) zählt, wie oft die zahl eingabe in der Liste vorkommt. Der Wert ist somit hier entweder 0 (wenn der Wert in der Liste nicht vorkommt) oder größer gleich 1 (wenn der Wert vorkommt, bei deiner Liste kommt jede Zahl jedoch höchstens 1 mal vor)

Du solltest also lieber

if zahl == 0:

Nutzen, oder

if eingabe not in liste:

Dann brauchst du die Zeile nicht, wo die Zahl gezählt wird.

Woher ich das weiß:Studium / Ausbildung – Mache derzeit meinen Mathematik Master