0

「ZedShawのLearnPythonTheHardWay」に追加のクレジットを付けています。演習15の「追加クレジット」では、pydocファイルを読んで、ファイルで実行できる他のことを見つけるように指示されています。「read()」を使用して、端末にテキストファイルの特定のバイト数を出力させる方法を理解することに興味がありました。読み取るバイト数の引数をハードコーディングすることはできますが、ユーザーにバイト数を定義するように求めるときに壁にぶつかりました。

これまでのスクリプトは次のとおりです。

    from sys import argv

    script, filename = argv

    txt = open(filename)

    print "Here's 24 bytes of your file %r:" % filename

    print txt.read(24)

    print """What about an arbitrary, not hard-coded number of bytes? Enter the number
    of bytes you want read out of the txt file at this prompt, as an integer:"""

    how_far = raw_input("> ")

    print txt.read(how_far2) # this format makes sense in my head but obviously isn't the done thing.

ターミナルはエラーを吐き出します:

"NameError: name 'how_far2' is not defined"

スクリプトのユーザーにバイト数を入力するように促し、スクリプトにそのバイト数を読み取らせるにはどうすればよいですか?

ボーナス質問:

  1. 私がここでやろうとしていることの実際の用語は何ですか?変数をメソッドに渡しますか?変数を関数に渡しますか?
  2. バイト数は読み取りの引数ですか?それは正しい用語ですか?
  3. より一般的には、Python用語の語彙リストを取得するのに適した場所はどこですか?Stack Overflowが推奨する他の本、またはどこかのオンラインドキュメントにある本はありますか?前提条件や事前知識がなく、「私が5歳のように説明してください」というレベルの粒度を本当に探しています...30分のWeb検索はあまり役に立ちませんでした。Webを検索するのにかなりの労力を費やしたにもかかわらず、オンラインで用語が実際に1か所に集められていることはわかりません。
4

2 に答える 2

2

エラーメッセージはhow_far、ある場所とhow_far2別の場所で使用したためです。

また、読み取りに渡す前にに変換how_farする必要があります-たとえば、intint(how_far)

変数、パラメーター、または引数を渡して呼び出すことができることがわかります。これらは Python 用語ではなく、一般的なプログラミング用語です。

于 2012-09-03T23:30:24.313 に答える
0

raw_input文字列を返します。 file.read整数が必要raw_inputです。使用する前に、からの出力を整数に変換する必要がある可能性があります。

于 2012-09-03T23:28:51.513 に答える