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に変換してくれています。
それが、どいうったコードかも識別しているのは凄いですね。
ディスカッション
コメント一覧
まだ、コメントがありません