Pythonのプログラムの1行目に# coding: UTF-8と記述して、ターミナルでプログラムを実行すると、「File "<string>", line 1」というエラーメッセージが表示されますが、原因が分からず何を修正すべきかが分かりません..。どなたか教えていただけないでしょうか。
[ターミナル]
pybot> さようなら
Traceback (most recent call last):
File "pybot.py", line 48, in <module>
command = input('pybot> ')
File "<string>", line 1
さようなら
^
python
1# coding: UTF-8 **※1行目** 2from pybot_eto import eto_command 3from pybot_random import choice_command, dice_command 4from pybot_datetime import today_command, now_command, weekday_command 5
Python
1while True: 2 command = input('pybot> ')**※48行目** 3 response = "" 4 try: 5 for key in bot_dict: 6 if key in command: 7 response = bot_dict[key] 8 break 9
Python3 から utf-8 であれば cording 指定不要になりましたよ。
coding行を削除するとどうなりますか?
何の種類のエラーですか?(ValueErrorとかの種類のこと)
コメントありがとうございます。
coding行を削除して実行すると以下のメッセージが表示されます。
(エラーメッセージ)
File "pybot.py", line 7
SyntaxError: Non-ASCII character '\xe3' in file pybot.py on line 7, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
(プログラム)
※1行目は削除
from pybot_eto import eto_command
from pybot_random import choice_command, dice_command
from pybot_datetime import today_command, now_command, weekday_command
bot_dict = {
'こんにちは': 'コンニチハ', ※7行目
'ありがとう': 'どういたしまして',
'さようなら': 'さいなら',
}
エラーの種類はSyntaxError: invalid syntaxです。(coding行を# coding: UTF-8とした場合)
確認ですが、スクリプトファイルはUTF-8で保存されてますよね?
すみません。初心者でよく分かっていないのですが、スクリプトファイルがUTF-8で保存されているかどうかをどのように確認すれば良いかが分かっていません。教えていただけますと幸いです。
スクリプトはどうやって作られたのでしょうか?
テキストエディタであれば保存するときに文字コードを指定できるはずです。
Pythonバージョン2 のコマンドで実行しているようですね。それであれば coding指定が必要です。
Pythonバージョン3 はインストールしていませんか? python2 コマンドと python3 コマンドの両方がインストールされていることもあります。
megさん、スクリプトはAtomというエディタで作成しています。
ファイル保存時に文字コードを指定する箇所がないので、どのように指定するのか調べてみます。
shiracamusさん
すみません。先ほどPython3をインストールしました。再度実行してみます。
Python2 ですと input() では数値しか入力できません。raw_input() で文字列を入力できます。
Python3 では input() で文字列が入力されます。
megさん、Shiracamusさん、
Python3をインストールした後にcoding設定を削除したら、エラーメッセージが出なくなり問題なくプログラムが実行できるようになりました。
お忙しい中教えていただきありがとうございました。
回答1件
あなたの回答
tips
プレビュー