2016-04-26 1 views
-2

Je fais une calculatrice sur Python 3.4. La calculatrice demandera à l'utilisateur d'entrer un nombre. Je veux limiter cela afin qu'ils puissent seulement entrer un nombre (ce que je vais bien) ou appuyer sur la touche 'C' pour effacer la calculatrice. Je semble être coincé avec l'autorisation du C ainsi que tout entier. Quelqu'un suggère un moyen de s'y prendre?Entrée Python permettant des entiers et un caractère alpha

Merci

+2

Qu'avez-vous jusque là? Peut-être que nous pouvons construire sur cela, au lieu de tout créer à partir de zéro – Mathias711

+0

S'il vous plaît [Modifier] votre question et ajouter le code que vous avez essayé. –

+1

Entrez un chiffre à la fois ou entrez un nombre entier comme 1337, puis appuyez sur Entrée? En outre, que faire si l'utilisateur entre, par exemple, "42C" - numéro valide 42, commande valide "C" ou invalide? Et qu'en est-il des points décimaux? Soutenez-les ou restreignez l'entrée aux entiers? –

Répondre

0

Vous pouvez utiliser ce code, en supposant que l'utilisateur doit pouvoir entrer des nombres composés de plusieurs chiffres comme 1337, mais pas de point décimal. Les entrées étant mélangées de chiffres et "C" sont invalides, "C" n'est détecté que si l'entrée contient seulement la lettre "C" et rien d'autre. Les espaces de début et de fin sont ignorés.

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 

Cette fonction retourne le numéro entré en entier, ou la chaîne « C », ou None si l'entrée était invalide.

-1

En supposant que vous prenez dans les entrées utilisateur un par un:

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

Est-ce que vous cherchez?

+0

Fonctionne uniquement si l'entrée est un seul chiffre. Il ne permettra pas les entrées telles que '42'. –

+0

Cela dépend vraiment de la façon dont il l'implémente. Pour cette calculatrice, je suppose qu'il lit les entrées une par une et ajoute une chaîne pour l'affichage. – plsnoban