前提・実現したいこと
python3でコードを書いていて、
execを使うとき、replaceを使って文字列中のバックスラッシュをほかの文字に置き換えようとしたとき
以下のエラーメッセージが発生しました。
PCの環境はwindows10
atom runnerで実行しています。
実行に使うpythonのインタープリタはpythonのサイトからダウンロードしてきたものです。
初学者ですので、至らぬ点もあると思いますが、ご助言いただけると幸いです。
発生している問題・エラーメッセージ
SyntaxError: invalid syntax
該当のソースコード
python3
1text1 = 'a\b\c' 2text2 = 'd\e\f' 3 4 5for i in range(1,3): 6 exec('text{} =text{}.replace(\'\\',\'A\')'.format(i,i)) 7 exec('print(text{})'.format(i))
試したこと
atom runnerで実行していたので、python付属のIDLEでも実行してみましたが、変化ありませんでした。
また、バックスラッシュをaに変更して、
python3
1text1 = 'a\b\c' 2text2 = 'd\e\f' 3 4for i in range(1,3): 5 exec('text{} =text{}.replace(\'a\',\'A\')'.format(i,i)) 6 exec('print(text{})'.format(i))
としてみると、
python3
1A\b\c 2d\e\f
想定通りの結果が得られました。
補足情報
execを使用しないほうがいいなどの回答ではなく、文字列としてaは置き換えることができ、バックスラッシュではエラーとなる理由が知りたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。