关键信息
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(',')])))
版权声明:本文为weixin_43958105原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。