1

何をしても、この while ループを機能させることができません。値をハードコーディングしない限り。

count = 0
value = raw_input('How many?')
print value
while (count <= value):
        print "a"
        count= count + 1

最初に、値に sys.argv[1] を使用してコマンドライン引数を使用しようとしましたが、同じ問題が発生しました。これはとても単純なことのように思えますが、私の人生では何が間違っているのか理解できません。

4

3 に答える 3

9

値が整数であることを確認してください。

while (count <= int(value)):
    count= count + 1

デフォルトraw_inputでは文字列であり、すべての整数nとすべての文字列sに対してn<s is True(!) があるため、ループ ( なしint) は決して壊れません。

注: Python 3 では、文字列と整数を比較するとTypeError: unorderable types: str() < int()、おそらくより「期待される」動作である が返されます。

于 2012-09-04T10:20:11.197 に答える
1

ところで、あなたが本当にあなたの声明をvalue印刷されたものにしたいのであれば、条件を

count <= int(value)

count < int(value)

またはcount1から開始

于 2012-09-04T10:51:56.947 に答える
1

最初に入力を整数に変換します

value = int(raw_input('How many?'))
print value
于 2012-09-04T10:21:33.590 に答える