Edited at

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

More than 1 year has passed since last update.


やりたかったこと

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