ChatGPTでコードの説明文をコメントアウトする
OpenAIの対話型AIモデル「ChatGPT」にでPythonとJavaScriptのコードの説明文をコメントアウトして貰う方法を紹介しています。
また、GPT-3.5、GPT-4で結果を比較しています。
- ChatGPT PLUS
Pythonコードの説明文をコメントアウトする
「ChatGPT」にPythonコードの説明文をコメントアウトして貰った結果になります。
以下のPythonにてコードの説明文をコメントアウトしたコードを生成して下さい。
def sortDictKeys(old_data, key_list):
new_data = {}
for value in key_list:
new_data[value] = old_data[value]
return new_data
data = {'type': 3, 'val': 1, 'name': 2}
data = sortDictKeys(data, ['name', 'type', 'val'])
print(data)
GPT-3.5の結果
以下のコードは、Pythonで書かれたコードで、与えられた辞書を、指定されたキーの順序に従って並べ替える関数を含んでいます。コメントアウトされた説明文を追加しました。
# 辞書を特定の順序でソートするための関数
def sortDictKeys(old_data, key_list):
new_data = {}
# 指定された順序で値を新しい辞書に追加する
for value in key_list:
new_data[value] = old_data[value]
return new_data
# ソートする前のデータ
data = {'type': 3, 'val': 1, 'name': 2}
# キーのソート順序を指定して辞書をソートする
data = sortDictKeys(data, ['name', 'type', 'val'])
# ソートしたデータを表示する
print(data)
このコードは、与えられた辞書のキーを特定の順序でソートするための関数 sortDictKeys
を定義し、それを使って与えられた辞書 data
をソートしています。 sortDictKeys
関数は、旧辞書 old_data
と、ソートされたキーのリスト key_list
を受け取り、指定された順序でキーをソートした新しい辞書を返します。
ソートされる前の data
辞書は {'type': 3, 'val': 1, 'name': 2}
であり、name
、type
、そしてval
の順にキーをソートして、{'name': 2, 'type': 3, 'val': 1}
となります。最後に、ソートされた辞書を表示しています。
GPT-4の結果
以下のコードは、Pythonで書かれたコードで、与えられた辞書を、指定されたキーの順序に従って並べ替える関数を含んでいます。コメントアウトされた説明文を追加しました。
# 関数 sortDictKeys を定義します。この関数は、old_data と key_list の2つの引数を取ります。
def sortDictKeys(old_data, key_list):
# 新しい辞書 new_data を初期化します。
new_data = {}
# key_list の各要素 value に対して、ループを実行します。
for value in key_list:
# new_data に、old_data から value キーの値をコピーします。
new_data[value] = old_data[value]
# 並べ替えが完了した new_data を返します。
return new_data
# data という辞書を定義し、いくつかのキーと値のペアを含めます。
data = {'type': 3, 'val': 1, 'name': 2}
# sortDictKeys 関数を使用して、data のキーを指定された順序 ['name', 'type', 'val'] に並べ替えます。
data = sortDictKeys(data, ['name', 'type', 'val'])
# 並べ替えられた data 辞書を出力します。
print(data)
このコードは、与えられた data 辞書を {'name’: 2, 'type’: 3, 'val’: 1} のように、指定されたキーの順序に従って並べ替えます。
JavaScriptコードの説明文をコメントアウトする
「ChatGPT」にJavaScriptコードの説明文をコメントアウトして貰った結果になります。
以下のJavaScriptにてコードの説明文をコメントアウトしたコードを生成して下さい。
let sec = 100000;
let day = Math.floor(sec / 86400);
let hour = Math.floor(sec % 86400 / 3600);
let min = Math.floor(sec % 3600 / 60);
let rem = sec % 60;
console.log(${day}日${hour}時間${min}分${rem}秒);
GPT-3.5の結果
コメントアウトされた説明文を追加しました。
// 変数"sec"を定義して、100000で初期化する
let sec = 100000;
// 変数"sec"を1日(86400秒)で割り、小数点以下を切り捨てた値を変数"day"に代入する
// 変数"sec"を1日で割った余りを変数"hour"に代入する
let day = Math.floor(sec / 86400);
let hour = Math.floor(sec % 86400 / 3600);
// 変数"sec"を1時間(3600秒)で割り、小数点以下を切り捨てた値を変数"min"に代入する
// 変数"sec"を1分(60秒)で割った余りを変数"rem"に代入する
let min = Math.floor(sec % 3600 / 60);
let rem = sec % 60;
// 変数"day"、"hour"、"min"、"rem"の値を文字列として結合し、コンソールに出力する
console.log(${day}日${hour}時間${min}分${rem}秒);
GPT-4の結果
コメントアウトされた説明文を追加しました。
// 以下のコードは、与えられた秒数を日、時間、分、秒に変換して表示するJavaScriptプログラムです。
// 変数 sec に 100000 を代入
let sec = 100000;
// 1日は86400秒なので、sec を 86400 で割って小数点以下を切り捨てた値を day に代入
let day = Math.floor(sec / 86400);
// 残りの秒数を 86400 で割った余りを hour に代入し、3600 で割って小数点以下を切り捨てた値を hour に再代入
let hour = Math.floor(sec % 86400 / 3600);
// 残りの秒数を 3600 で割った余りを min に代入し、60 で割って小数点以下を切り捨てた値を min に再代入
let min = Math.floor(sec % 3600 / 60);
// 残りの秒数を 60 で割った余りを rem に代入
let rem = sec % 60;
// 結果をテンプレートリテラルでフォーマットし、コンソールに表示
console.log(${day}日${hour}時間${min}分${rem}秒);
結果として、GPT-4の方がより詳細にコメントアウトする事が確認できますが、単純にコメントアウトの文字数が増えるだけでGPT-3でも十分に理解できるため、コード上のコメントアウトとするにはGPT-3の方が向いているのかも知れません。
ディスカッション
コメント一覧
まだ、コメントがありません