Länge eines Strings funktioniert nicht?

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
disc
User
Beiträge: 2
Registriert: Mittwoch 8. Juni 2022, 17:16

Also, ich muss für programmieren HÜ die Länge eines Strings herausfinden

Ich hätte ja len(meineFormel) gemacht aber irgendwie kommt entweder 0 heraus oder das
TypeError: object of type 'type' has no len()

In diesem Fall habe ich halt im Internet zuerst nachgeschaut und überall steht das len(formel) normalerweise funktionieren sollte
in meinem Fall is die Formel halt

s = str(input("Welchen Text möchtest du verschlüsseln? = "))
s und wird von nem input bestimmt

und hier
for i in range(len(s)):
is die Stelle mit der Fehlermeldung

Mir fällt so jz nicht wirklich ein was falsch sein könnte weswegen ich hier um Hilfe frage
Danke!
disc
User
Beiträge: 2
Registriert: Mittwoch 8. Juni 2022, 17:16

Ich habe nach 13-mal gefunden was es war
Entschuldigung falls das hier jz irgendwie jemanden gestört hat

Trotzdem Danke!!
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

0 und TypeError sind ja zwei ziemlich verschiedene Sachen.
Anhand Deines Code-Fragments kann man den Fehler nicht rekonstruieren. Poste Deinen gesamten Code und die komplette Fehlermeldung inklusive Traceback. In Deinem Code kommt `formel` nämlich gar nicht vor.
`input` liefert bereits einen String, den nochmal per `str` zu konvertieren ist unsinnig.
`s` ist ein schlechter Variablenname, weil nichtssagend, wie einbuchstabige Variabelnnamen so oft. `text` wäre hier passender.
Benutzeravatar
ThomasL
User
Beiträge: 1379
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Beide Posts sehen mir aus wie von einem Bot zusammen gesetzt. Der nächste Beitrag ist dann wohl wieder einer mit einem Link.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

@disc: Dir for-Schleife sieht auch komisch aus. Man iteriert in Python direkt über die Elemente eines iterierbaren Objektes. Braucht man zusätzlich einen Index verwendet man enumerate.
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@disc: Die Schleife dort ist in Python ein „anti pattern“ weil man direkt über die Elemente von Sequenzen iterieren kann, ohne den Umweg über einen Laufindex. Also statt:

Code: Alles auswählen

    text = input("Welchen Text möchtest Du verschlüsseln? > ")
    
    for i in range(len(text)):
        ...
Kann man direkt über die Zeichen von `text` iterieren:

Code: Alles auswählen

    text = input("Welchen Text möchtest Du verschlüsseln? > ")
    
    for character in text:
        ...
Sollte man *zusätzlich* eine laufende ganze Zahl zu jedem Zeichen benötigen, gibt es die `enumerate()`-Funktion:

Code: Alles auswählen

    text = input("Welchen Text möchtest Du verschlüsseln? > ")
    
    for i, character in enumerate(text):
        ...
Sollte hier der Laufindex dann nur verwendet werden um auf eine andere Sequenz zuzugreifen, also zwei (oder mehr) sozusagen ”parallele” Datenstrukturen zuzugreifen, verwendet man stattdessen die `zip()`-Funktion:

Code: Alles auswählen

    text = input("Welchen Text möchtest Du verschlüsseln? > ")
    
    for character, key_value in zip(text, key_values):
        ...
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten