binär serch

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
moh
User
Beiträge: 25
Registriert: Montag 15. April 2019, 21:53

Sonntag 12. Mai 2019, 15:51

Hallo zusammen,
Über das Thema finde ich zwar im Internet viele Erklärungen und fertige geschriebene code, trotzdem verstehe nicht, was da falsch ist bzw linie 6

Code: Alles auswählen

def binear(liste,l,r,z):
    if r<l:
        return -1
    mitte=(r+l)//2
    print(mitte)
    if(liste(mitte) == z):
        return z
    elif liste[mitte]<z:
        return binear(liste, mitte+1, r, z)
    else:
        return binear(liste,l, mitte-1, z)

    
liste=[1,2,4,8,10,12,16]
l=0
r=len(liste)
z=5
print(l,r,binear(liste, l, r, z))
es zeigt folgendes Fehler:

Code: Alles auswählen

3
Traceback (most recent call last):
  File "C:\Users\almah\eclipse-workspace\Informatik1\GrundLagen\binear_suche.py", line 40, in <module>
    print(l,r,binear(liste, l, r, z))
  File "C:\Users\almah\eclipse-workspace\Informatik1\GrundLagen\binear_suche.py", line 28, in binear
    if(liste(mitte) == z):
TypeError: 'list' object is not callable
Benutzeravatar
__blackjack__
User
Beiträge: 3896
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Sonntag 12. Mai 2019, 16:04

@moh: Zwei Zeilen weiter machst Du es doch richtig.
“There's also a certain pleasure in actually getting things to work in Java, somewhat like the pleasure, I imagine, of building ships in bottles.”
— David Cook in c.l.p
moh
User
Beiträge: 25
Registriert: Montag 15. April 2019, 21:53

Sonntag 12. Mai 2019, 16:15

__blackjack__ hat geschrieben:
Sonntag 12. Mai 2019, 16:04
@moh: Zwei Zeilen weiter machst Du es doch richtig.
welche denn?
__deets__
User
Beiträge: 6062
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sonntag 12. Mai 2019, 16:19

Was ist der Unterschied im if vs dem danach folgenden elif? Kleiner Tipp: hat was mit Sonderzeichen zu tun!
Benutzeravatar
__blackjack__
User
Beiträge: 3896
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Sonntag 12. Mai 2019, 16:23

@moh: Von Zeile 6 ausgehend zwei Zeilen weiter ist Zeile 8. Also wenn das schon ein Problem darstellt… 😜
“There's also a certain pleasure in actually getting things to work in Java, somewhat like the pleasure, I imagine, of building ships in bottles.”
— David Cook in c.l.p
moh
User
Beiträge: 25
Registriert: Montag 15. April 2019, 21:53

Sonntag 12. Mai 2019, 16:30

__deets__ hat geschrieben:
Sonntag 12. Mai 2019, 16:19
Was ist der Unterschied im if vs dem danach folgenden elif? Kleiner Tipp: hat was mit Sonderzeichen zu tun!
sorry, abe rich komme einfach nicht darauf
Sirius3
User
Beiträge: 10241
Registriert: Sonntag 21. Oktober 2012, 17:20

Sonntag 12. Mai 2019, 16:36

Wenn in Zeile 6 ein Fehler ist, und Du zwei Zeilen tiefer schaust, bist Du in Zeile 8. Die beiden Zeilen sollen fast das selbe machen, Du hast aber in Zeile 6 etwas ganz anderes geschrieben, was kein korrektes Python ist. Also kannst Du doch durch den Vergleich der beiden Zeilen herausfinden, was Du falsch gemacht hast.
moh
User
Beiträge: 25
Registriert: Montag 15. April 2019, 21:53

Sonntag 12. Mai 2019, 16:49

Sirius3 hat geschrieben:
Sonntag 12. Mai 2019, 16:36
Wenn in Zeile 6 ein Fehler ist, und Du zwei Zeilen tiefer schaust, bist Du in Zeile 8. Die beiden Zeilen sollen fast das selbe machen, Du hast aber in Zeile 6 etwas ganz anderes geschrieben, was kein korrektes Python ist. Also kannst Du doch durch den Vergleich der beiden Zeilen herausfinden, was Du falsch gemacht hast.
ahja, die Eckige klammer.
Danke dir, hatte ich lang gesucht
Antworten