sys.stdin.readline()可以实现标准输入,需要调用sys库
其功能和input基本相同。
区别:
input()方法和stdin()类似,不同的是input()括号内可以直接填写说明文字
测试
sys.stdin.readline()
一次只读一行
sys.stdin.readline().strip()
用于消除输入首尾的空格、\n、\t
import sys
print("input a target:")
line = str(sys.stdin.readline().strip())
target = int(line.split(',')[-1])
print(target)
结果:
input a target:
18
18
Process finished with exit code 0
对比input()
line1 = input("input a target:")
target = int(line1)
print(target)
input a target:05
5
sys.stdin.readline().split()
如此输入的话会报错
input a target:
[3]
Traceback (most recent call last):
File "D:/gongyong/csdn/test.py", line 5, in <module>
target = int(line.split(',')[-1])
ValueError: invalid literal for int() with base 10: '3]'
import sys
print("input a target:")
line = str(sys.stdin.readline().strip())
target = int(line.split(',')[-1].split(']')[0].split('[')[-1])
print(target)
input a target:
[12]
12
input a target:
[,18]
18
input a target:
[18,18,18,18]
18
这里我把split(‘,’)[-1]去掉了
结果如下:
input a target:
[18,18,18,18,]
Traceback (most recent call last):
File "D:/gongyong/csdn/test.py", line 5, in <module>
target = int(line.split(']')[0].split('[')[-1])
ValueError: invalid literal for int() with base 10: '18,18,18,18,'
所以split主要是将输入中的部分元素剥离出去,这里因为int遇到 ‘[’ 所以会报错,将其分离就可以了
[0]代表右边
[-1]代表左边