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では、一時変数を必要とせずに2つの変数を交換できることに注意してください。

bultinを使用してさらにショートカットを作成minmax、1行で実行することもできます。

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 に答える