作者zo6596001 (超帥肥宅)
看板Python
標題[討論] Python語法是不是不太嚴謹?
時間Thu Feb 21 21:17:21 2019
哈囉大家好,肥宅工作上每天都在寫Python
可是最近發現我有時候會花很多時間在解決小Bug。
例如之前寫的Socket程式就出現下面問題
byteString = b'apple'
print(len(byteString)) # 答案是5
byteString = str(byteString)
print(len(byteString)) # 答案是8
當初手殘把收過來的資料轉成str,結果抓下來的圖檔開不起來。
最後是發現伺服器跟客戶端的檔案大小不一樣,才找到問題。
可是其他的程式語言在上述情況下根本不可能編譯成功。
Python相較於其他程式語言,是不是語法比較不嚴謹??
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.9.41
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1550755043.A.817.html
※ 編輯: zo6596001 (220.137.9.41), 02/21/2019 21:18:13
1F:推 MAGICXX: 4 02/21 22:05
2F:→ DavisX: 4 02/21 22:26
3F:推 windclara: 4 02/21 22:35
4F:噓 as30385438: 你聽過javascript嗎 02/21 22:48
5F:推 jasonfghx: 6666666666666666666666666666666666 02/21 23:05
6F:推 eight0: 不能編譯成功?能舉個例子嗎 02/21 23:21
7F:→ djshen: 你確定是轉成str? 02/22 00:01
8F:→ djshen: 每天都在寫你們怎麼不會print(byteString)看看? 02/22 00:02
9F:→ Raymond0710: 你了解 str(), __str__ 的意義嗎? 02/22 00:28
10F:→ Raymond0710: 在py3中 bytes 轉成 str 要用 decode 不是str() 02/22 00:30
11F:推 Sunal: 文件沒看清楚,特性不夠熟悉 02/22 08:10
12F:→ MOONY135: 自己習慣不好 怪編譯器 02/22 09:00
13F:→ rofellosx: 你使用的不嚴謹 02/22 09:29
14F:噓 TitanEric: 語法先熟悉 02/22 09:48
15F:推 agario: 如果你改用 C++ 拿到 char[] 然後用奇怪的 function 把他 02/22 09:59
16F:→ agario: 轉成 UTF16 encoded 的 char[] 還不是會變不一樣 02/22 10:00
17F:推 lajji: 嚴謹不嚴謹 使用者的差別比較大 02/22 11:34
18F:→ s860134: 只有強型別和弱型別 自己寫錯怪語言 不爽不要用 嘻嘻 02/22 12:12
19F:噓 froce: 你沒搞懂python的字串轉換,亂用當然不對。 02/23 10:39
20F:→ froce: str(b'apple')出來就是b'apple'這個字串,長度當然是8 02/23 10:40
21F:→ froce: 上面有提到,用decode才是正解 02/23 10:41
22F:→ y3k: 不嚴謹是的確的阿XDD 但是很多血python的就愛這味 02/25 12:23
23F:→ y3k: 要不是某些API用Python發布 我個人還真想用Java或TS寫... 02/25 12:24
24F:推 newstarisme: 很嚴謹啊... indent要求很嚴格 02/25 19:47
25F:推 Sunal: php才是最好的語言 02/25 22:37
26F:→ lance8537: javascript: a=10 + ”12" 求a? 02/26 16:49