全くコードが書けなかったころの話
2017年12月22日 金曜日
プログラミングに興味あったし、HTML、CSSは存分に書けるので少し勉強すれば習得できると考えていた。しかし、勉強を始めて数年間全くコードを書けなかった。
なんとなく理解してるが、コードは書けない
やりたいことはある。書くべきコードもなんとなく想像できる。使うアルゴリズムもぼやっと思いつく。
でもコードが書けない。
1から100までの偶数をすべて表示
for i in range(100):
if 偶数かどうか?: # ここがどうしても書けない
print(i)
文字列内の半角スペースを''に置換し、置換後の文字数を取得
s = 'あいう えお かきくけ こ'
sの半角スペースを消す # コードが書けない
その後の文字数を数える # コードが書けない
数字の表現でint型とstr型の区別がつかない
a = 123
s = '321'
a + s # 123'321'と出力されることを期待している
- 文字列 + 変数 + 文字列 の結果が理解できない
s = '123'
'好きな数字はsです。' # '好きな数字は' + s + 'です。'とは書けない
変数、関数の理解に乏しい
def square(num):
x = num ** 2
return x
square(123) # a = square(123)とは書けない
print(a) # あとで使いまわすため、aという変数を使いたい
# 諦めてprint(square(123))とか書いてしまったり
引数が理解できない
def square():
num = 5
x = num ** 2
return x
square # square()とは書けない
# カッコの中に何もないのに何故カッコが必要なの?とか考える
square() # ならばと、コピペを試す
↑このコピペしたら動いたという発想と成功体験(?)が下記の間違いを生む
def square(num):
x = num ** 2
return x
square(num) # コピペしたのに動かない……
# square(5)とは書けない
- コピペでjQueryやJavascript書いたりするが、改変することはできない。
- 本やwebページを参考に、写経してアプリが動くところまで書き進めるも、それ以上は何もできない。やりたいと思うことをコードで書いても思うように動かないし、なぜ動かないか調べるだけで何日もかかり、修正方法が理解できず、コードは元に戻してしまう。
配列の添え字を使えない
配列の例題としては下記のようなものだとしよう。
spamという名前の変数に格納されているリストの3番目の要素に'hello'という値を代入するにはどうすればよいですか?(spamの値は[2, 4, 6, 8, 10]とします。
答えは
spam[2] = 'hello'
なのだが、コードが書けなかったときは以下のように考えていた。
spamの3番目が添え字でいえば2なのは分かる。spamの3番目の値は6だ。ここまではOK。
で、この6を'hello'にするのだから
6 = 'hello'
こういうことだろう。でもこれが動かないことは分かっている。なぜなら6は変数じゃないからだ。ならこの6を'hello'に変えるにはどうすればいいのだろう?分からない……。
# もしspamが以下のような状態なら簡単に解けるのに
n = 6
spam = [2, 4, n, 8, 10]
これの答えなら
n = 'hello'
これで文句あるまい。
と。こういった具合でコードが書けなかった。
ちなみに、添え字でアクセスする手法をいつ理解したかは覚えていない。
更新情報
2018.1.13配列の添え字を使えないを追記しました。