Seite 1 von 1

binär serch

Verfasst: Sonntag 12. Mai 2019, 15:51
von moh
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

Re: binär serch

Verfasst: Sonntag 12. Mai 2019, 16:04
von __blackjack__
@moh: Zwei Zeilen weiter machst Du es doch richtig.

Re: binär serch

Verfasst: Sonntag 12. Mai 2019, 16:15
von moh
__blackjack__ hat geschrieben: Sonntag 12. Mai 2019, 16:04 @moh: Zwei Zeilen weiter machst Du es doch richtig.
welche denn?

Re: binär serch

Verfasst: Sonntag 12. Mai 2019, 16:19
von __deets__
Was ist der Unterschied im if vs dem danach folgenden elif? Kleiner Tipp: hat was mit Sonderzeichen zu tun!

Re: binär serch

Verfasst: Sonntag 12. Mai 2019, 16:23
von __blackjack__
@moh: Von Zeile 6 ausgehend zwei Zeilen weiter ist Zeile 8. Also wenn das schon ein Problem darstellt… 😜

Re: binär serch

Verfasst: Sonntag 12. Mai 2019, 16:30
von moh
__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

Re: binär serch

Verfasst: Sonntag 12. Mai 2019, 16:36
von Sirius3
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.

Re: binär serch

Verfasst: Sonntag 12. Mai 2019, 16:49
von moh
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