python中的Input()函數在輸入時,遇到回車符,那么一次輸入就結束了。這不能滿足輸入多行文本并且行數也不確定的情形,當然輸入空行也是允許的。
方法1:利用異常處理機制實現
lines=[]
whileTrue:
try:
lines.append(input())
except:
break
print(lines)
實際運行時,可以輸入多行,當輸入最后一行并回車后,按組合鍵ctrl+D,表示EOF,即EndofFile、文件尾的意思。此時,input()函數會遇到EOF的異常。Python的異常處理機制將捕獲到此異常,執行except部分的語句,此語句為break,因此,立即跳出while循環。這正好滿足了我們的需要。
例如,輸入:
123453.14159回車
Iamastudent.回車
Hello,world!回車
在集成開發環境中運行時,請按ctrl+D組合鍵結束多行輸入。如果在Windows命令行下用"python源代碼文件名.py”方式運行時,請按ctrl+Z組合鍵結束多行輸入。
輸出結果如下:
['123453.14159','Iamastudent.','Hello,world!']
方法二:利用標準輸入文件對象sys.stdin的readlines()函數實現
因為鍵盤是標準輸入設備,計算機操作系統將鍵盤也是當做文件來對待的,其實計算機操作系統將包括鍵盤顯示器鼠標打印機等在內的各種外圍設備都當做文件來對待。Python中與鍵盤對應的文件對象是sys.stdin,因此可以利用sys.stdin.readlines()函數來實現讀取多行文本,一直到遇到文件尾即EOF為止。
importsys
lines=sys.stdin.readlines()
print(lines)
輸入同上,
輸出如下:
['123453.14159\n','Iamastudent.\n','Hello,world!\n']
可以看出,這種方式2與方式1的輸出結果有細微差別,每行末尾有'\n'字符(即回車符)。
以上內容為大家介紹了python培訓之怎么多行輸入,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。