Abfrage ob die Eingabe eine Zahl ist

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
CodeMaster
User
Beiträge: 22
Registriert: Mittwoch 15. September 2010, 21:37

Ich habe ein Problem, un zwar will ich ja abfragen ob meine Eingabe eine Zahl ist.
Da hat sich in diesem Code jetzt folgendes Problem herausgestellt:

Code: Alles auswählen

#-*- coding: utf-8 -*-
import random

while True:
    print """
== ======================================= ==
== Waehle eine Zahl aus.                   =====
== Dann werde ich mir eine Zahl zwischen 1 =========
== und der ausgewaehlten Zahl aussuchen,   =============
== die du dann erraten kannst.             =================
== ======================================= ======================
"""
    OneTo = input("1-")
    
    try:
        OneTo = float(OneTo)
        print "True"
        
    except ValueError:
        print("{0} ist keine Zahl".format(OneTo))
Wie man sieht, will ich ein komplett leichtes Spiel machen.
Aber es passiert jetzt folgendes:
wenn ich am anfang statt einer Zahl einen Buchstaben eingebe, gibt es ein Error und der Code hört auf zu arbeiten
Das möchte ich aber nicht, ich will das dann einfach die Nachricht kommt, das OneTo keine Zahl ist.

(die Stelle mit dem try und except wurde mir von jemand anderem vorgeschlagen)

MfG CodeMaster
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

raw_input
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
CodeMaster
User
Beiträge: 22
Registriert: Mittwoch 15. September 2010, 21:37

ahh ok danke :)
CodeMaster
User
Beiträge: 22
Registriert: Mittwoch 15. September 2010, 21:37

Ein neues Problem ist jetzt aufgetreten:

Code: Alles auswählen

#-*- coding: utf-8 -*-
import random

while True:
    print """
== ======================================= ==
== Waehle eine Zahl aus.                   =====
== Dann werde ich mir eine Zahl zwischen 1 =========
== und der ausgewaehlten Zahl aussuchen,   =============
== die du dann erraten kannst.             =================
== ======================================= ======================
"""
    OneTo = raw_input("1-")
    
    try:
        OneTo = float(OneTo)
        print "Ok ich habe mir nun eine Zahl zwischen 1-{0} ausgesucht, ratest du auch welche?"
        RandomNumber = randint(1,OneTo)
        print ("Random Num: "+str(RandomNumber))
    except ValueError:
        print("{0} ist keine Zahl".format(OneTo))
Und zwar kommt ein Error, da durch raw_input anscheinend kein integer zustande kommen kann, wie löse ich das problem jetzt am besten?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

CodeMaster hat geschrieben:Und zwar kommt ein Error, da durch raw_input anscheinend kein integer zustande kommen kann, wie löse ich das problem jetzt am besten?
Das ist richtig, aber nicht das Problem. Selbst wenn `raw_input` ein `int` zurueckgeben wuerde, wuerdest du es erst zu einem `float` machen und erst dann an `random.randint` uebergeben, was nie funktionieren wird.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Entweder ``from random import randint`` oder ``random.randint``.

Edit: Und http://wiki.python-forum.de/PEP%208%20% ... setzung%29 solltest du dir angucken.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Antworten