LoginSignup
3
2

More than 3 years have passed since last update.

python学習中に中カッコ{}と大カッコ[]の違いで時間を溶かした話【初学者が参考書片手にpython学習】

Last updated at Posted at 2020-12-02

はじめに

大高隆・著「動かして学ぶ!Python Django開発入門」を使用して
python・Djangoの学習を始めた初学者です。
ド級の素人なので、補足・ご指摘等コメントいただけると大変助かります。

{ }と[ ]の違い

{ }  ・・・中カッコ

[ ]  ・・・大カッコ
の違い。初学者の皆さんは果たして何がどう違うのかわかりますでしょうか。

僕はこれまで、なんとなーく配列は[]、辞書型で持つときは{}を
それぞれ使うのかー、くらいの認識でした。

大した違いはないでしょう、別に気に留めることもないでしょうと。
ですが、そんな考えをしていたら大変痛い目を見ました。

概要

前任者より作りかけのソースコードを引継ぎとあるアプリを開発中。
ある程度完成も見え、特に目立った深刻なエラーもなし。
さあテスト、というところで期待していたものとは違う挙動が。

どこがダメなんだ...な、なぜだ....
バカみたいに時間をかけてしまったが、結局{}と[]の違いが原因でした。
実際はもう少し複雑な処理ですが、ポイントになったのは下記でした。

list = {'G', 'B', 'C', 'L', 'Y'}
for i in list:
  print(i)

期待していた挙動↓

G
B
C
L
Y

実際にでた挙動

B
C
G
L
Y

並び変わっている!こいつのせいか!
ということで、

list = {'G', 'B', 'C', 'L', 'Y'}
↓
list = ['G', 'B', 'C', 'L', 'Y']

で解決。自分で記述をしたわけではなかったので、
流し見で確認するだけだとスルーされるくらいの差。
だがしかしとっても重要な差。

コードって動けばいいよね、じゃないことを感じた瞬間

自分自身まだ経験も浅く、いわゆる"コピペエンジニア"を脱却できていない。
偉大な先輩方がネットにたくさん情報を置いてくれているので、
とりあえずコピペして動かして、ワーイ完成。とどうしてもなりがち。

だけれども、確かにエラーもなく動いてはいるけれど、
果たしてそれは求めた動きなのか、とか、他のところへの影響はとか、
コードの意味や働きを理解しようとしないと自分は成長できないし、
他の人に迷惑をかけてしまうということが良くも悪くも実感できた一件でした。

3
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2