第5回 練習問題1

月の陰暦名称(タプル)の定義

各月の陰暦名称(異称)をタプルで定義しなさい。 その定義したタプルを用いて,1行目に睦月,2行目に如月,……,12行目に師走 の順に出力するプログラムをwhile文またはfor文を効果的に用いて作成しなさい。

H:\prg1\05> python month.py↵
睦月
如月
弥生
卯月
皐月
水無月
文月
葉月
長月
神無月
霜月
師走


三目並べ(○×ゲーム)の2次元配列

下図のような○×ゲーム(Tick Tac Toe)の対戦中の升目(3×3)を 2次元配列cells[][](リストのリスト)で表現しなさい。

ここで,cells[i][j]が0ならi行j列のマスは空き, 1なら○が置いてある,2なら×が置いてある状態を表現しているものとする。



男子柔道階級

リオ五輪男子柔道は,下表の通り超軽量級から重量級の7階級に分けられている。

男子柔道階級

階級(超軽量級, 軽軽量級, 軽量級, 軽中量級, 中量級, 軽重量級, 重量級)と 各階級の体重(kg)の上限値(60, 66, 73, 81, 90, 100, 1000)をそれぞれタプルで定義しなさい。 その定義したタプルを用いて,体重(kg,1000未満の整数)を入力させて, 階級を出力するプログラムをwhile文またはfor文を効果的に用いて作成しなさい。 なお,重量級の場合,体重の上限値は定められていないので, ここでは重量級の体重の上限値を1000kgとして定義しておく。 (入力される体重は,1000kg以下とする。)

judo_man7.py

n = 7   # 階級の数
wd = ("超軽量級", "軽軽量級", "軽量級", "軽中量級", "中量級", "軽重量級", "重量級")
wd_upper = (60, 66, 73, 81, 90, 100, 1000)   # Weight Divisions upper limits

weight = int(input("体重を入力してください:"))
if weight <= wd_upper[(ア)]:   # 超軽量級かどうかの判断
	print("あなたの階級は、", wd[(ア)], "です。")
else:
	i = 1
	while i < n:
		if weight > wd_upper[(イ)] and weight <= wd_upper[(ウ)]: 
			print("あなたの階級は、", wd[(ウ)], "です。")
		i = i + 1

break文を用いた別解

n = 7   # 階級の数
wd = ("超軽量級", "軽軽量級", "軽量級", "軽中量級", "中量級", "軽重量級", "重量級")
wd_upper = (60, 66, 73, 81, 90, 100, 1000)   # Weight Divisions upper limits

weight = int(input("体重を入力してください:"))
i = 0
while i < n:
	if(weight <= wd_upper[(ウ)]):
		print("あなたの階級は、", wd[(ウ)], "です。")
		break
	i = i + 1