Pythonでユーザー入力から動的に名前が付けられた変数を作成してみます。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■ユーザー入力から動的に名前が付けられた変数を作成する
では、早速Pythonでユーザー入力から動的に名前が付けられた変数を作成してみます。
■globals ()関数を使用する
■コード
dynamicvariable_name = "testvariable" globals()[dynamicvariable_name] = "テストだよ" print(testvariable)
dynamicvariable_name(動的変数名)という変数を作成し、testvariableを格納します。
格納後、globals ()関数を使用し、dynamicvariable_name(動的変数名)に格納したtestvariableに値を代入しますが、globals ()関数で指定するのは、dynamicvariable_name(動的変数名)という変数になります。今回は文字列を代入しています。
代入後、print関数でdynamicvariable_name(動的変数名)に格納したtestvariableという動的変数に代入した値を出力してみます。
■実行
このスクリプトを「dynamicvariablename_test1.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、動的変数に代入した値が出力されることを確認できました。
■locals()関数を使用する
次にlocals()関数を使用し、動的変数を作成し、その中に値を代入してみます。
■コード
dynamicvariable_name = "testvariable" locals()[dynamicvariable_name] = "テストだよ" print(testvariable)
globals ()関数を使用した時と同じように、dynamicvariable_name(動的変数名)という変数を作成し、testvariableを格納します。
格納後、locals()関数を使用し、dynamicvariable_name(動的変数名)という変数を指定し、その中のtestvariableに値を代入します。
代入後、dynamicvariable_name(動的変数名)に格納したtestvariableという動的変数に代入した値を出力してみます。
■実行
このスクリプトを「dynamicvariablename_test2.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、globals ()関数を使用した時と同じで、動的変数に代入した値が出力されることを確認できました。
■exec()関数を使用する
次にexec()関数を使用し、動的変数を作成し、その中に値を代入してみます。
■コード
dynamicvariable_name = "testvariable" exec("%s = %d" % (dynamicvariable_name,1000)) print(testvariable)
exec()関数を使用し、dynamicvariable_name(動的変数名)という変数を指定し、その中に値を代入します。
代入後、dynamicvariable_name(動的変数名)という変数に格納したtestvariableという動的変数へ代入した値を出力してみます。
■実行
このスクリプトを「dynamicvariablename_test3.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、dynamicvariable_name(動的変数名)という変数に格納したtestvariableという動的変数へ代入した値が出力されることが確認できました。
■vars()関数を使用する
次にvars()関数を使用し、動的変数を作成し、その中に値を代入してみます。
■コード
dynamicvariable_name = "testvariable" vars()[dynamicvariable_name] = "テストだよ" print(testvariable)
vars()関数を使用し、dynamicvariable_name(動的変数名)という変数を指定し、その中に値を代入します。
代入後、dynamicvariable_name(動的変数名)という変数に格納したtestvariableという動的変数へ代入した値を出力してみます。
■実行
このスクリプトを「dynamicvariablename_test4.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、vars()関数を使用し、dynamicvariable_name(動的変数名)という変数に格納したtestvariableという動的変数へ代入した値が出力されることが確認できました。
コメント