やりたかったこと
Progateの「Python 学習コース Ⅳ」で完成したコードをCloud9で写経&動作させる。
写経→動作がしたかっただけなのに3回躓く
Progateの「Python 学習コース Ⅳ」で理解が追い付かなくなってきていると感じたため、お手軽にCloud9でコードを写経して動作させようと思ったのがそもそもの発端です。
「写経さえ正確にやればコードは動くはず」と思った私の見通しは甘かったf^^;
今回躓いたところ
- 文字コード
- モジュール (ファイル) が見つからない
- bashに入力できない
エラー1!!! ASCII文字列じゃないのが入ってるよ!
エラー文
SyntaxError: Non-ASCII character '\xe3' in file filename.py on line 12, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
→原因
Pythonはソースコード内の文字列をasciiと想定して処理する。そのため、マルチバイトである日本語がコード内 (たとえコメント内であっても) にあればエラーが起きる。
→対処方法
コード先頭に# -*- coding: utf-8 -*-
を挿入
http://yono.ccさん、ありがとうございます!
エラー2!!! memu_item?そんなモジュールはないよ?
エラー文
Traceback (most recent call last):
File "py4page17_scrypt.py", line 2, in <module>
from memu_item import MenuItem
ImportError: No module named memu_item
→原因
モジュール名 (ファイル名) をmemu_item.pyからpy4page17_menu_item.pyに変更したことを忘れていた。
そういえばProgateからコードをダウンロードしたときにファイル名を変更してたなー。あはは。
→対処方法
「from py4page17_menu_item import MenuItem」に変更
エラー3!!! ん? cloud9のbashに入力できなくなった!
→原因
bash画面で[Ctrl]+[s]キーを押したから。
→対処方法
[Ctrl]+[q]キーを押す。
atmarkITさん、ありがとうございます!
[編集提案]コードの前後には空行を
khskさん、編集提案ありがとうございました!
バッククオート * 3 の前に「+」をつけるとコード部分が黒く反転して見やすくなる、ということを初めて知りました(ノ*゚▽゚)ノ
空行をいれたらブロックとして認識され、+は差分表示だったのですね
もしかして人間性をさがせよ QiitaのTypo検出 のTypo修正プログラムで引っかけてくれた。。。? 私もこんな風にプログラム書けるようになりたい