1

指示:

  • 一連の乱数をファイルに書き込むプログラムを作成します。
  • 各乱数は 1 から 100 の範囲である必要があります。
  • アプリケーションでは、ファイルが保持する乱数の数をユーザーが指定できるようにする必要があります。

ここに私が持っているものがあります:

import random

afile = open("Random.txt", "w" )

for line in afile:
    for i in range(input('How many random numbers?: ')):
         line = random.randint(1, 100)
         afile.write(line)
         print(line)

afile.close()

print("\nReading the file now." )
afile = open("Random.txt", "r")
print(afile.read())
afile.close()

いくつかの問題:

  1. ユーザーが設定している範囲に基づいてファイルに乱数を書き込むのではありません。

  2. 一度開いたファイルは閉じることができません。

  3. ファイルが読み込まれると、何もありません。

セットアップは大丈夫だと思っていましたが、常に実行に引っかかっているようです。

4

1 に答える 1

6

を取り除き、for line in afile:中に入っていたものを取り出します。また、inputPython 3 では文字列を返すため、int最初に変換します。また、文字列を書き込む必要があるときに、ファイルに整数を書き込もうとしています。

これは次のようになります。

afile = open("Random.txt", "w" )

for i in range(int(input('How many random numbers?: '))):
    line = str(random.randint(1, 100))
    afile.write(line)
    print(line)

afile.close()

ユーザーが整数以外を入力することが心配な場合は、try/exceptブロックを使用できます。

afile = open("Random.txt", "w" )

try:
    for i in range(int(input('How many random numbers?: '))):
        line = str(random.randint(1, 100))
        afile.write(line)
        print(line)
except ValueError:
    # error handling

afile.close()

あなたがやろうとしていたのはafile、何もなかったときに , の行を反復することだったので、実際には何もしませんでした。

于 2013-02-16T06:49:04.740 に答える