質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

377閲覧

MacにてPythonを使ったスクリプトファイルの実行(invalid character in identifier)

thankyou

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/11/18 14:19

編集2017/11/18 15:01

###前提・実現したいこと
MacにてPythonを使ったスクリプトファイルの実行
環境:Python 3.6.3 :: Anaconda, Inc.

###発生している問題・エラーメッセージ
エラーメッセージ
$ python hungry.py
File "hungry.py", line 1
print (“I’m hungry!”)
^
SyntaxError: invalid character in identifier

###該当のソースコード
print (“I’m hungry!”)

###試したこと
pythonのスクリトファイルを実行するためにテキストエディット(標準テキスト)で上記ソースコードを保存し、pythonを動かしましたが、SyntaxError: invalid character in identifierが返されました。

保存されている上位ディレクトリには到達しているのでターミナルの使い方が問題ではなく、ソースコードに何か不備があるのだと思います。

###補足情報(言語/FW/ツール等のバージョンなど)
1.環境:Python 3.6.3 :: Anaconda, Inc.
2.オライリージャパンの"Deep learning"のP.9に該当する課題です。

###追記
以下、od -tx1 -Ax hungry.py | headの結果となります。
0000000 70 72 69 6e 74 28 e2 80 9c 49 e2 80 99 6d 20 68
0000010 75 6e 67 72 79 e2 80 9d 21 29
000001a

なぜエラーが返るのか、ご教授いただけないでしょうか。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2017/11/18 14:37

テキストエディタ は テキストエディット の間違いでしょうかね。編集して記述を改めた方がいいかと思います。ついでなので。ターミナルで od -tx1 -Ax hungry.py | head を実行した結果を追記すると有用な回答が得られるでしょう。
thankyou

2017/11/18 14:59

ご指摘ありがとうございます。はい、テキストエディットの間違いでした。また、追記のご提案ありがとうございます。
guest

回答3

0

ベストアンサー

Macのテキストエディットはデフォルトの設定だと二重引用符(")で文字列で囲むと、勝手に上向きと下向きのヤツ(“と”)に変換してしまう仕様だったと思います。他の方も指摘していますが、全角文字が保存したテキストファイルに含まれていないかどうかもう一度調べてみてはどうでしょうか?
追記:テキストエディットの設定は、テキストエディット->環境設定->新規書類->フォーマットで、標準テキストを選択し、オプションのスマート引用符のチェックを外せば二重引用符(")を勝手に変換しなくなります。テキストエディットはそもそもデフォルトだとリッチテキスト形式で保存されたり、設定を変えないと勝手に文字列を変換したりして純粋なtxtファイルをいじるには結構厄介なので、Atomなどのプログラミング用のテキストエディタを使うことをおすすめします。

投稿2017/11/18 23:35

編集2017/11/18 23:51
Paalon

総合スコア232

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thankyou

2017/11/19 00:03

スマート引用符のチェックを外したら I’m hungry!が出力されました!設定変更の手順など、ご丁寧にありがとうございました。 今度、Atomもインストールしてみます。
guest

0

手元の環境で同じファイルを作ってみましたが、正しく動きました。
SyntaxError: invalid character in identifierのエラーは、全角文字が混入している場合などに起こります。ファイルの中に全角スペースなどが混入していないか調べてみてください。

また、それ以外にもテキストフォーマットの問題である場合もあるようです。以下の質問も参考にしてみてください。
https://teratail.com/questions/57196
https://teratail.com/questions/75641

投稿2017/11/18 14:32

Udomomo

総合スコア1524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thankyou

2017/11/18 14:59

ご回答ありがとうございます。 先に申し上げれば良かったですが、頂戴したリンクも参照しており、テキストフォーマットとアスキー(txtファイル形式)を確認しましたが、問題はありませんでした。 お手数をおかけし、申し訳御座いませんでした。
guest

0

SyntaxError: invalid character in identifier

は、

構文エラー: 識別子に不正な文字が含まれています。

の意味です。例えば、どこかに大文字の空白が入っていたり(今回は見た感じありませんね)、目には見えない制御文字が入っていたりする可能性があります。なので、もう一度別のファイルを新規作成して、一から文字を打ち直すことをおすすめします(コピペ不可)。また、そのファイルをアップロードしていただければこちらで詳しく調べることも可能です。

投稿2017/11/18 14:32

Takahito_Ogawa

総合スコア229

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thankyou

2017/11/18 14:59

ご回答ありがとうございます。 ソースですが、 print (“I’m hungry!”) です。前後に改行もなく、この一行のみです。 (アップロードを試みましたが、該当ファイルが薄く表示され選択できませんした。申し訳ございません。) また、再度一からソースファイルを作り直して実行もしましたが、同じ結果となってしまいました。
Takahito_Ogawa

2017/11/18 15:09

od -tx1 -Ax hungry.py | headの結果を見ました。引用符に誤りがありますね。日本語変換で打ってしまっていませんか?かならず、英字モードで入力してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問