Python-プログラミングの考え方

1994 ワード

ケース:ファイルの作成
(1)ユーザ名にファイル名を入力するようにプログラムファイルを作成する
(2)ファイルが既に存在する場合、ユーザーに再入力を要求する
(3)ユーザにデータの入力を求め、各行のデータを先にリストに書き込む
(4)ユーザが入力したファイル名にリストデータを書き込む
 
1.ぼんやりしている.プログラムの働き方を考える.インタラクティブ?非インタラクション?インタラクティブであれば、プログラムに出力があり、ユーザーに入力が必要です.
# python mkfile.py
filename: /etc/hosts
     ,   
filename: /etc
     ,   
filename: /tmp/myfile.txt
     ,         end  
(end to quit)> hello world!
(end to quit)> ni hao!
(end to quit)> how are you?
(end to quit)> end

# cat /tmp/myfile.txt
hello world!
ni hao!
how are you? 

2.プログラムにどのような機能があるかを考え、機能を関数として記述することで、大きな複雑な問題を一つ一つの小さな問題に簡略化する
def get_fname():
    '     '
    
def get_content():
    '    '
    
def wfile(fname, content):
    '   content    fname

 
3.メインプログラムコードを書き、順番に関数を呼び出す
def get_fname():
    '     '

def get_content():
    '    '

def wfile(fname, content):
    '   content    fname'

if __name__ == '__main__':
    fname = get_fname()
    content = get_content()
    wfile(fname, content)

 
4.各具体的な関数本体コードを記入する
import os

def get_fname():
    '     '
    while 1:
        fname = get_fname('filename:')
        if not os.path.exists(fname):
            break
        print('     ,   !')

        return fname

def get_content():
    '    '
    content = []

    print('     ,         end  ')
    while 1:
        line = input('end to quit:')
        if line == 'end':
            break
        content.append(line)
        
    return get_content()

def wfile(fname, content):
    '   content    fname'
    with open(fname, 'w') as fobj:
        fobj.writelines(content)

if __name__ == '__main__':
    fname = get_fname()
    content = get_content()
    content = ['%s
' % line for line in content] wfile(fname, content)