我需要编写一个函数,将逗号添加到整数 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'