从标准输入中读取所有内容sys.stdin.read()

sys.stdin.read().strip() 用于从标准输入中读取所有内容并去除首尾的空白字符。

1. sys.stdin.read()

  • 作用:从标准输入流中读取所有内容,直到遇到文件结束符(EOF)。在命令行中,EOF 可以通过 Ctrl+D(Linux/Mac)或 Ctrl+Z(Windows)来输入。
  • 返回值:返回一个字符串,包含所有输入的内容,包括换行符。

2. .strip()

  • 作用:去除字符串首尾的空白字符(包括空格、换行符等)。
  • 返回值:返回处理后的字符串。

组合使用

sys.stdin.read().strip() 的组合使用可以方便地读取所有输入内容,并去除首尾的空白字符,避免输入的首尾空行或空格对后续处理造成干扰。

例子

假设需要读取多行输入,并处理这些输入。

import sys

# 使用 sys.stdin.read() 读取所有输入内容
# 使用 .strip() 去除首尾的空白字符
input_data = sys.stdin.read().strip()

# 按行分割输入内容
lines = input_data.split('\n')

# 第一行是一个整数,表示后续的行数
num = int(lines[0])

# 初始化一个空列表来存储后续的数字对
numbers = []

# 遍历后续的每一行
for line in lines[1:]:
    # 将每行的数字分割并转换为整数,然后添加到列表中
    pair = list(map(int, line.split()))
    numbers.append(pair)

# 打印读取到的数字对,用于验证
for i in range(num):
    print(numbers[i])

运行过程

假设输入如下:

3
75 3
53 2
59 2
^Z

PS:Ctrl+Z:在命令行中按下 Ctrl+Z,然后按 Enter 键,表示输入结束。这个组合键会发送一个 EOF 信号给 Python 程序。

程序的运行过程如下:

  1. 使用 sys.stdin.read() 一次性读取所有输入内容,得到一个字符串:
    "3\n75 3\n53 2\n59 2"
    
  2. 使用 .strip() 去除首尾的空白字符(如果有的话)。在这个例子中,输入本身没有多余的空白字符,所以字符串保持不变:
    "3\n75 3\n53 2\n59 2"
    
  3. 使用 split('\n') 将字符串按行分割,得到一个列表:
    ["3", "75 3", "53 2", "59 2"]
    
  4. 第一行 "3" 转换为整数 3,表示后续有 3 行数字对。
  5. 遍历后续的每一行,将每行的数字分割并转换为整数,存储到列表中。
  6. 最后打印出读取到的数字对:
    [75, 3]
    [53, 2]
    [59, 2]
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值