for
ステートメントにexec
ステートメントを使用すると、エラーが発生します。 なぜPythonでexec文を使用するとこの "エラー"が発生しますか?
exec 'for i in A_'+aws_n+'_DATI[:]:'
exec ' a_'+aws_n+'_tt += {datetime.datetime.strptime(A_'+aws_n+'_DATI[n], "%Y%m%d%H%M")}'
exec ' n += 1'
結果:
**Traceback (most recent call last):
File "aws_merge.py", line 140, in <module>
exec 'for i in A_'+aws_n+'_DATI[:]:'
File "<string>", line 1
for i in A_156_DATI[:]:
^
SyntaxError: unexpected EOF while parsing**
しかし、上記のコードでは、あなたはそれは、変数aws_n
を処理手動exec
文を削除した場合何の問題もなく実行されます。
for i in A_156_DATI[:]:
print n
n += 1
なぜ動作していないのですか?
「exec」を使用する理由はほとんどありません。また、 'A_156_DATI'のように変数名を動的に作成するために、それを使用して_definitely **ではありません**良い理由です。しかし、 'exec'(と' eval')の詳細については、[この優秀な回答](https://stackoverflow.com/a/29456463/4014959)をご覧ください。 –
Pythonでeval、exec、コンパイルの違いは何ですか?(https://stackoverflow.com/questions/2220699/whats-the-difference-between-eval-exec-and-compile-in- python) – DyZ