看板 Python 關於我們 聯絡資訊
小弟最近在試著把aa bb cc 變成b'\xaa\xbb\xcc' 若code是這樣 CMD = input() 但試了很多種方式 若直接 str.encode(CMD) 則是 b'aa bb cc' 但要如何把那aa變成b'\xaa'啊? 另一問 若透過string.splite('aa bb cc' ," ")將aa bb cc變成 [['aa','bb','cc']] 要怎麼變成一個 aabbcc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.64.238.163
ya790206:第二個問題''.join(['aa','bb','cc']) 09/13 17:58
感謝^^會了~~但第一個問題是重點><"
ya790206:'aabb'.decode('hex_codec') 你要的嗎? 我前面沒b 09/13 19:01
elvisteal:似乎不是><"~而且PYTHON3.0好像不能用? 09/13 19:12
ya790206:那是2.X的寫法,3.X要在看看。 09/13 19:17
ya790206:binascii.b2a_hex('aabb') 記得import binascii 09/13 19:37
我使用了binascii.b2a_hex('aabb') 它說'str' does not support the buffer interface(字串不包含這功能!!!
ya790206:binascii.b2a_hex('aabb'.encode('ascii')) 如何? 09/13 20:13
這樣會變成b'61616262'
ya790206:我是用python 3.01去測的(我用portable python) 09/13 20:13
我最後試成功了 用binascii.a2b_hex(str.encode('aabbcc'))) 印出b'\xaa\xbb\xcc' 感謝你的幫忙和指引~~不然我想我也弄不出來QAQ~~~
ya790206:我發現一件事情了,我打在推文和我測試的程式碼不一樣 09/13 20:25
ya790206:我推文ba打相反了,難怪你試不出來XD 09/13 20:26
慘了~更大的問題出來了 我若輸入的是70~79 輸出不為\x70~\x79 會變成p q r s t u v w x y.... 好像從...20~79都有問題..... orz ※ 編輯: elvisteal 來自: 210.64.238.163 (09/13 20:40)
ya790206:因為ascii碼70是p,71是q,不可見字元才會變\xaa 09/13 22:03
elvisteal:所以是沒關係的囉?~好像的樣子(感謝 09/14 08:32
apua:請問字串的引號前加上b是什麼意思? 09/14 19:56
elvisteal:前面加上b代表是bytes 型態的字串 09/14 20:10
apua:可以舉個例子嗎?我還是不懂bytes型態而且找不到清楚的說明 09/14 20:45
ya790206:我沒記錯的話bytes是3.x才有的型態 09/14 22:54
ya790206:str.encode()->bytes ,bytes.decode()->str 09/14 22:54