我的随机数生成器有什么问题。 (Python)

What is wrong with my random number generator. (Python)

我是 python 的新手。我试图制作一个随机 # 生成器,但除了 else 语句外没有任何效果。我不知道是什么问题。请帮忙!

import random
randomNum = random.randint(1, 10)
answer = int(raw_input("Try to guess a random number between 1 and 10. "))

if (answer > randomNum) and (answer < randomNum):
    if (answer == randomNum + 1):
        print "Super Close"
        print randomNum
    elif (answer == randomNum + 2):
        print "Pretty Close"
        print randomNum
    elif (answer == randomNum + 3):
        print "Fairly Close"
        print randomNum
    elif (answer == randomNum + 4):
        print "Not Really Close"
        print randomNum
    elif (answer == randomNum + 5):
        print "Far"
        print randomNum
    elif (answer == randomNum - 5):
        print "Far"
        print randomNum
    elif (answer == randomNum - 4):
        print "Not Really Close"
        print randomNum
    elif (answer == randomNum - 3):
        print "Fairly Close"
        print randomNum
    elif (answer == randomNum - 2):
        print "Pretty Close"
        print randomNum
    elif (answer == randomNum - 1):
        print "Super Close"
        print randomNum
else:
    print "Good Job!"
    print randomNum

你的第一个if语句逻辑不正确。 answer 不能 同时 既小于又大于 randomNum,但这正是您的测试所要求的。

您想在那里使用 or 而不是 and,如果 answer 值大于 小于 randomNum:

if (answer > randomNum) or (answer < randomNum):

或简单地使用 != 来测试不等式:

if answer != randomNum:

我将此代码用于我的随机数生成器并且有效,希望对您有所帮助 您可以更改要生成的最高和最低随机数 (0,20)

import random

maths_operator_list=['+','-','*']
maths_operator = random.choice(maths_operator_list)
number_one = random.randint(0,20)
number_two = random.randint(0,20)
correct_answer = 0

print(str(number_one), str(maths_operator), number_two)

if maths_operator == '+':
    correct_answer = number_one + number_two
elif maths_operator == '-':
    correct_answer = number_one - number_two
elif maths_operator == '*':
    correct_answer = number_one * number_two

print(correct_answer)