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