Skip to content

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)))

知识点解析

  1. input() 与 input().split():
    • input() 默认读取整行文本(保留行内及行首行尾的空格)。
    • split() 默认按任意连续空白字符切分;如果指定分隔符,如 split(","),则按照逗号切分。
  2. map(int, ...):
    • 将切分后的字符串列表转换为整数,常用于读取一行中的多个整数。
  3. " ".join(...) 与 reversed(...):
    • reversed(list) 返回反转的迭代器;" ".join(...) 可以将可迭代对象中的字符串用空格连接起来输出。