[爆卦]python空格輸入是什麼?優點缺點精華區懶人包

為什麼這篇python空格輸入鄉民發文收入到精華區:因為在python空格輸入這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者CaTom (Tom)看板Python標題[問題] 輸入以空格區隔時間Sun Sep 10 12...




各位高手們好

小弟python新手,Codecademy的課程也還沒學全,

不過因為以前學了一點C++(脫離新手但未到進階),

所以對於語法還不算太陌生,也會上zerojudge練習解題(雖然現在只能用C++解)


--------------
(以下一大段只是我嘗試解題的經過可直接忽略,真正的問題在最底下)


最近試了用python解題,(py3)

結果除了第一題提供參考範例程式碼之外,第二題就一直挑戰失敗

(題目網址: https://zerojudge.tw/ShowProblem?problemid=a002 )

明明是很簡單的輸入兩個數後回傳相加值,卻因為卡在輸入還不熟而無法進入下一步


直到剛剛才找出原因是因為C++的cin輸入int是以空格為終止,但我目前會用的python

不管是input()還是偷複製第一題範例的sys.stdin,都把整行當作字串存取

eg. 輸入 "5 10" C++可以讀到 5, 10 ,python是存取為"5 10"字串


知道原因後就好解多了(之前困在C++思維一直不知道是哪裡出錯..)

我目前會的python功能,能想到的是用list的方式

讀取字串時如果有空格就把前面的切下來存到list中的item

"5 10"就會存成['5','10'],之後再逐一將這些item讀取做運算就好

以下是我嘗試寫的程式碼:

http://imgur.com/a/yZSGX



這雖然通過檢測了,不過檔案大小4.6MB左右,跟之前C++寫的100KB差有點多...

而且zerojudge每題測資都這樣空格區隔的,用python這寫法真的好麻煩...

----------------

我想問的是,python有沒有辦法以空格為輸入的斷點

輸入"1 2 3 4",就算不能直接存成數值,也可以依序讀取到字串"1" "2" "3" "4"

或是至少我這樣的解法還可以怎麼改善?


另外小抱怨一下,py2的input可以直接當小鍵盤用,

當初C++解不出來的四則運算,用input輸入就可以半作弊地輕鬆解決了...

為什麼py3要改掉QQ

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.250.162
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1505017127.A.A6A.html
blue14753: str.split(" ")會把字串以括弧內的字元做切割,存成lis 09/10 12:37
blue14753: t 09/10 12:37
CaTom: 謝謝!! 所以我是花時間寫了內建就有的函式的簡略版了嗎XD 09/10 12:54
karta0910489: 補:python預設所有輸入都是str 所以不太可能像c++那 09/10 17:24
karta0910489: 樣 有誤還請大神開示 09/10 17:24

你可能也想看看

搜尋相關網站