為什麼這篇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