python sys.stdin.readline()功能

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]代表左边

上一篇:【JavaScript】7-37 整数分解为若干项之和 (20 分)


下一篇:用python写的一个自动卸载python包的脚本