書き込んだプログラムをpythonの二枚めの画面でRun moduleで実行すると正常に行われるのですが、ターミナルで実行しようとすると三枚目のエラーがででしまいます。
どこを改善すればいいでしょうか、、、?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
ベストアンサー
自分はWindowsなので質問者さんと環境が違うのですが、Pythonを動かす環境は常にUTF8(プログラムのソースも実行する際のコンソール/端末のエンコーディングも)にしています。その方が物事が簡単に進むからですが・・・
エラーメッセージをみるとbashから起動したpythonインタープリタはソースコードのデフォルトのエンコーディングをUTF8ではなくlatin1と仮定しているようです。そこから以下の推測をしました。
bash
1$ locale 2LANG=ja_JP.UTF-8 3LC_CTYPE="ja_JP.UTF-8" 4LC_NUMERIC="ja_JP.UTF-8" 5LC_TIME="ja_JP.UTF-8" 6LC_COLLATE="ja_JP.UTF-8" 7LC_MONETARY="ja_JP.UTF-8" 8LC_MESSAGES="ja_JP.UTF-8" 9LC_ALL= 10 11$ python -V 12Python 2.7.16 13 14$ python3 -V 15Python 3.7.3 16 17$ echo '金' | od -tx1 180000000 e9 87 91 0a # 回答者注: UTF8で文字'金'はバイト0xe9で始まる 190000004 20 21$ cat kin.py 22print('金額') 23 24$ python3 kin.py 25金額 26 27$ python kin.py 28 File "kin.py", line 1 29SyntaxError: Non-ASCII character '\xe9' in file kin.py on line 1, but no encoding 30declared; see http://python.org/dev/peps/pep-0263/ for details 31 32$
自分の環境(Windows10, cygwin 64bit)だとデフォルトでCPython 2.7.xがインストールされており、そこへCPython 3.7.xをインストールすると
Python 2.7を起動する場合はpython
コマンド、
Python 3.7を起動する場合はpython3
コマンド、
のような環境になります。これはcygwinへの移植をしてくれている方がLinuxの一般的なインストールに合わせているからではないかと思っています。
さてPython3系であればソース上に#coding: utf8
と明記しなくてもソースコードをUTF8前提でパースしてくれると思うのですが、2.xだとエンコードを明記しないとlatin1でパースされると思います。
上の例のようにpythonで実行すると(2.7が動き)ご質問のエラーメッセージと同様になったのでひょっとしたらpython 2.7系のインタープリタを動かしてしまっているのではないかと思いました。
Macintoshの環境がないので詳細をよく知らないのですがネットの記事なんかをチラ見するとMacでも似た感じになっているように思えるので質問者さんがそうとは知らずにPython 2.7を動かしているような気がします。多分以下のようになるのではないでしょうか。
bash
1$ python -V 2Python 2.7.x(xがいくつかはわかりません) 3 4$ python3 -V 5Python 3.7.3 6 7$ locale 8詳細はわかりませんが、きっとUTF8になってる気がします。
もし上のとおりなら対処は簡単でターミナルで実行する際にpythonではなくpython3を実行すればよいと思います。
投稿2019/05/12 15:30
総合スコア18404
0
エラーメッセージは、「\xE9という非ASCII文字が1行目にあったが、エンコーディングが宣言されていない(ので、どういう文字なのか分からない)」というエラーです。
エラーメッセージに出ているURLにエンコーディングの宣言方法が書いてあります。
というか、こういうコードが書けると言うことは、入門書か入門サイトを見てのことだと思いますが、そこに書いてなかったですか?
投稿2019/05/12 15:10
総合スコア86295
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
細かなところは、確認してませんが、よくある文字コードエラーですね。
簡単には、半角英数字のみにすれば、解決すると思います。
保存時のコードが Shift-JISになっていると思うので、UTF-8にすれば、良いと思ったですが、ここでよくある質問なので、検索すると同じような質問が見つかると思います。
投稿2019/05/12 15:03
総合スコア6385
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
日本語とか混じるのであれば、1行目に
python
1# coding: utf-8
を書きましょう〜
投稿2019/05/12 15:01
総合スコア821
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/13 07:34