sys.stdin.read和raw_input函数

sys.stdin.read函数

例子:

import sys

read=sys.stdin.read()
for i in range(len(read)):
    print i,read[i],-1


运行,当执行到read=sys.stdin.read()会阻塞,等待我们输入
sys.stdin.read和raw_input函数_第1张图片
我们输入:

h e

当输入,ctrl+D结束输入,这个时候ctrl+D是在换行后输入的,运行结果为:

sys.stdin.read和raw_input函数_第2张图片

我们只输入了三个字符,却输出来四个字符,重点看3后面,发现是换行,这是因为sys.stdin.read读取完数据后,会在数据后面自动加上’\n’,所以会输出四个字符

当我们ctrl+D直接在e后面输入,不换行输入了,运行结果为
sys.stdin.read和raw_input函数_第3张图片
我们会发现什么都没输出
当我们输入:

h e
12

ctrl+D换行之后输入
sys.stdin.read和raw_input函数_第4张图片
把12也读入进来了,所以sys.stdin.read是读取多行,当在2后面输入ctrl+D时,输出结果为:
sys.stdin.read和raw_input函数_第5张图片

所以ctrl+D哪行,sys.stdin.read不读取。
到此我们可以总结

  • 会在输入内容的后面自动加上’\n’
  • 读取多行
  • ctrl+D结束读取

raw_input函数

程序:

# -*- coding:utf-8 -*-

read=raw_input("请输入内容:")
for i in range(len(read)):
    print i,read[i],-1


raw_input将所有输入作为字符串看待,返回字符串类型。
sys.stdin.read和raw_input函数_第6张图片
可以看到会先将括号里的内容先输出,然后获取我们输入内容,当我们按下enter键,输出我们输入的内容,与sys.stdin.read相比没有加上’\n’

你可能感兴趣的:(Black,Python编程)