0
点赞
收藏
分享

微信扫一扫

sys.stdin.readline()的用法


之前在Python中输入都是用的input(),但是看到大家都用​​sys.stdin.readline(),​​没办法那我也得用.

python3中使用​​sys.stdin.readline()​​可以实现标准输入,需要调用sys库,sys.stdin是一个标准化输入的方法,其中默认输入的格式是字符串,如果是int,float类型则需要强制转换。如:

例1:

import​​​ ​​sys​​
​​print​​​​(​​​​'Plase input your name: '​​​​)​​
​​name ​​​​=​​​ ​​sys.stdin.readline()​​
​​print​​​​(​​​​'Hello '​​​​, name)​​

例2:

import​​​ ​​sys​​
​​try​​​​:​​
​​while​​​ ​​True​​​​:​​
​​print​​​​(​​​​'Please input a number:'​​​​)​​
​​n ​​​​=​​​ ​​int​​​​(sys.stdin.readline().strip(​​​​'\n'​​​​)) ​​​​#strip('\n')表示以\n分隔,否则输出是“字符串+\n”的形式​​
​​print​​​​(​​​​'Please input some numbers:'​​​​)​​
​​sn ​​​​=​​​ ​​sys.stdin.readline().strip()​​​​#若是多输入,strip()默认是以空格分隔,返回一个包含多个字符串的list。​​
​​if​​​ ​​sn ​​​​=​​​​=​​​ ​​'':​​
​​break​​
​​sn ​​​​=​​​ ​​list​​​​(​​​​map​​​​(​​​​int​​​​,sn.split())) ​​​​#如果要强制转换成int等类型,可以调用map()函数。​​
​​print​​​​(n)​​
​​print​​​​(sn,​​​​'\n'​​​​)​​
​​except​​​​:​​
​​pass​​

注意默认输入的是字符串(注意这里的strip('\n')表示以\n分隔,否则输出是“字符串+\n”的形式 ),如果是多个输入,strip()默认是以空格分隔,返回的是一个包含多个字符串的list,如果要强制转换成int等类型,可以调用map()函数。

​sys.stdin.readline( )会​​将标准输入全部获取,包括末尾的'\n',input()会把‘\n'忽略.

​​import​​​ ​​sys​​
​​a​​​​=​​​​sys.stdin.readline()​​
​​b​​​​=​​​​input​​​​()​​
​​print​​​​(​​​​len​​​​(a),​​​​len​​​​(b))​​

执行:

abc​​
​​abc​​
​​4​​​ ​​3​​
​​import​​​ ​​sys​​
​​a​​​​=​​​​sys.stdin.readline().strip()​​
​​b​​​​=​​​​input​​​​()​​
​​print​​​​(​​​​len​​​​(a),​​​​len​​​​(b))​​

 

执行结果:

abc
abc
3 3

python3中sys.stdin与input的区别

input()方法和stdin()类似,不同的是input()括号内可以直接填写说明文字。

可以看一个简单的例子:

while​​​ ​​True​​​​:​​
​​n ​​​​=​​​ ​​int​​​​(​​​​input​​​​(​​​​'Please input a number:\n'​​​​))​​
​​sn ​​​​=​​​ ​​list​​​​(​​​​map​​​​(​​​​int​​​​,​​​​input​​​​(​​​​'Please input some numbers:\n'​​​​).split()))​​
​​print​​​​(n)​​
​​print​​​​(sn,​​​​'\n'​​​​)​​

举报

相关推荐

0 条评论