Anfängerfrage-Eingabe direkt am Anfang als Float definieren

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    ich, ein 45 jähriger Programmieranfänger, habe mal eine Frage.
    Meine ersten Programmierversuche habe ich mit C++ gestartet. Allerdings habe ich meine frühen Grenzen erreicht,als ich mit dem Raspi eine LED habe blinken lassen können. Das Problem war dann wohl die 3-fache Lernkurve (Linux, C++, Makefile, und noch andere).
    Jetzt habe ich mich mal an Python 3 gewagt.
    Mein Problem ist, dass ich erst im Part Berechnung den Typ Float angeben kann.
    Vorher hat das Programm nach Eingabe von 3 für a und 4 für b als Ergebnis 34 ausgegeben.
    Kann ich nicht schon bei a=input('a:') definieren, dass a eine Zahl sein soll ?
    Hier der Code:

    #! /usr/bin/python3
    # Erster eigener Test: Eingabe und Berechnen und if else

    # Variable a und b eingeben
    print("Bitte a eingeben:")
    a=input('a:')

    print("Bitte b eingeben:")
    b=input('b:')

    # Berechnung mit definierung a und b als Kommazahl
    c = float(a) + float(b)

    # Ergenis ausgeben
    print("Ergebnis:",c)

    # Prüfen,ob Ergenbis 4 ist
    if c==4:
    print("Richtig !")
    else:
    print("Falsch !")

    Ich hoffe die Problemstellung ist klar genug geschrieben.

    Dank im Voraus.

    Michael

  • Anfängerfrage-Eingabe direkt am Anfang als Float definieren? Schau mal ob du hier fündig wirst!


  • Kann ich nicht schon bei a=input('a:') definieren, dass a eine Zahl sein soll ?

    Hallo

    Bitte 1. für Code den Code-Tag [code]...[/ code] verwenden und dann innerhalb des Tags posten. Dann bitte den Style Guide für Python beachten bzw zu Herzen nehmen.

    http://legacy.python.org/dev/peps/pep-0008/

    a = int(input('Bitte...')) #<-- a = Integer
    b = float(input('Bitte...')) #<-- b = Float

  • ...Mein Problem ist, dass ich erst im Part Berechnung den Typ Float angeben kann.
    Vorher hat das Programm nach Eingabe von 3 für a und 4 für b als Ergebnis 34 ausgegeben.
    Kann ich nicht schon bei a=input('a:') definieren, dass a eine Zahl sein soll ?


    Bei input bekommst Du immer einen String als Ergebnis. Da der + Operator die zwei Strings aneinanderhängt bekommst Du deshalb bei 3 + 4 = 34.

    Geschickt ist es eine eigene Lesefunktion mit raw_input zu schreiben und zu benutzen. Z.B. den String in einen Float versuchen zu konvertieren und im Fehlerfalle eine erneute Eingabe zu verlangen.


  • Nein - wie man ja sehen kann nicht :shy: . Verhält sich das da anders?

    gibt kein raw_input() mehr sonder nur noch input() ;)

    und wenn man schon zu Beginn den Inputstring zu einem Float oder Int konvertiert, dann geht es auch ohne Funktion. ggf. das ganze in eine try/except Anweisung packen um Exception bzw falsche Eingaben abzufangen.

    • Offizieller Beitrag

    Deswegen lehnen wir ja auch Python3 ab :baeh2:. Ich würde aber auch die direkte Konvertierung in Try/except Blöcken machen....

    Des weiteren sei für weitere Anfängerfragen in Python auf diesen Thread hingewiesen.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (27. April 2014 um 20:30)

  • Hallo,

    Sorry für meine Anfängerforenfehler.
    Thema ist jetzt hoffentlich Aussagekräftig.
    Wie ich das mit dem Quoten mache, werde ich auch noch herausfinden.
    Der Verweis auf die englische Seite mit den korrekten Schreibweisen habe ich als nicht Nativspeaker versucht zu beherzigen.
    Im eigentlichen Programm waren die Einrückungen schon fast perfekt.

    Den Beitrag mit den Anfängerfragen zu Phyton habe ich auch schon gelesen, allerdings hat mir die erste Frage schon zu viele Fachbegriffe, um als Anfänger überhaupt zu wissen, worum es geht.
    Bis zur 8. Seite habe ich es gelesen und als richtiger Anfänger kann ich mit dem Ding nichts anfangen.
    Wenn ich mal 2-5 Programme geschrieben habe, werde ich mir den Beitrag noch mal zur Brust nehmen und versuchen da Informationen zu ergattern.

    So, trotzdem vielen Dank für die Hilfe.

    b = float(input('Bitte...')) #<-- b = Float

    Werde ich probieren, wenn ich an meinem Programmiernotebook sitze, mit dem Tablett ist es nicht das Gelbe vom Ei.

    Gruß

    Michael

  • michael:
    es wurde schon alles geasgt. Es gilt:
    das, was die input().Funktion liefert, sind IMMER Zeichenketten - auch wenn Zahlen eingegeben werden.
    Sieht man u.a. auch daran, dass bei Augabe des der Input()-Funktion zugewiesenen Bezeichners die Zahl in Hochkommata gesetzt ist.
    Beispiel:
    a = input("Zahl eingeben: ") => es wird z.B. eine 4 eigegeben
    a [Enter]
    '4'

    Da man mit Zeichen nicht rechnen kann:
    a= float(input("Zahl eingeben: "))
    oder
    a=int(input("Zahl eingeben: ")), je nachdem, was benötigt wird.

    Viel Glück !

    Du könntest an deinem Thread jetzt ein Häkchen(=erledigt) setzen ...

    so long
    Perlchamp

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • ...Quelle

    Danke für den Hinweis. War mir nicht bewusst, dass 2.7 EOL schon feststeht. Die Tatsache dass es noch mal verschoben wurde zeigt wohl, dass das Interesse an und die Notwendigkeit der Neuerungen von Python 3.0 nicht sehr ausgeprägt in der Community ist.

  • BTW:
    Der Thread für Pythonfragen ist auch nicht unbedingt als Recherche gedacht,
    sondern vielmehr kann man da schnell mal ne Frage loswerden, ohne sofort einen neuen Thread zu starten.
    Viele Fragen sind ja doch recht schnell gelöst dank vieler hilfsbereiter Nutzer.

    Beste Grüße und viel spass noch hier im Forum! :thumbs1:

    ...and write down with pencil&paper...
    Where can i download "pencil&paper" ?

  • Hallo zusammen,

    ich hoffe, dass der grüne Haken bedeutet, dass das Thema erledigt ist.
    Die nächste Anfängerfrage stelle ich dann in dem anderen Thread, schliesslich ist er dafür eröffnet worden.
    Sorry, dachte das ist ein Infobeitrag, ähnlich wie ein Tutorial, wo man Infos ergattern kann.:wallbash:

    So, jetzt erst mal vielen Dank:danke_ATDE: für die Antworten.
    Heute Nachmittag werde ich dann versuchen das Problem zu lösen.

    Grüße

    Michael

  • Hallo,

    Thema ist erledigt. Ich versuche nur mal das mit der Quotenfunktion

    Scheint nicht richtig zu funktionieren.
    Die Einrückungen sind wieder weg.:wallbash:
    Für Hilfe bin ich dankbar (nur das mit dem Quoten des Programmtextes...

    Gruß

    Michael

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!