-1

私はPythonが初めてです。それは私の最初のプログラミング言語であり、人々が単純だと思っているものを理解するのに苦労しています (おそらくそうです)。控えめに言っても、私は愚かな気分になります。私が立ち往生しているものでいくつかのポインターを非常に使用できます。基本的に、10 個の緑色のボトルの単語を含むテキスト ファイルを作成するプログラムを作成する必要があります。

def kevin():
    file = open('greenbottles.txt','a')
    file.write(a)
    file.close()

def skinner():
    kevin('rabbits\n')

skinner()

これは、テキスト ファイルを作成して書き込むためにこれまで行ってきたことです。(私が見て読んだところによると、ファイルは Python ファイルと同じディレクトリに表示されるはずです。時々表示されないことに気付きましたか?) ファイルを開くと、ウサギが書かれているはずで\n、新しい行を強制的に作成します。

私がする必要があるのは、リストと変数を使用してテキスト ファイルに歌の詩を書き込むことです。また、ほとんどの曲はループで作成する必要があります (while ループが最適だと思いました)。詩を追加する方法について誰かが私にいくつかの指針を与えることができれば、私は感謝します.

「10 個の緑のボトル
が壁にぶら下がっています
10 個の緑のボトルが壁
にぶら下がっています
もし 1 本の緑のボトル
が誤って落ちた
としても 9 個の緑のボトル
が壁にぶら下がっています」

聖句の一つ。

私が期待しているのは、このコードによって、rabbit という単語を含むテキスト ファイルが作成されることです。kevinandは、skinner私が関数に名前を付けたもので、もう少しよく理解できるようにします。好きな名前を付けることができます。

4

5 に答える 5

1

そう、

私はあなたが新しいことを知っています.1つの主な方法は、あなたの関数名のどれも意味をなさないということです!! ここでスタック オーバーフローの問題を解決するのに役立つプログラミングの重要な点の 1 つは、関数/オブジェクトに適切な名前を付けることです。Kevin と green は有用な名前ではありません。

そのトピックでは、2つの green() を作成します [名前から何をするべきかわかりません...おそらく open がより良い名前でしょうか? または書いた?] 関数では、両方を使用することはできません。必要に応じて、1 つの green1 と別の green2 に名前を付けてください。

さて、あなたのプログラムに関しては、それを行うための一般的な考え方は次のようになると思います:

  • bottleText(i) という関数を 1 つ用意します。i は整数です。bottleText は詩を文字列として返します。整数を数値に変換できる関数をインポートしたり、ヘルパー関数を自分で記述したりすることもできます。
  • green() 関数を呼び出すループを作成し、テキストをファイルに書き込みます。私は実際に関数を green(str) に変更し、str を書き込むテキストにします。

それは意味がありますか?ご不明な点がございましたら、お気軽にコメントしてください。

于 2013-09-12T06:53:11.287 に答える
1

問題の基本的なアルゴリズムをわかりやすく説明するコードを次に示します。あなたが要求したとおりに正確に実行する代わりに、私が選択したランダムな形式で歌詞を出力します。このコードを理解するには、リスト、forループ、反復、および出力を理解する必要があります。次に、コードを理解し、ファイルに出力される、実行したいことを実行するのがあなたの仕事です。コードの理解に問題がある場合は、質問してください。

forこれはあなたのプロンプトに正確に答えているわけではありませんが、あなたの質問は基本的に、ループして曲の詩を作成する「方法」だけだったので、リスト、ループ、および文字列を使用して簡単なデモを作成したいと思いました.

numbers = [
'Zero',
'One',
'Two',
'Three',
'Four',
'Five',
'Six',
'Seven',
'Eight',
'Nine',
'Ten' ]

text_one = 'green bottles hanging on the wall'
text_two = 'And if one green bottle should accidentally fall\nThere\'ll be'

# Each iteration of this loop prints one verse of the song
for i in range(10, 0, -1):
    print(numbers[i], text_one)
    print(numbers[i], text_one)
    print(text_two, numbers[i-1], text_one)
于 2013-09-12T06:57:23.523 に答える
0

まず第一に、Python は物事の配置方法にうるさいです。この例では、関数「green」を定義するコード ブロックを実際にインデントする必要があります。例えば:

def green():
    file = open('greenbottles.txt','a')
    file.write(a)
    file.close()

ファイルを閉じるのを忘れるか、現在のディレクトリに対する十分な書き込み権限がない場合を除き、ファイルが表示されない理由はわかりません。コードの 2 番目の部分で、機能グリーン。関数 green を使用する場合は、「def」は必要ありません。変数をテキストに挿入したい場合は、次のように「補間」できます。

def green():
    my_variable = 10
    my_bottle_color = "green"
    my_string = "HI! I have %s %s bottles!" % (my_variable, my_bottle_color)
    file = open('greenbottles.txt','a')
    file.write(my_string)
    file.close()
于 2013-09-12T06:59:31.247 に答える
0

http://www.99-bottles-of-beer.net/を読むことから始めます。そのサイトには、使用しようとしている言語に関係なく、質問を解決するループを作成する方法の例があります。(特定の言語に慣れていない人にとっても良いリソースです。) 特にpythonの場合、それらの のどれからでも始めることができますが、それらのいくつかを読んで、ソリューションの種類の根底にある性質を確認してみてください。幸運を。

于 2015-03-10T12:55:18.477 に答える