2017-03-09 1 views
-2

Ich bin neu in Python und ich bin damit herum und ich weiß nicht wirklich warum, wenn ich die Klammern in Klammern ändern, bekomme ich einen Fehler oder warum ich nicht einfach len (text - 1) benutzen kann.Python - Need Hilfe Verständnis() vs [] bei Verwendung mit Länge

Ich betrachte diesen Code:

def reverse(text): 
    result = "" 
    length = len(text) 
    for i in text: 
     result += text[length - 1] 
     length -= 1 
    return result 

Jede Hilfe mit Verständnis ist dies sehr zu schätzen!

Danke!

+0

Sie erhalten einen Fehler, weil eine Zeichenfolge minus eine Zahl nicht funktioniert –

+0

Ihre Schleife ist auch etwas sinnlos. http://stackoverflow.com/questions/18686860/reverse-a-string-in-python-without-using-reversed-or-1 –

+1

als eine Seite, wenn Sie die Umkehrung der Zeichenfolge möchten, können Sie nur umgekehrte Slicing verwenden : "mystring" [:: - 1] == "gnirtsym" –

Antwort

1

Wenn Sie len(text - 1) Sie versuchen int (1) von str (text) zu subtrahieren. Es ist nicht genug Operation in Python (und außerdem unmöglich). Um einen Teil der benötigten Zeichenfolge zu erhalten, müssen Sie text[length - 1] verwenden.

1

Sie können text - 1 nicht verwenden, weil das keinen Sinn ergibt; Sie können nicht 1 aus einer Zeichenfolge nehmen.

Nun, wie für len(...) ist dies eine Funktion, so hat () für den Anruf statt []. Du gibst ihm das Ding, das du willst, die Länge von.

text[length - 1] indiziert in die Schnur, an einer Stelle, und folgt der Syntax-Liste für Indexierungs oder Unter scripting.

0

Die Python eingebaute Funktion len() gibt die Länge in der Anzahl der dem Objekt in Argument z.B

temp = [1, 2, 3, 4] 
length = len(temp) 

dann len() wird 4 in diesem Fall zurück. aber wenn jemand schreiben

length = len(temp-1) 

dann

Temp-1

kein gültiges Objekt ist, laden Sie daher nicht verwenden können.

1

Python Klammerung

Klammerung spielen viele verschiedene Rollen in Python das sind einige der wichtigsten Rollen, die sie spielen:

Die mathematische Rolle:

Python Klammern wirken wie Klammern in Mathe wie sie sind an der Spitze der Python Priority Precedence

Dies bedeutet, dass dies:

>>> 3 + 4 * 2 

kehrt:

12 

Die mit Klammern:

>>> (3 + 4) * 2 

kehrt:

14 

Aber das ist nicht alles, ihre Priorität erweitert auch Boolesche Ausdrücke:

zum Beispiel:

False and False or True and True 

ausgewertet True als and vor or ausgeführt. Wenn Sie jedoch einige Klammern hinzu:

False and (False or True) and True 

Es zu False wertet als or vor dem

In Python

Tuple and ausgeführt, wenn Sie etwas in einer tuple setzen Sie verwenden () Notation.

Funktionen

Wenn Sie deklarieren oder eine Funktion aufrufen Sie müssen immer die Klammern nach dem Funktionsnamen hinzuzufügen. Denken Sie an sie als einen Korb, um die Argumente hineinzubringen.Wenn Sie sie der Python-Interpreter vergessen werden denken, dass Sie eine Variable zum Beispiel anrufen:

list 

Dies ist eine Variable mit dem Namen Liste ist und tut nichts Besonderes

list() #Empty basket 

Dies jedoch ist ein Aufruf an eine Funktion, da es einen „Korb“ ist

Eckige Klammern

Eckige Klammern auch ziemlich viele haben Rollen:

Listen

In Python, verwenden Sie eckige Klammern, wenn Sie einen list anstelle eines Tupels erklären wollen.

Liste Verständnis

Liste Verständnis ist eigentlich ziemlich so read this um weitere Informationen zu kompliziert, aber nur wissen, dass es in eckige Klammern

Nachschlagen

