「プログラム」タグアーカイブ

python のエラー

コピペして事を済まそうとする私が悪いんですけどね。 python 好きじゃないっす。

Raspberry Pi でスライドショーをするっていう話、先日したかと思うのですが、あまりうまくいってません。 Zero W 君のパワーが圧倒的に不足していることが原因なのですね。動画( MP4 )を再生させようと思っていたのですが、パワー不足でダメダメです。方向転換してトランジッションはなし。単純なスライドショーをしようとしましたが、いまいちでした。

そこで、ググってみたところ、良さそうな事例が載っていてソースコードも掲載されていたのでコピペでソースコードを持ってきました。私が考えていたのはランダムに表示させたいと言うことだったのですが、そのソースは順番に表示させるものでした。

それじゃ面白くないので、ソースコードの一部を変えてやろうと思ったわけです。まぁ、タイトルにもなっているとおり、ソースコードは python です。私は python をいじったことがありません。インデントの深さで意味が変わるんだ。ということぐらいしか知りませんでしたし、インデントの深さが括弧の代わりになるなんてとても信じられず、学ぶこともやめて頭の隅っこに置いていました。

エラー出るわけですよ。どこにも文法上のエラーなんぞ見当たらないのにエラー出るんですね。で、私の性格上、エラーコードとか見る前に「どこ間違ったかな?」とソースコードをのぞきに行きます。見当たらない。また実行する。エラーが出る。ちょこちょこ変えているうちに、元々のコードに戻したのにもかかわらずエラーが出るようになってしまいました。

どうなったんだ? お手上げ状態ですね。そこで初めてエラーを覗く。遅いですね。最初から見とけって言われそうですが、エラーを読んだのは切羽詰まってからでした。そこには …

TabError: inconsistent use of tabs and spaces in indentation

タブとスペースの一貫性のない使い方。とでも言うんでしょうか? これ見て、タブとスペースの混在が原因か? とピンときました。案の定、混在してましたよ。私はソースコードにはタブを使うのが決まりのようになっているんですが、コピペしたソースコードはタブではなく、スペースが使われていました。考えてみれば、 html の中にタブが入るのはほとんどありませんので、スペースですよね。

私が追記したりしたところにはタブが、元々のコードにはスペースが使われていました。そんなのもエラーとして吐き出すんですね。括弧使えばいいのに。こんな見えにくいものもエラーとしてしまう python は、やはり好きになれません(自分のことを棚に上げているのはもちろんです)。


平らな道でもつまずくことがある。人間の運命もそうしたものだ。神以外に誰も真実を知るものはないのだから。

チェーホフ