python是個好東西。
搞過acm競賽的同學應該遇到過即使是long long
型別也無法進行儲存的數字,這是因為c++對每種資料型別的儲存空間是固定的,所以我們要麼使用陣列進行儲存。
python
就沒有這樣的問題。理論上只要記憶體足夠大,我們就可以儲存無窮大的數。
但是python
每次輸入都是按照字串來進行儲存的,所以初次使用python來進行一行內輸入多個數字會面臨很多問題,比如下面的**就是錯誤的。
a, b = input(), input() #一行輸入兩個數字,但是結果是錯誤的
print(a+b)
print(type(a+b))
1 2
11 21
執行上面的**,第一行我輸入了1 空格 2,然後回車。
這時它還好會提示我們在進行輸入,於是我輸入了1,print輸出的結果是1 21
其實結果是乙個字串型別的
a, b = map(int, input().strip().split())#正確的**實現
print(a+b)
print(type(a+b))
1 2
3
這裡來解釋下,為什麼第二個**是正確的。
首先,正如上面說的,python輸入預設是字串型別,而且輸入都是按照一行來的,也就是說,無論一行有多少的空格,python都會接受。
這裡的input函式會返回乙個字串
然後呼叫字串的strip函式,這個函式會去掉這個字串的首尾的特定字元,這裡我們沒有傳遞給它引數,所以預設去掉的字串首尾的空格。
去掉空格後再次呼叫split函式,這個函式會按照特定的字元來對字串進行分割,這裡我們也沒有傳遞引數,所以預設是根據空格來進行分割。
這樣我們就得到了輸入的兩個數字的字串列表(類似於c++中的陣列,但是更靈活)
然後我們使用了map函式,對,這個函式就是對上面列表裡面的內容進行乙個轉換,第乙個引數是int,那麼就是把列表中的元素轉換成int型別的資料
這樣我們得到了兩個資料,而且無論我們開頭和結尾 或是 數字之間輸入了多少個空格,我們都能進行正確地處理。
好了,完結撒花!
python輸入輸出
對於輸入輸出操作,我們可以用raw input或print語句實現,但我們也可以用檔案來實現,下面我們將討 件的使用。我們可以用檔案類來建立乙個檔案物件,並用它的read readline write方法實現檔案的讀寫操作。當檔案使用完畢後,你應該使用close方法,以釋放資源。下面是乙個使用檔案的...
python 輸入輸出
input 是輸出乙個數字 raw input是輸入一行字串 while true try g lambda map int,raw input split a,b g print a b except exit 0 這裡用了lambda 然後也可以直接 a,b map int,raw input ...
Python 輸入輸出
總結幾個常用的.python提供了 input 置函式從標準輸入讀入一行文字,預設的標準輸入是鍵盤。input 可以接收乙個python表示式作為輸入,並將運算結果返回。usr bin python3 str input 請輸入 print 你輸入的內容是 str str.format 1 prin...