M31183:一道题搞懂输入
http://cs101.openjudge.cn/practice/31183/
这是一道考察 Python 基本输入输出技巧的题目。根据输入的 mode 分支处理对应的逻辑即可。
参考代码
python
mode = int(input())
if mode == 1:
# 模式 1:读入一整行字符串并原样输出
s = input()
print(s)
elif mode == 2:
# 模式 2:读入一个整数,输出其平方
x = int(input())
print(x ** 2)
elif mode == 3:
# 模式 3:一行读入三个空格分隔的字符串,倒序输出
words = input().split()
print(" ".join(reversed(words)))
elif mode == 4:
# 模式 4:一行读入两个整数,输出它们的和与积
a, b = map(int, input().split())
print(a + b, a * b)
elif mode == 5:
# 模式 5:一行读入若干整数,输出:个数 和 最大值
nums = list(map(int, input().split()))
print(len(nums), sum(nums), max(nums))
elif mode == 6:
# 模式 6:循环读取直到 "END",计算之前所有整数之和
total = 0
while True:
line = input().strip()
if line == "END":
break
total += int(line)
print(total)
elif mode == 7:
# 模式 7:先读 n,再读 n 行 a 和 b,将每一行的 a+b 用空格分隔输出在一行
n = int(input())
ans = []
for _ in range(n):
a, b = map(int, input().split())
ans.append(str(a + b))
print(" ".join(ans))
elif mode == 8:
# 模式 8:按逗号分割三个字符串,并以空格分隔倒序输出
words = input().split(",")
print(" ".join(reversed(words)))知识点解析
input()与input().split():input()默认读取整行文本(保留行内及行首行尾的空格)。split()默认按任意连续空白字符切分;如果指定分隔符,如split(","),则按照逗号切分。
map(int, ...):- 将切分后的字符串列表转换为整数,常用于读取一行中的多个整数。
" ".join(...)与reversed(...):reversed(list)返回反转的迭代器;" ".join(...)可以将可迭代对象中的字符串用空格连接起来输出。