0

代码:

def Division():

    print "************************\n""********DIVISION********\n""************************"
    counter = 0
    import random
    x = random.randint(1,10)
    y = random.randint(1,10)
    answer = x/y
    print "What will be the result of " + str(x) + '/' + str(y) + " ?"
    print "\n"
    userAnswer = input ("Enter result: ")
    if userAnswer == answer:
        print ("Well done!")
        print "\n"
        userInput = raw_input ("Do you want to continue? \n Enter 'y' for yes or 'n' for no.")
        if userInput == "y":
            print "\n"
            Division()
        else:
            print "\n"
            Menu()
    else:
        while userAnswer != answer:
            counter += 1
            print "Try again"
            userAnswer = input ("Enter result: ")
            if counter == 3: break
        userInput = raw_input ("Do you want to continue? \n Enter 'y' for yes or 'n' for no.")
        if userInput == "y":
            print "\n"
            Division()
        else:
            print "\n"
            Menu()

在这种情况下,我希望x价值总是大于y价值。我该怎么做?减法代码类似,问题保持不变,目标是避免负结果。

4

3 回答 3

6

您可以检查是否x < y并交换它们,例如

if x < y:
    x, y = y, x

请注意,在 python 中,您可以交换两个变量而无需临时变量。

您甚至可以通过使用 bultin 来采取进一步的捷径,minmax在一行中完成,例如

x, y = max(x,y), min(x,y)
于 2012-04-22T00:24:01.103 回答
2

除了 Anrag Uniyal 的回答,你也可以试试这个:

y,x = sorted([x,y])
于 2012-04-22T00:38:22.113 回答
1

您可以在 x 和 10 之间进行 randint 以获得大于 x 的数字:

x = random.randint(1,10)
y = random.randint(x,10)
于 2012-04-22T01:08:25.620 回答