关键信息
sys.stdin
为系统级标准输入,适用于系统级程序交互的情形,stdin
返回一个可迭代对象,其每一项为一行字符串数据读取,包含句末的换行分隔符;strip()
方法默认移除字符串两边的空格和换行,而split()
方法默认利用空字符对字符串进行切片,其中空格、换行(\n)、制表符(\t)均为空字符,因此split()
在默认分隔符的情形下隐式移除了字符串两边的空字符,也即包含strip()
预处理,所以在本文方法中使用默认切片split()
的情况下均不考虑strip()
,而在显式利用其它字符,如split(',')
时加入strip()
预处理;
选读
- 文中代码多次创建变量
ints
,随后对其求和,其实多数情况下两步可化归为一步,但为了提升初次阅读的可读性,引入中间变量ints
表示读取的测试整数集;- 文中包含
continue
,break
语法的if-else
语句省略了对必然出现的else
的显示表达,可通过添加else
提升可读性;- 文中利用
sum
内置函数进行整数求和运算,提升前后多例代码的一致性;- 文中对题目求解无关信息直接进行了忽略处理,但代码结构其实考虑到了相关信息的提取步骤,因此可以在代码微改的情况下提取相关信息,读者可自行尝试。
#A - A+B(1)
import sys
for line in sys.stdin:
ints = [int(n) for n in line.split()]
print(sum(ints))
#B - A+B(2)
import sys
for i, line in enumerate(sys.stdin):
if i == 0:
continue
ints = [int(n) for n in line.split()]
print(sum(ints))
#C - A+B(3)
import sys
for line in sys.stdin:
ints = [int(n) for n in line.split()]
if all([n == 0 for n in ints]):
break
print(sum(ints))
#D -A+B(4)
import sys
for line in sys.stdin:
ints = [int(n) for i, n in enumerate(line.split()) if i > 0]
if ints:
print(sum(ints))
else:
break
#E - A+B(5)
import sys
for i, line in enumerate(sys.stdin):
if i == 0:
continue
ints = [int(n) for i, n in enumerate(line.split()) if i > 0]
print(sum(ints))
#F - A+B(6)
import sys
for line in sys.stdin:
ints = [int(n) for i, n in enumerate(line.split()) if i > 0]
print(sum(ints))
#G - A+B(7)
import sys
for line in sys.stdin:
print(sum([int(n) for n in line.split()]))
#H - 字符串排序(1)
import sys
for i, line in enumerate(sys.stdin):
if i % 2 == 0:
continue
print(' '.join(sorted([s for s in line.split()])))
#I - 字符串排序(2)
import sys
for line in sys.stdin:
print(' '.join(sorted([s for s in line.split()])))
#J - 字符串排序(3)
import sys
for line in sys.stdin:
print(','.join(sorted([s for s in line.strip().split(',')])))