sys.stdin.read函數
例子:
import sysread=sys.stdin.read()
for i in range(len(read)):print i,read[i],-1
運行,當執行到read=sys.stdin.read()
會阻塞,等待我們輸入
我們輸入:
h e
當輸入,ctrl+D結束輸入,這個時候ctrl+D是在換行后輸入的,運行結果為:
我們只輸入了三個字符,卻輸出來四個字符,重點看3后面,發現是換行,這是因為sys.stdin.read讀取完數據后,會在數據后面自動加上’\n’,所以會輸出四個字符
當我們ctrl+D直接在e后面輸入,不換行輸入了,運行結果為
我們會發現什么都沒輸出
當我們輸入:
h e
12
ctrl+D換行之后輸入
把12也讀入進來了,所以sys.stdin.read是讀取多行,當在2后面輸入ctrl+D時,輸出結果為:
所以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將所有輸入作為字符串看待,返回字符串類型。
可以看到會先將括號里的內容先輸出,然后獲取我們輸入內容,當我們按下enter鍵,輸出我們輸入的內容,與sys.stdin.read相比沒有加上’\n’