整数 n にコンマを追加し、結果を文字列として返す関数を作成する必要があります。
たとえば、1000 未満の数値にはコンマが追加されていません。数値 1343456765 は「1,343,456,765」として返されます。
def commas(n):
if len(n)<4:
return 'n'
else:
return (recursive formula)
整数 n にコンマを追加し、結果を文字列として返す関数を作成する必要があります。
たとえば、1000 未満の数値にはコンマが追加されていません。数値 1343456765 は「1,343,456,765」として返されます。
def commas(n):
if len(n)<4:
return 'n'
else:
return (recursive formula)
再帰的なリクエストを無視して、カンマを追加する簡単な方法を次に示します。
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US')
'en_US'
>>> locale.format('%d', 1343456765, grouping=True)
'1,343,456,765'
>>> locale.format('%d', 1000, grouping=True)
'1,000'
>>> locale.format('%d', 999, grouping=True)
'999'
12345 があり、12 の形式を知っている場合、12345 をどのように計算しますか?
def comma(n):
if not isinstance(n,str): n = str(n)
if len(n) < 4: return n
else: return comma(n[:-3]) + ',' + n[-3:]
通常の場合はstr
最初の再帰の後の入力になるため、ダックタイピングを使用します。
def commas(s):
try:
return s if len(s)<4 else commas(s[:-3]) + ',' + s[-3:]
except TypeError:
return commas(str(s))
>>> commas(10**20)
'100,000,000,000,000,000,000'
ただし、文字列入力を要求するだけの方がよいでしょう:
def commas(s):
return s if len(s)<4 else commas(s[:-3]) + ',' + s[-3:]
>>> commas(str(10**20))
'100,000,000,000,000,000,000'