Die hauptsächliche Verwendung von eckigen Klammern verwendet, ist um einen Wert in einer Liste, einem Tupel oder einem Wörterbuch nachzuschlagen. Stellen Sie sich das wie die Google-Suchleiste vor: Sie schreiben, was Sie wollen und es sagt Ihnen, was es hat. Zum Beispiel:

tuple = (2, 4) 

wenn Sie 4 erhalten möchten, müssen Sie den zweiten Wert des Tupels sehen:

tuple[1] #The first value is 0 

Slicing

Slicing ist einfach die Idee des Nehmens nur bestimmte Teile einer Liste (oder Tupel, Dictionary oder sogar String). Hier ist eine Erklärung von Greg Hewgill (https://stackoverflow.com/a/509295/7541446):

Es gibt auch den Schrittwert, der mit einer der oben genannten verwendet werden können:

a [Start: Ende: Schritt] # beginnen durch nicht letztes Ende, durch Schritt

Der wichtigste zu beachtende Punkt ist, dass der Endwert den ersten Wert darstellt, der nicht in der ausgewählten Schicht enthalten ist. Der Unterschied zwischen Ende und Start ist also die Anzahl der ausgewählten Elemente (wenn Schritt 1 ist, die Standardeinstellung). Das andere Merkmal ist, dass Anfang oder Ende eine negative Zahl sein kann, die bedeutet, dass es vom Ende des Arrays statt vom Anfang zählt. So :

a [-1] # letztes Element im Array a [-2:] # letzte beiden Elemente in dem Array a [: - 2] # alles außer den beiden letzten Punkten

Python ist freundlich zum Programmierer, wenn es weniger Elemente gibt als Sie fragen für.Wenn Sie beispielsweise nach einem [: - 2] und nur einem Element fragen, erhalten Sie eine leere Liste anstelle eines Fehlers. Manchmal bevorzugen Sie den Fehler, so müssen Sie sich bewusst sein, dass dies passieren kann.

Ich hoffe, dass dies nützliche Erkenntnisse zur Erklärung des Unterschieds zwischen Klammern und eckigen Klammern zur Verfügung gestellt hat.

Dies bedeutet, dass in Ihrer Frage len() eine Funktion ist, wo Sie text in den Warenkorb setzen. Allerdings, wenn Sie anrufen text[length-1] Sie suchen, um den Wert an der Position length-1

+1

Der Link tutorialspoint.com für Tupel zeigt einige Zeilen, die mit überflüssigen Semikolons enden. Vielleicht könntest du einen Link finden, der nicht unnötigen visuellen Abscheulichkeiten gegenüber ahnungslosen Lernenden aufdrängt? Die einzigen Klammern, die für die Erstellung eines Tupels benötigt werden, sind leere Tupel, ansonsten sind sie optional (aber es ist oft ein guter Stil, sie zu verwenden). Es ist wirklich das Komma, das die Arbeit macht, etwas zu einem Tupel zu machen. –

0

Der Grund, warum Sie nicht tun können, len(text-1) up ist, weil Text ein String-Typ ist Sie zu umkehren versuchen, und eine Zeichenfolge, die du es mit Zahlen nicht kombinieren (es sei denn, sie sind eine Zeichenfolge, aber das ist eine andere Geschichte), ohne einen Fehler zu bekommen. Deshalb tun Sie len(text)-1, weil len (Text) gleich der Länge von was auch immer der Text ist (sagen wir vier), und dann können Sie 1 von 4 subtrahieren, weil 4 eine ganze Zahl ist.

Der Grund, warum Sie Klammern und nicht Klammern benötigen, wenn Sie text[length-1] tun, ist, weil in Python einen einzelnen Wert aus einer Zeichenfolge zu erhalten versuchen, die Verwendung von string[] erfordert und eine Position in der Zeichenfolge innerhalb des [] setzen. Sie verwenden Partakes, um Funktionen wie print(string) oder len(text) aufzurufen, also würde text(length-1) einen Fehler erstellen, der im Grunde sagt, dass das Programm keine Funktion namens "text" hat und es nicht weiß, was zu tun ist.

Hoffe, das hilft. Sag mir, wenn du weitere Fragen hast.

Verwandte Themen