プログラミングの勉強を初めて3日目でPython3の復習として何かできないかと思い, とりあえずマンセル値を要素ごとに分解してみた
前提とコード
- マンセル表色系は色を色相 (Hue, h), 明度 (Value, v), 彩度 (Chroma, c) で色を表現する方法 (Munsell Color System).
-
「h v/c」の形で表記される.
- e.g.) 5YR 2.5/12
- 色相 (Hue): 5YR
- 明度 (Value): 2.5
- 彩度 (Chroma): 12
- 色相 (Hue): 5YR
- e.g.) 5YR 2.5/12
- 無彩色の場合は, 色相「N」と明度のみで表される.
- e.g.) N 4.5
- 色相 (Hue): N
- 明度 (Value): 4.5
- 色相 (Hue): N
- e.g.) N 4.5
入力値が, 「h c/v」(有彩色) の場合と,「h v」(無彩色) の場合があるため,
- まず, 入力値を「h」と「v/c」に分解し,
- 「h」の値で有彩色か無彩色かを判別して処理を分ける.
# coding: utf-8
#標準入力に"h v/c"の形式でマンセル値を入力し, munsell_code変数に代入
munsell_code = input()
#hとv/cを分離
divH_VC = munsell_code.split()
#Hue変数にhを代入, tempVC変数にv/cを代入
Hue = divH_VC[0]
tempVC = divH_VC[1]
print("Hue:" + Hue)
#無彩色と有彩色で条件分け
#無彩色の場合, tempVCをValueとして出力
if Hue == "N":
print("Value:" + tempVC)
#有彩色の場合, v/cを/で分離
else:
divV_C = tempVC.split("/")
#Value変数とChroma変数にそれぞれvとcの値を代入
Value = divV_C[0]
Chroma = divV_C[1]
print("Value:" + Value)
print("Chroma:" + Chroma)
#入出力例
入力1
10YR 4.5/12
出力1
Hue:10YR
Value:4.5
Chroma:12
入力2
N 5.5
出力2
Hue:N
Value:5.5
今後の目標
入力値が正しくない場合 (h v/cの間にスペースがない,不適切な場所にスペースがある等) の処理なども追加したい.