如何针对2D阵列验证用户输入

时间:2019-01-12 03:16:13

标签: arrays python-3.x

需要帮助验证用户输入。进行测验,将问题和答案存储在2D数组中

Array3x2 = [['Question 1 what is 100*10/2: ','Question 2 what is 20*10*5: 
','Question 3 what is 300*20: '],
[500,1000,6000]]

question_1 = input(Array3x2[0][0])
if question_1 == Array3x2[0][1]:
    print('correct')

它运行但不验证输入,只是再次循环。这就是我所说的更大程序的一部分

2 个答案:

答案 0 :(得分:1)

比较它们时您犯了一个错误。您的代码应为以下代码。

Array3x2 = [['Question 1 what is 100*10/2: ','Question 2 what is 20*10*5:','Question 3 what is 300*20: '],
[500,1000,6000]]

question_1 = int(input(Array3x2[0][0])) # Type cast
if question_1 == Array3x2[1][0]: # Answers are in the 1st array and not in the 0th array
    print('correct')

您正在比较错误的索引。您应该将其与第一个数组中的第0个元素进行比较。您正在将第0个答案与第一个问题进行比较。另外,您需要转换从控制台接收的输入。始终将输入读取为字符串,并将其与整数进行比较。

          0                               1                              2
 Array 0 ['Question 1 what is 100*10/2: ','Question 2 what is 20*10*5: ','Question 3 what is 300*20: ']

           0    1   2
 Array 1 [500,1000,6000]

检查上面的代码,它应该可以正常工作。

答案 1 :(得分:0)

在python 3中,输入命令以字符串形式返回用户输入值。
我整理了一下代码,这似乎运行良好。

quiz = [["Question 1 what is 100*10/2: ", 500], ["Question 2 what is 20*10*5: ", 1000],
    ["Question 3 what is 300*20: ", 6000]]

for question, answer in quiz:
    user_input = int(input(question))
    if user_input == answer:
        print("Correct!")
    else:
        print("Incorrect")