跳转至

PIO1 只有输出

入门通过率 72.46%python3样例通过牛客 AC

牛客原题  源码

讲解章节语法与执行模型输入输出处理

一句话

全书第一题,不读入任何数据,只把一行固定文本打出来。

解题思路

这题考什么

输入形态:无输入。这是「输入输出练习」里唯一一种不需要读数据的形态, 它把注意力全部留给输出本身——输出的每一个字符都必须与题目要求一致。

题面正文里的 HelloNowcoder! 是数学公式排版把空格吞掉后的效果, 以「示例1」的输出块为准:Hello 与 Nowcoder! 之间有一个半角空格。 凡是题面正文与示例块不一致的场合,一律以示例块为准。

为什么用 print

无输入题不必去碰 sys.stdin。有些模板习惯先写一句读入再判断是否为空, 在本题上是纯粹的多余动作:题目根本不提供输入,读到的只会是空串。 输出只有一行、总长十几个字节,print 的调用开销可以忽略, 没有必要换成 sys.stdout.write——后者的价值在成千上万行输出时才体现 (见 PIO4、PIO7 等多组题)。

数据规模与复杂度

无输入,输出固定 15 个字符,时间和空间都是 O(1)。

坑在哪

  1. 漏掉中间的空格,写成 HelloNowcoder!,会被判错。判定按字符逐个比对, 少一个空格就是另一个字符串。
  2. 感叹号是半角 ! 而不是全角 !。中文输入法下很容易打成全角, 肉眼几乎看不出区别,判定结果却是错的。
  3. print 会自动补一个行尾换行,这正是判定期望的形式; 手写 sys.stdout.write 时若忘了补换行,部分判定环境会报格式错误。

参考实现

solutions/PIO1.py
print("Hello Nowcoder!")
[:octicons-arrow-left-16: BISHI147](BISHI147.md) [PIO2 :octicons-arrow-right-16:](PIO2.md)