【问题标题】:Random input python generator随机输入 python 生成器
【发布时间】:2017-03-22 17:14:47
【问题描述】:

我正在尝试创建一个随机问题生成器来帮助我进行修改。我遇到的问题是,当我正确或错误地输入答案时,我会连续两次得到 false 的输出。

这是我的代码,在底部我有注释行。它们适用于我只有一个答案的可能性,可能不需要但无论如何都会保留。

import random
a = ('What is 1 + 2?')
b = ('What is 2 + 2?')

questions = [a, b]
answer = (int(input(random.choice(questions))))

answer = a
answer = b

if a == 3:
    print('Correct')
else:
    print ('False')

if b == 4:
    print('Correct')
else:
    print ('False')

#if answer == 2:
#    print ('Well Done')
#else:
#    print ('No Incorect')

【问题讨论】:

  • 你认为以下几行在做什么:answer = a; answer = b
  • 您的变量ab 是问题,它们不等于任何数字,因此if 语句都属于它们的else
  • 将评估所有if 案例。如果我输入了a==2,那么if a == 3: 就是False,所以print ('False') 会触发。但随后它也会检查if b == 4:...我猜在这种情况下是==('What is 2 + 2?'),所以它也是False,你又会得到print ('False')
  • 是的,当然。脑袋放屁。已编辑。 :-)

标签: python random generator


【解决方案1】:

听起来您正试图将 answer 声明为 lambda 函数。

你这样做可能会更好:

...
answer = lambda q: int(input(q))
answer_a = answer(a)
answer_b = answer(b)

if (answer_a == 3):
....

【讨论】:

    【解决方案2】:

    我稍微修改了你的代码。

    import random
    questions = ['What is 1 + 2?','What is 2 + 2?' ]
    a,b = questions
    x = random.choice(questions)
    if x == a:
        l = int(input(a))
        if l == 3:
            print('Correct')
        else:
            print('False')
    elif x == b:
        l = int(input(b))
        if l == 4:
            print('Correct')
        else:
            print('False')
    

    如果你不明白它的作用,只需添加 print() 语句:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2016-07-17
      • 1970-01-01
      相关资源
      最近更新 更多