You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让逐行读取输入的程序仅在遇到独立句号时终止

问题描述

需要实现一个逐行读取输入的程序,规则是:当遇到**仅包含句号(前后的空格不影响)**的行时,程序立即终止。

举个输入例子:

HI
bye
     .

程序读到第三行(带空格的句号行)时就该停止。

试过两种判断逻辑,但都有问题:

  • 第一种写法:if line == ".": break —— 没考虑行前后带空格的情况,会漏掉终止条件
  • 第二种写法:if "." in line: break —— 会误判带句号的其他内容(比如"2.1"这种数字行)
解决方案

核心思路是先去掉行首尾的所有空白字符,再判断是否等于句号。具体代码如下:

while True:
    line = input()
    # 去掉行首行尾的空格、制表符等空白字符
    stripped_line = line.strip()
    if stripped_line == ".":
        break
    # 这里写处理正常行的逻辑
    print(stripped_line)  # 示例:输出处理后的行

为什么这个写法可行?

  • strip() 会移除字符串首尾的所有空白字符(包括空格、制表符、换行符),不管原行前后有多少空格,只要本质是仅含句号的行,处理后就会变成".",触发终止条件。
  • 对于"2.1"、"hello.world"这类包含句号但还有其他内容的行,strip() 后结果不是".",不会误判终止。

内容的提问来源于stack exchange,提问作者mochiwei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:30:51