3

whileループに関する多くのトピックを読みましたが、自分のコードで何が間違っているのかを教えてくれるトピックが見つかりません。私はLearnPythonthe Hard Wayを行っており、演習33の学習ドリル#1を満たすためにこのコードを作成しました。生データを入力したときに、ループが終了しない理由がわかりません。

numbers = []

def number_uno(z):
    i = 0
    while i < z:
        print "At the top i is %d" % i
        numbers.append(i)

        i += 1
        print "Numbers now: ", numbers
        print "At the bottom i is %d" % i


print "Pick a random number: "
z = raw_input("> ")

number_uno(z)

print "Done"

何か案は?「i」に1を追加し続けるだけで、印刷が停止することはありません。

ありがとう、ザック

4

1 に答える 1

9

raw_input文字列を返します。これを関数に渡すと、整数と文字列を比較していることになります。この動作はpython3.xで非推奨になっていることに注意してください。この方法では、Python3.xでは整数と文字列を比較できません。(それは発生しますTypeError)。

これは非常に簡単に修正できます。

number_uno(int(z))

OKを実行する必要があります。

于 2012-12-17T19:41:59.310 に答える