【試験7プログラミング問題】:ファイルとデータのフォーマット(7週目)

6642 ワード

第1題テキストの平均列数
記述記述の記述は,ジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコジルコ໾‪?‮‪‪8234;‪‪‪‪‪‪‪‪8234;‪8234;;‪\8234;;\3834;;;;;໺;;;;໾‪;;;;;;8234;;;;;;;໾‪;;;‪;;;;;\?;;;;;;;;;;;;\?;;;;ジルコニア
印刷出力添付ファイルの平均列数、計算方法は以下の通りである:‮‪‪8234;8238;‮‪‪8234;‪‪‪‪‪‪‪‪8234;‪8234;8234;8234;8234;;8234;;‪;‪;8234;;‪;;‪;‪;;‪;;‪;;‪‪;;;‪;;‪;;8234‪;;;;8234‪;;;;82ジルコニア
(1)有効な行とは、少なくとも1つの文字を含む行を指し、空の行を計算しない.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
(2)各行の列数が有効文字数である.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
(3)平均列数は有効行の列数平均値であり,四捨五入方式で整数進位をとる.
入出力例
出力フォーマットの例のみが示され、正解ではありません.
入力
しゅつりょく
なし
6123
解答コード
構想:rowsで非空行数を累積し、columnsで有効文字数(すなわち行当たりの列数)を累積し、columns/rows+0.5を計算してint()法で四捨五入を実現する.
#        
with open('latex.log') as f:
    for line in f:
    #      
        if not len(line) ==1 and line[-1] == '
'
: rows += 1 # '/n' columns += len(line) -1 print(int(columns/rows + 0.5))

第二題CSVフォーマットの洗浄と変換
説明
添付ファイルはCSV形式のファイルです.抽出データは、以下のフォーマットに変換される.‮‮‪8234;8238;‮‪8234;‪‪‪‪‪‪‪8234;8234;8234;8234;‪;‪;\8234;;;;໺;;;‪;;;;;;;8234;;;;;;;;8234;;;;;;;;;‪;;;;;;;;;\\383434;;;;;;;;;;;;;;\\ジルコニア
(1)行ごとに逆順に並べる.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
(2)各行のデータを逆順に並べ替える.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
(3)セミコロン(;)の使用カンマ(,)の代わりにデータを分割し、スペースがありません.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬
上記の要求に従って変換してデータを出力します.
入出力例
次はフォーマットの例です.最終結ではありません.
入力
しゅつりょく
(以下はファイル内)
1;2;3
9;8;7
4;5;6
6;5;4
7;8;9
3;2;1
解答コード
考え方:replace()またはstrip()メソッドを使用して各行の最後のリターンを削除し、replaceで各行のスペースを削除し、split()とjoin()メソッドで文字列とリストの変換を実現します.
with open('data.csv', 'r', encoding='utf-8') as f:
    lines = f.readlines()
    #         
    lines.reverse()  #     
    # lines = lines[::-1]  #         
    
    for line in lines:
        #    (;)    (,)    ,   
        line = line.strip('
'
) # line = line.replace('
', '')
line = line.replace(' ', '') # t = line.split(',') t.reverse() # # t = t[::-1] # # print(';'.join(t))

説明:テーマは北理嵩天先生【Python言語プログラム設計(第8期)】課程から来て、権利侵害があれば、削除します.