[初心者] Cloud9でPythonを動かそうとしてつまずいたところ


やりたかったこと

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修正プログラムで引っかけてくれた。。。? 私もこんな風にプログラム書けるようになりたい