2019年11月4日月曜日

[Python]奇数の値のみ前後にダッシュ(-)を付ける。

問題

与えられた(引数)数値の中で、奇数の前後にダッシュ(-)マークを付けて文字列を返す関数を記述せよ。 ただし、開始および終了部分には付けないでください。

  • dashatize(274) -> '2-7-4'
  • dashatize(6815) -> '68-1-5'
  • dashatize(None) -> 'None'
  • dashatize(-1) -> '1'
  • dashatize(-28369) -> '28-3-6-9'

解答

def dashatize(num):
    try:
        return ''.join(['-'+i+'-' if int(i)%2 else i for i in str(abs(num))]).replace('--','-').strip('-')
    except:
        return 'None'