見出し画像

こういうコードを書いてください

#学習 #勉強 #Python #プログラミング
プログラムを書いて収入を得ている人ならば、理解できる話があります。
あなたは1年前に食べた料理、正確に覚えていますか?

1年前に自分が作ったプログラム、記憶が無いけれど急に改修を依頼されました。
こういう話は日常茶飯事です。

どんなプログラムでも、後日に自分や誰かが改修することを考えなくてはなりません。
その時、短時間で改修するためにも、コメントは分かりやすく書く必要があります。

前日のソースコードと比較してください。


#学習用データと予測用数列を作成する関数
#内容 1次元配列のStringOfNumbersとIntervalを元に、学習用データと正解データを作る
# この関数は、学習データと正解データの生成の他に
# 予測のための、学習データを生成する
# 予測のための、学習データを作成するとき、StringOfNumbersの最後にはダミーの数値を入れること
#制限 StringOfNumbersの配列は、Intervalの数より多くないと、戻り値を生成しない
#引数 StringOfNumbers[] 1元配列で、予測のための数値を格納する
# Interval 学習に利用する配列の数
#戻値 DataForLearning[[]] 2次元配列で、Intervalの数だけ予測データをまとめる
# AnswerData[] 1次元配列で、学習用の正解データが入る
#
#解説 1,2,3,4,5,6と3を指定して起動 => [[1,2,3],[2,3,4],[3,4,5]]と[4,5,6]に変換する
def make_data(StringOfNumbers,Interval):

#interval前のデータを学習させるための配列
DataForLearning = []

#答えとなる配列
AnswerData = []

#NumberOfArraysは0からStringOfNumbersの数だけ処理を繰り返す
#指定された数列全部を処理する
for NumberOfArrays in range(len(StringOfNumbers)):

#繰り返しの数 、Intervalより小さい場合、以降の処理を省略する
if NumberOfArrays < Interval:
continue

#配列AnswerDataに現在の数値を追記する
#Intervalの数以上の数列が対象となる
AnswerData.append(StringOfNumbers[NumberOfArrays])

#配列Lumpの作成 、DataForLearningへの2次元配列を作るために作業用として使う
Lump = []

#NumberForLearningは0からintervalの数まで繰り返される
#今日よりinterval日前のデータを揃える
for NumberForLearning in range(Interval):

#NumberOfArraysはinterval以上になるので 、TemporaryPositionの値がマイナスになることはない
TemporaryPosition = NumberOfArrays + NumberForLearning - Interval

##配列xaに指定された気温を格納
Lump.append(StringOfNumbers[TemporaryPosition])

#interval日前のデータが揃ったので 、2次元配列に追加
DataForLearning.append(Lump)

#戻り値の指定
return (DataForLearning, AnswerData)


明らかに過剰なほどコメント書いています。
学習したり、自分で自信が持てないソースコードほど、沢山コメントを書きます。
コメントは明日以降の自分を救うからです。

おそらく、新人さんがそろそろソースコードに悩む時期なので、参考になると思います。
特に複数のプログラミング言語を職場で使うなら、細かくコメントを書かないと、プログラミング言語の細かい部分を忘れます。


あと、私の過去も含めた反省です。
ネットにソースコードを書く場合、過剰とも思えるほどコメント書かないと覚えるのが大変です。
私が今後掲載するソースコード、見た人が学習しやすいように過剰にコメントを書いておきたいと思います。

この記事が気に入ったらサポートをしてみませんか?