独学プログラミング学習が半年以上経過したのでプログラミング適正テスト(FizzBuzz問題)をやってみた【自分用記録】
ブログを書くのはいつぐらいぶりだろう。
ただいま。ワイのブログ♪^^
パソコンもしばらく使ってなかったので、電源を入れてもマウスが動かなかった。人間と同じで機械もロングバケーションすると身体がなまるのだろう。
あ、やばい。日記になってしまう伊予柑がするので、さっさと結果を書く。
☆.。.:*・FizzBuzzに挑戦☆.。.:*・
やりたいこと
100までのFizzBuzzを表示するプログラムを作る。
3で割り切れる場合は「Fizz」、5で割り切れる場合は「Buzz」、3と5で割り切れる場合は「Buzz」と表示する
やってみた
a = 100
for count in range(a+1):
if 0 == count % 3 and 0 == count % 5:
print("FizzBuzz")
elif count % 3 ==0:
print("Fizz")
elif count % 5 ==0:
print("Buzz")
else:
print(count)
結果
えっ・・Σ(゚д゚lll)
おかしい・・私の思惑では1 2 Fizz 4 Buss 7 8 Fizz...と表示されるはずなのに・・。
最後のelseを修正した
a = 20
for count in range(a+1):
if 0 == count % 3 and 0 == count % 5:
print("FizzBuzz")
elif count % 3 ==0:
print("Fizz")
elif count % 5 ==0:
print("Buzz")
else:
print(count)
結果
FizzBuzz
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
やったーー!!
これを出したかったの!!(>▽<)
・・・・ん?
この1の前にある"FizzBuzz"というのは一体・・・???
FizzBuzzって確か1から順に数を数えて~ってゲームなはずなんだけど。。よく分からない。ただこの1の前にあるFizzBuzzという文字に物凄く違和感を感じる。絶対表示おかしいよねこれ。いきなりゲームのクライマックスみたいになってるし。分からん。このFizzBuzzという文字は一体・・・。徒競走とかの「ヨーイ、ドン!」的なものか??とか頭を抱えてたら、0から数えてることに気がついた。
ので更に修正した
a = 20
for count in range(1,a+1):
if 0 == count % 3 and 0 == count % 5:
print("FizzBuzz")
elif count % 3 ==0:
print("Fizz")
elif count % 5 ==0:
print("Buzz")
else:
print(count)
結果
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
これで、3で割り切れる場合は「Fizz」、5で割り切れる場合は「Buzz」、3と5で割り切れる場合は「FizzBuzz」と表示された(と思う)
======================
追記
fizzBuzz問題で検索して
一番上に表示されたHPでは
下記のような出力が得られたら正解です。
1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz, 16, 17, Fizz, 19
と↑のように解答例が書かれていた。
他のページもいくつか見たけど、明らかに私の記述したプログラムはおかしくて、出力結果が同じということが信じられないくらいだった。私のような者がチーム全体の生産性を下げるのだろう。仕事じゃなくて本当によかった。
======================
3度目の修正で
for count in range(a+1):
を
for count in range(1,a+1):
としたけど、この表現なんか凄い変な感じする。
突発的な衝動により始めたので、よりによって正解が手元にないから、あとでFizzBuzzで検索して人様のプログラムの組み方を見ようと思う。
ちなみに 割った余りが0かどうか調べる時に 最初%とじゃなく間違えて/にしてた。途中で奇跡的に気づいて%に直せたけど。演算の表記とか殆ど覚えてない。使うときに見ればいいかというスタンスだがこれもいけないのだろうか。まあ使う内に覚えていくだろう・・・多分(希望)
FizzBuzzを終えた感想
正解と照らし合わせてないから、詳細は分からないけど照らし合わせるまでもなく、最低でも3度も修正した。FizzBuzzが解けるかどうかはプログラマー適正テストで使われており、これが解けないとプログラミングのセンスなし、と判断されるらしい。私はこの問題を順次と繰り返しと条件分岐をきちんと理解できているかのテストだと捉えた。
私は実際に不正解だったので、プログラミングの資質を調べる適正テストとしてもそれなりに機能しているのだろう。多分本当の適正テストだとしたら、もう手も足も出ない状態になったと断言できる。あとこのテストのおかげで、プログラミングに算数(数学)の素養がないといけないんだなあ、、と実感。
小学6年の時算数のテストで0点をとったことを思い出した。
ということは、少なくとも6年生で習う算数が丸々できないことを意味する。下手したら九九も怪しいレベル。
こわい・・・・
テストで0点をとる生徒なんて漫画の中、それもドラえもんに登場するのび太くらいなもんだと思っていたのに、自分がそれに該当しているなんて世界は何と狭いことか。
自分が教師なら確実に親御さんに連絡し、家庭訪問を願いでるだろう。当時の私の担任は私と一緒にいると馬鹿になりますよ、と私の友人達に警告していたが、先生私の親友を心配してくれてありがとう。むかつくけど、感謝しているという複雑な心境だ。
その友人は私と一緒にいた期間中はずっと成績がよかったので、先生が言ったことは外れたのだが、代わりに私の馬鹿は日を追うごとに加速していった。今思い返してもあそこまで勉強のできない生徒ってほんと珍しいと思う。いわゆる札付きの不良より私は成績が悪かったのだ。テストで点がとれない分、提出物で点を稼ごうとしたが、通知表の結果は1だった。どうせなら授業も放棄して試験勉強もしない方が賢いというものだ。
記憶をたどればたどるほど、よくそれで生きてこれたな…と思うことの連続なのでキリがない。プログラミングをしている時には動かない脳が今フル稼働している。私に関する知識がありすぎるのが原因だろう。よし。このへんでやめる。
あぁ。今日は本当にいいお天気だよ~^^
友人の子供が今3歳。
その子の宿題を一緒にやるとか、できないところを教えるとか、そういう未来を描いているからプログラミングから完全に離れないでいるけど、将来自分が役に立てる瞬間というのはくるのだろうか・・。
私の友人も自分の子供がまさか、今の今から私にロックオンされているとは思いもよらないだろう。…私はアップを始めている…
PC「準備運動が長すぎやしないか?」