2017-09-08 7 views
-1

Je pourrais être constamment en train de poser des questions sur mon projet avec Python (puisque j'ai déjà 3 demandes d'aide déjà en cours) mais je veux juste faire de son mieux. Cette fois, je veux faire une déclaration if pour vérifier si l'utilisateur entre un entier (nombre) au lieu de quelque chose d'autre parce que quand ils ne tapez pas un nombre, le programme va juste planter et je n'aime pas ça, j'aime inviter eux avec un message disant qu'ils ont besoin de taper un nombre et rien d'autre.Comment vérifier si l'utilisateur entre un entier (Python)

Voici mon code:

def main(): 
    abc = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz' 
    message = input("What's the message to encrypt/decrypt? ") 
    key = int(input("What number would you like for your key value? ")) 
    choice = input("Choose: encrypt or decrypt. ") 
    if choice == "encrypt": 
     encrypt(abc, message, key) 
    elif choice == "decrypt": 
     encrypt(abc, message, key * (-1)) 
    else: 
     print("Bad answer, try again.") 

def encrypt(abc, message, key): 
    text = "" 
    for letter in message: 
     if letter in abc: 
      newPosition = (abc.find(letter) + key * 2) % 52 
      text += abc[newPosition] 
     else: 
      text += letter 
    print(text) 
    return text 

main() 

Je devine que la déclaration if doit être quelque part dans la méthode def encrypt(abc, message, key) mais je peux me tromper, pourriez-vous s'il vous plaît me aider à trouver comment résoudre, je J'apprécierais grandement votre temps pour m'aider.

MERCI !!!

Répondre

0

Utilisation try .. except:

try: 
    key = int(input('key : ')) 
    # => success 
    # more code 
except ValueError: 
    print('Enter a number only') 

Dans votre code:

def main(): 
    abc = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz' 
    message = input("What's the message to encrypt/decrypt? ") 
    choice = input("Choose: encrypt or decrypt. ") 
    def readKey(): 
     try: 
     return int(input("What number would you like for your key value? ")) 
     except ValueError: 
     return readKey() 
    key = readKey() 
    if choice == "encrypt": 
     encrypt(abc, message, key) 
    elif choice == "decrypt": 
     encrypt(abc, message, key * (-1)) 
    else: 
     print("Bad answer, try again.") 

def encrypt(abc, message, key): 
    text = "" 
    for letter in message: 
     if letter in abc: 
      newPosition = (abc.find(letter) + key * 2) % 52 
      text += abc[newPosition] 
     else: 
      text += letter 
    print(text) 
    return text 

main() 
+0

Avez-vous une idée où dans le code je pourrais dire? Pensez-vous que je devrais le mettre après 'si lettre dans abc:' ??? – Kieran

+0

@Kieran J'ai mis à jour ma réponse. –

+0

merci beaucoup pour votre aide !!! – Kieran