Python的多行輸入與多行輸出

2021-09-19 22:55:23 字數 2891 閱讀 7553

因為在oj上做程式設計,要求標準輸入,特別是多行輸入。特意查了資料,自己驗證了可行性。

if __name__ == 

"__main__":

strlist =

for line

in sys.stdin:

#當沒有接受到輸入結束訊號就一直遍歷每一行

tempstr = line.split()

#對字串利用空字元進行切片

strlist.extend(tempstr)

#把每行的字串合成到列表

q1:系統如何判斷輸入結束?

a:按下換行鍵然後ctrl+d結束。

q2:split()的作用?

a:str.split(str="", num=string.count(str)).

split()通過指定分隔符對字串進行切片,並返回切片結果。

str -- 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等。

num -- 分割次數。

list1 = [

1, 2,

3]list2 = [

4, 5,

6]

輸出是:

list1 = [

1, 2,

3]list2 = [

4, 5,

6]list1.extend(list2)

輸出是:所以看程式的需求選擇。

一、前言

本文主要使用python 的raw_input() 函式讀入多行不定長的資料,輸入結束的標誌就是不輸入數字情況下直接回車,並填充特定的數作為二維矩陣

二、**

def

get2dlistdata

():

res =

inputline = raw_input()

#以字串的形式讀入一行

#如果不為空字串作後續讀入

while inputline !=

'':

listline = inputline.split(

' ')

#以空格劃分就是序列的形式了

listline = [int(e)

for e

in listline ]

#將序列裡的數由字串變為int型別

inputline = raw_input()

return res

defget2dmatdata

( inlist , val ):

'''

輸入:inlist為不等長的二維陣列,val為需填充的值

輸出:np.array的形式輸出填補完的二維矩陣

'''maxcols =

0#獲得最大長度的子串行

for i

in range( len( inlist ) ):

leni = len( inlist[i] )

if leni > maxcols:

maxcols= leni

#對每個子串行作填充

for i

in range( len( inlist ) ):

num = len( inlist[i] )

while(num <= maxcols):

num +=

1return np.array( inlist , dtype = np.int64 )

if __name__==

'__main__':

indata = get2dimdata()

print indata

print

'\n'

matarray = get2dmatdata(indata ,

0)print( matarray )

三、執行結果

因為在oj上做程式設計,要求標準輸入,特別是多行輸入。特意查了資料,自己驗證了可行性。

if __name__ == 

"__main__":

strlist =

for line

in sys.stdin:

#當沒有接受到輸入結束訊號就一直遍歷每一行

tempstr = line.split()

#對字串利用空字元進行切片

strlist.extend(tempstr)

#把每行的字串合成到列表

q1:系統如何判斷輸入結束?

a:按下換行鍵然後ctrl+d結束。

q2:split()的作用?

a:str.split(str="", num=string.count(str)).

split()通過指定分隔符對字串進行切片,並返回切片結果。

str -- 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等。

num -- 分割次數。

list1 = [

1, 2,

3]list2 = [

4, 5,

6]

輸出是:

list1 = [

1, 2,

3]list2 = [

4, 5,

6]list1.extend(list2)

輸出是:所以看程式的需求選擇。

多行輸入以及結束輸入

一般題中要求輸入多組資料的意思就是讀取數量不定的輸入資料 不能確定輸入資料的數量 在這種情況下,需要不斷讀取資料直至沒有新的輸入為止。include int main return 0 上面是使用c語言的的方法,把輸入語句作為while迴圈的判斷條件,當輸入資料不是檔案結束符 eof 的時候,就可以...

處理多行輸入資料

要求如上圖,如下 include include include 要使用stringstream,必須先加入這一行 using namespace std int main cout sum endl getline使用時可以接受空格並輸出,同時可以指定分隔符 getline ss,temp,參考資...

python 牛客)多行輸入輸出

本文主要對使用牛客做筆試的的輸入輸出的問題做個總結 多行輸入 在第一行標註行數 形如 5 a bn l c oo k m fimport sys s int sys.stdin.readline s int input 二者皆可 ans for i in range s if s l input s...