[問題] 輸入以空格區隔

看板Python作者 (Tom)時間8年前 (2017/09/10 12:18), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
各位高手們好 小弟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

09/10 12:37, , 1F
str.split(" ")會把字串以括弧內的字元做切割,存成lis
09/10 12:37, 1F

09/10 12:37, , 2F
t
09/10 12:37, 2F

09/10 12:54, , 3F
謝謝!! 所以我是花時間寫了內建就有的函式的簡略版了嗎XD
09/10 12:54, 3F

09/10 17:24, , 4F
補:python預設所有輸入都是str 所以不太可能像c++那
09/10 17:24, 4F

09/10 17:24, , 5F
樣 有誤還請大神開示
09/10 17:24, 5F
文章代碼(AID): #1PjBqdfg (Python)