阻止用户输入字母

时间:2015-11-30 20:42:08

标签: python python-3.x

在我的课程中,我向用户询问了一些基本的数学问题。但我不希望他们能够打字。是否有一个函数或方法允许我创建一条错误消息并要求他们重新输入答案。

Answer = int(input ("What is the answer to the question?"))

if Answer == Maths:
        print ("Correct.")
        Score += 1

#function/method to prevent them from entering letters:
        print ("Please enter a valid answer.")

if Answer != Maths:
        print ("Incorrect.")

编辑 - 我基本上不希望他们输入一封信,但在某种程度上它并没有崩溃。

2 个答案:

答案 0 :(得分:2)

这是等待有效整数的一种方法:

def get_int(prompt):
    while True:
        try:
            answer = int(input(prompt))
            break
        except ValueError:
            print('Please enter an integer value.')
    return answer

# Ask for 10 integers
for i in range(3):
    print(get_int('Enter an integer: '))

输出:

Enter an integer: 1
1
Enter an integer: 2
2
Enter an integer: a
Please enter an integer value.
Enter an integer: b
Please enter an integer value.
Enter an integer: 3
3

如果answer无法转换为整数,则会抛出ValueError异常并继续while循环。如果answer有效,它将从循环中断开。

答案 1 :(得分:0)

可能不是最有效的方法:

import string
user_input = ' '

while not all(char in string.digits for char in user_input):
    user_input = raw_input("Enter only numbers")
user_input = int(user_input)

string.digits是字符串0123456789