1
0

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 5 years have passed since last update.

入力されたマンセル値を要素ごとに分解する

Last updated at Posted at 2018-10-05

プログラミングの勉強を初めて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
  • 無彩色の場合は, 色相「N」と明度のみで表される.
    • e.g.) N 4.5
      • 色相 (Hue): N
      • 明度 (Value): 4.5

入力値が, 「h c/v」(有彩色) の場合と,「h v」(無彩色) の場合があるため,

  1. まず, 入力値を「h」と「v/c」に分解し,
  2. 「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の間にスペースがない,不適切な場所にスペースがある等) の処理なども追加したい.

1
0
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?