0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

14歳の長男に出題するPythoのF○○○B○○○

Last updated at Posted at 2020-06-24

##まえがき
登場人物

  • Ruby、JavaScript好きぐらいでPythonは学習したことがない父親の自分
  • スプラトゥーンとマイクラが大好きな長男

ある日の父子の会話

長男:プログラミングやりたい
俺:なぜ急に?
長男:なんとなく
俺:マイクラの影響?
長男:Youtubeでなんとなく興味を持った
俺:どんなことやりたい?
長男:とりあえずプログラムやりたい
俺:言語どうする?
長男:とと(父の意)は何がいいと思う?

俺:うーん(お手軽にJavaScriptと言ってしまうか?それともRubyを勧めるか?いや、流行りはPythonだろか?質問があっても困らないところにしたい。CとJavaは困る)

俺:RubyかPythonはどうだろうか?
長男:パイソンで!(即答
俺:なぜにパイソン?
長男:聞いたことあるから

強いなPython、中学生でも知っているとは。とりあえず初心者向けの本を購入して長男に渡した。

Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ (Amazon)

##課題を出したい
学習したからには課題を出したい。
初心者に出す課題といったらF○○○B○○○で決まりでしょう。F○○○B○○○ダンジョンを思い出します。

###課題
1から100まで、3で割りけれるときはF○○○、5で割り切れるときはB○○○、3と5で割り切れるときはFizzBuzzを出力する。

###自由回答
最初は自由に回答させます。

##条件付きの課題
Python初心者の自分が長男に課題を出すなら、父親なりの回答を用意しておきたいと思います。

###基本形
これを利用することを条件とします。

for i in range(1,101):
	list = [i, "F○○○", "B○○○", "F○○○B○○○"]
	#課題

###1:制限なし
制限なしの回答例

for i in range(1,101):
	list = [i, "F○○○", "B○○○", "F○○○B○○○"]
	if i%15==0:
		num=3
	elif i%5==0:
		num=2
	elif i%3==0:
		num=1
	else:
		num=0
	print(list[num])

###2:一行
ikkoじゃないよ、1行で書く回答例

for i in range(1,101):
	list = [i, "F○○○", "B○○○", "F○○○B○○○"]
	print(list[3 if i%15==0 else 2 if i%5==0 else 1 if i%3==0 else 0])

###3:if禁止、行数制限なし
if禁止、行数制限なしの回答例

for i in range(1,101):
    fb = [i, "F○○○", "B○○○", "F○○○B○○○"]
    num = list('300102100120100')
    print(fb[int(num[i%15])])

###4:if禁止、一行
if禁止、1行で書く回答例

for i in range(1,101):
	list = [i, "F○○○", "B○○○", "F○○○B○○○"]
	print(list[bool(i%5==0)*2 + bool(i%3==0)])

###5:ifと%禁止
だめだ、分からなかった。

for i in range(1,101):
	list = [i, "F○○○", "B○○○", "F○○○B○○○"]
	# %禁止のコードはわからなかった

しらかみゅさん(ありがとうございます)に教えてもらった方法からひねり出すと(*1入れるとわかりやすかった)

for i in range(1,101):
	list = [i, "F○○○", "B○○○", "F○○○B○○○"]
	print(list[(i//3==i/3)*1 + (i//5==i/5)*2])

##おわりに
ここまで考えたんだから、長男よ、ちゃんと学習して俺に課題を出さしてくれ。
伏字にしたのはぐぐって見つからないように願っている。
教えていただいた「i//3==i/3」はぐぐらないと理解できなかった。
さすがに「ifと%と=禁止」は無理だと思う

0
2
3

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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?