2016-04-26 19 views
-2

Ich mache einen Taschenrechner auf Python 3.4. Der Rechner fordert den Benutzer auf, eine Nummer einzugeben. Ich möchte dies einschränken, so dass sie nur eine Nummer eingeben können (womit ich einverstanden bin) oder die Taste "C" drücken, um den Rechner zu löschen. Es scheint, als ob ich festhalte, dass ich sowohl C als auch jede andere Zahl zulassen darf. Jeder schlägt irgendeinen Weg vor, dies zu tun?Python Eingabe erlaubt ganze Zahlen und ein Alpha-Zeichen

Dank

+2

Was hast du bisher? Vielleicht können wir darauf aufbauen, anstatt alles von Grund auf zu erstellen – Mathias711

+0

Bitte bearbeiten Sie Ihre Frage und fügen Sie den Code, den Sie versucht haben, hinzu. –

+1

Geben Sie jeweils eine Ziffer ein oder geben Sie eine ganze Zahl wie 1337 ein und drücken Sie die Eingabetaste? Was ist auch zu tun, wenn der Benutzer z.B. "42C" - gültige Nummer 42, gültiger Befehl "C" oder ungültig? Und was ist mit Dezimalstellen? Unterstützen Sie sie oder beschränken Sie die Eingabe auf Ganzzahlen? –

Antwort

0

Sie könnten diesen Code verwenden, vorausgesetzt, der Benutzer soll Zahlen eingeben können, die aus mehreren Ziffern wie 1337 bestehen, aber keine Dezimalstellen. Eingaben, die aus Ziffern und "C" gemischt sind, sind ungültig, "C" wird nur erkannt, wenn die Eingabe nur den Buchstaben "C" und nichts anderes enthält. Führende und nachfolgende Leerzeichen werden ignoriert.

def get_input(): 
    inp = input("Enter a number or 'C' to clear: ").strip() 
    if inp.upper() == "C": 
     return "C" 
    if inp.isdigit(): 
     return int(inp) 
    else 
     return None 

Diese Funktion wird die eingegebene Nummer als ganze Zahl, oder die Zeichenkette „C“ zurückzukehren, oder None wenn der Eingang ungültig ist.

-1

Sie Angenommen, sind in den Benutzereingaben nacheinander unter:

import string 
allowed = string.digits+'C' 
if input in allowed: 
    doSomethingWith(input) 

Ist das, was Sie suchen?

+0

Funktioniert nur, wenn die Eingabe eine einzelne Ziffer ist. Es werden keine Eingaben wie "42" erlaubt. –

+0

Es hängt wirklich davon ab, wie er es implementiert. Für diesen Rechner nehme ich an, dass er die Eingänge einzeln liest und zur Anzeige an eine Zeichenkette anfügt. – plsnoban