ChatGPTにJavascriptをPythonに変換して貰った結果

ChatGPT プログラム,ChatGPT

ChatGPTにJavascriptをPythonに変換して貰った結果

OpenAIの対話型AIモデル「ChatGPT」にいくつかのJavascriptをPythonに変換して貰ってみました。

JavascriptとPythonでは用途が異なってきますのでChatGPT的にも、まあまあ想定外のはず、どうなるのでしょう。

確認環境
  • ChatGPT バージョン:Jan 30 Version

AIにJavascriptをPythonに変換して貰った結果

「ChatGPT」にJavascriptをPython変換して貰った結果になります。

オブジェクトの文字列連結をPythonの辞書として変換できるか

文字列や数値、配列やリスト、オブジェクトと辞書など、そういったところは余裕で変換できることが予想できますね。

関連:JavaScript | オブジェクトの値をjoin()で連結して文字列に変換する方法 | ONE NOTES

以下のJavascriptをPythonに変換して下さい。

let obj = { a: 'apple', b: 'banana', c: 'pine' };
let text = Object.values(obj).join(',');

console.log(text);
// apple,banana,pine

以下は、与えられたJavaScriptコードをPythonに変換したものです。

obj = {'a': 'apple', 'b': 'banana', 'c': 'pine'}
text = ",".join(map(str, obj.values()))

print(text)
# apple,banana,pine

このJavaScriptコードは、配列ではなく文字列を値として持つオブジェクトを扱っています。それ以外は、前回の回答と同じです。Pythonの辞書の値は、リストと同様に、join()メソッドを使って文字列で結合することができます。

OSがダークモードかどうか判別するコード

windowオブジェクトを使ったフロントエンド系のコードはどうだろうか。

関連:JavaScript | ダークモードかどうかを判別する | ONE NOTES

if (window.matchMedia('(prefers-color-scheme: dark)').matches == true) {
	console.log('ダークモードです。');
} else {
	console.log('ダークモードではありません。');
}

このコードはWebブラウザのJavaScriptで動作するコードであり、Pythonでは直接使用できません。

# Pythonでは直接使用できないコード

このコードは、現在のブラウザのカラースキームがダークモードであるかどうかをチェックしています。JavaScriptのwindowオブジェクトは、ブラウザのグローバルオブジェクトであり、Pythonには存在しません。また、matchMedia()関数はブラウザAPIの一部であり、Pythonでは直接使用できません。 代わりに、Pythonでは他の方法を使用して、ダークモードの設定を取得する必要があります。たとえば、以下のような方法があります。

# macOS上のダークモードを取得する例

import subprocess

# macOSのdefaultsコマンドを使ってダークモードの設定を取得する
output = subprocess.check_output("defaults read -g AppleInterfaceStyle", shell=True)

if output.strip() == b"Dark":
    print("ダークモードです。")
else:
    print("ダークモードではありません。")

Windowsの場合は、レジストリエントリーからレジストリキーを取得することができます。
以下は、Windowsのレジストリキーからダークモードの設定を取得するPythonコードの例です。

import winreg

# レジストリキーを取得する
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize")

# レジストリエントリーからダークモードの設定を取得する
value, _ = winreg.QueryValueEx(key, "AppsUseLightTheme")
if value == 0:
    print("ダークモードです。")
else:
    print("ダークモードではありません。")

このコードは、winregモジュールを使用してWindowsのレジストリエントリーからレジストリキーを取得し、QueryValueEx()関数を使用してダークモードの設定を取得します。 AppsUseLightThemeキーの値が0の場合、ダークモードが有効になっていると判断されます。上記のコードは、Python 3で動作します。Python 2を使用する場合は、print()ステートメントを修正する必要があります。

実際に機能するか検証してみましたが、Windowsでは正常にOSがダークモードかどうか判定できました。

クリップボードにテキストをコピーするコード

関連:JavaScript | テキストをクリップボードにコピーする方法 | ONE NOTES

navigator.clipboard.writeText('コピーテキスト').then(() => {
	console.log('クリップボードにコピーしました。')
}, () => {
	console.log('クリップボードにコピーできませんでした。')
});

以下は、与えられたJavaScriptコードをPythonに変換したものです。ただし、このコードはWebブラウザのJavaScriptで動作するコードであり、Pythonでは直接使用できません。

# Pythonでは直接使用できないコード

このコードは、Webページ上のテキストをクリップボードにコピーする方法を示しています。ブラウザには、navigator.clipboardオブジェクトがあり、これを使用してクリップボードにアクセスできます。Pythonでは、クリップボードにアクセスするために外部のライブラリが必要になります。たとえば、Windowsの場合は、pyperclipライブラリを使用して次のようにクリップボードにテキストをコピーすることができます。

import pyperclip

text = "コピーテキスト"
try:
    pyperclip.copy(text)
    print("クリップボードにコピーしました。")
except pyperclip.PyperclipException:
    print("クリップボードにコピーできませんでした。")

上記のコードは、pyperclipライブラリを使用して、指定されたテキストをクリップボードにコピーします。copy()関数は、テキストをクリップボードにコピーできなかった場合に例外をスローすることがあります。PyperclipExceptionをキャッチすることで、クリップボードにコピーできなかった場合にメッセージを表示することができます。

2点の座標から距離を計算するコード

関連:JavaScript | 2点の座標から距離を計算・取得する方法 | ONE NOTES

let A = { x: 10, y: 10 };
let B = { x: 20, y: 20 };
let dist = Math.sqrt(Math.pow(A.x - B.x, 2) + Math.pow(A.y - B.y, 2));

console.log(dist);
// 14.142135623730951

以下は、与えられたJavaScriptコードをPythonに変換したものです。

import math

A = {'x': 10, 'y': 10}
B = {'x': 20, 'y': 20}
dist = math.sqrt((A['x'] - B['x']) ** 2 + (A['y'] - B['y']) ** 2)

print(dist)
# 14.142135623730951

このコードは、2つの点AとBの間の距離を計算しています。Pythonの場合、オブジェクトは辞書として表現されます。JavaScriptのオブジェクトに相当するPythonの辞書は、中括弧で囲まれたキーと値のペアの集合です。Pythonのmathモジュールには、平方根を計算するためのsqrt()関数があります。pow()関数は、累乗を計算するために使用されます。上記のコードでは、距離を計算する式がPythonの数学演算子を使用して書かれています。

結論、JavascriptとPythonといった用途が結構違ってくるスクリプトコードも、問題なくPythonに変換してくれています。
それが、どいうったコードかも識別しているのは凄いですね。