题目描述:
计算 a + b 并以标准格式输出和;输出的数字必须每三个数字分组(除非少于四个数字)。
输入:-1000000 9
输出:-999,991
题目考点:
考察数字格式化
题目踩坑:
注意点:
- 每三个数用逗号分隔,是从左往右算的,不是从右往左算的
- 负号不算一个数
题目代码:
方法一:(笨方法–遍历循环)
a, b = input().split(" ")
a_sum = int(a) + int(b)
count = 0
str1 = ""
if a_sum >= 0:
a_list = str(a_sum)[::-1]
for num in a_list:
count += 1
if count % 3 == 0:
str1 = "," + num + str1
else:
str1 = num + str1
if str1.startswith(","):
str1 = str1[1:]
else:
a_list = str(a_sum)[1:][::-1]
for num in a_list:
count += 1
if count % 3 == 0:
str1 = "," + num + str1
else:
str1 = num + str1
if str1.startswith(","):
str1 = str1[1:]
str1 = "-" + str1
print(str1)
方法二:(format内置函数)
print('{:,}'.format(sum([int(x) for x in input().split()])))
format内置函数解析:
str.format() 是python的一种新型字符串格式化函数,通过‘{}’和‘:’替代之前的‘%’字符串格式化方法。format 函数可以接受不限个参数,位置可以不按顺序。
format函数功能强大,我们可以用他实现以下功能:
Ⅰ、填充
Ⅱ、格式转化
Ⅲ、对齐
Ⅳ、类型转换
具体可参考官方文档:
https://docs.python.org/3/library/string.html#grammar-token-conversion
以及一篇比较全面的format总结:
http://www.chenxm.cc/article/237.html