Python中的sys.stdin属性主要用于读取用户输入的数据,它是一个类文件对象(file-like object),提供了从键盘和其他文件对象读取数据的接口。sys.stdin属性通常与input()函数一起使用,来获取控制台输入的数据。sys.stdin属性的默认值为标准输入流(sys.stdin)。
使用sys.stdin来读取用户输入的数据有两种常见的方式:
使用input()函数
在Python中,input()函数是用来读取用户输入的数据的,其内部实现就是调用sys.stdin.readline()函数。因此,直接使用input()函数来获取控制台输入的数据即可,例如:
import sys
# 读取用户输入的数据
name = input('What is your name?: ')
print('Hello,', name)
在执行上述代码时,程序会等待用户输入数据,用户输入完毕后,程序会输出相应的结果。
使用sys.stdin.readline()函数
除了使用input()函数外,还可以直接使用sys.stdin.readline()函数来读取用户输入的数据,例如:
import sys
# 读取用户输入的数据
data = sys.stdin.readline().strip()
print('Input data:', data)
在执行上述代码时,程序会等待用户输入数据,用户输入完毕后,程序会输出相应的结果。
需要注意的是,使用sys.stdin.readline()函数读取用户输入的数据时需要注意以下几点:
- 读取到的数据会包含结尾的换行符,因此需要使用strip()函数去除换行符。
- 如果需要读取多行数据,需要使用循环结构来重复读取数据直到读取完毕。
实例一
下面的代码演示了如何使用sys.stdin属性读取多个空格分隔的整数,并将它们相加并输出结果:
import sys
# 读取多个空格分隔的整数,并计算它们的和
line = sys.stdin.readline().strip().split()
nums = [int(x) for x in line]
print(sum(nums))
在执行上述代码时,程序会等待用户输入多个空格分隔的整数,例如1 2 3 4 5
,用户输入完毕后,程序会输出相应的结果15
。
实例二
下面的代码演示了如何使用sys.stdin属性读取包含多个数据点的文件,并计算所有数据点的平均值(注意,该文件应该在同一目录下的data.txt文件中):
import sys
# 从文件中读取数据
with open('data.txt') as file:
# 初始化变量
count = 0
total = 0.0
# 从文件中读取每个数据点,并计算它们的平均值
for line in file.readlines():
nums = [float(x) for x in line.strip().split()]
count += len(nums)
total += sum(nums)
# 输出结果
print('Average:', total / count)
在执行上述代码时,程序会打开位于同一目录下的data.txt文件,从文件中读取数据,统计数据点个数和总和,并计算平均值,最后输出平均值。