2017-12-10 8 views
-3

実際にと書式を設定してと入力して適切なタイミングで実行する方法はありますか?ユーザー入力としてコードを実行するには?

のような何か:今

num = 5 
command = input() 
# do something with command 

私は、入力として"print(num)"を入力すると、それは出力

5 

だけではなく、Pythonは、私はCで、この問題に対する解決策を持っているのが大好きだはず、 C++またはJavaも同様です。あるよう

+0

Javaの場合、beanshellがあります。http://www.beanshell.org/ Javaソースコードを解釈できます。 –

+6

誰かがハードドライブをフォーマットするプログラムやキーロガーをインストールするまで、楽しいゲームです。すべてが特権で実行中です。 – StoryTeller

+1

'eval'または' exec'への入力は正しくフォーマットされるだけでなく、信頼できるソースから来なければなりません。 'eval'と' exec'はセキュリティ上のリスクとなる可能性があるため、一般的に避けてください。詳細は、SOベテランNed Batchelderの[Eval really dangerous](http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html)を参照してください。また、 'eval' /' exec'は_slow_です。 –

答えて

1

は、あなたが実際に示唆することは動作します:

>>> x=1 
>>> eval(input()) 
print(x) 
1 

もう一つの方法は、あなたがexec方法があるのを見て(そしてその上にはevalのための詳細な説明である)ことができます。

あなたが行っていることに応じて、これは悪い考えかもしれません。環境を制限するには、localglobalのパラメータを参照してください。

関連する問題