ACM模式的输入部分——input().strip() 与 sys.stdin.readline() 的不同

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

我的疑问:

input().strip() 与 sys.stdin.readline() 的不同

1. input().strip()

  • input() 本质上就是从 sys.stdin.readline() 读一行,然后自动去掉结尾的 换行符

  • 所以严格来说:

    input() == sys.stdin.readline().rstrip("\n")
    
  • 如果你再 .strip(),就会把开头和结尾的所有空白符(空格、\t\n)都去掉。


2. sys.stdin.readline()

  • 原始读取一行,包含末尾的 \n

  • 它比 input() ,常用于大数据量输入(例如 10^5 或更多行)。

  • 但要注意手动 .strip().rstrip("\n") 来去掉换行。


3. 性能区别

  • 速度sys.stdin.readline() > input(),因为 input() 里还带了额外封装。

  • 常用场景

    • 数据量小:用 input(),简单好记。

    • 数据量大(ACM / LeetCode 超大输入):推荐 sys.stdin.readline()


举例

# 读一行 "123\n"
s1 = input()        # s1 == "123"
s2 = sys.stdin.readline()  # s2 == "123\n"

# 所以通常写法:
s2 = sys.stdin.readline().strip()

所以总结:

  • input().strip()sys.stdin.readline().strip()(在大多数题里等价)

  • sys.stdin.readline() 本身更快,适合大数据输入。

要不要我给你整理一个 ACM 常用输入方式对比表(单行、多行、EOF、T组、矩阵输入)?

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值