Re: 字串變數跳脱字元問題

看板Python作者 (吹笛牧童)時間1年前 (2023/03/31 12:43), 1年前編輯推噓1(100)
留言1則, 1人參與, 1年前最新討論串3/3 (看更多)
※ 引述《holmes3 (紫色的偶然)》之銘言: : 大家好,我是python初學者, : 在這跟大家請教個問題 : 現有一字串變數 : a=‘’c:\032823" : 因\032會被轉譯, : 小弟知道r‘’c:\032823",可防止轉譯, : 但如果是變數如何加r呢? : 如r+a這樣。 : ----- : Sent from JPTT on my Samsung SM-G9860. 看不懂你在表達什麼,寫程式千萬要用純文字編輯器 像我用 Mac,若開內建編輯器,支援字體大小甚至顏色, 那也還罷了,只要我不去下字體大小顏色的指令,基本上也能編純文字 可是引號它就會很雞婆的亂改,改到無法執行 " 雙引號 ' 單引號 ` 這不知要叫什麼,很像單引號,但斜了點 ‘’更別說你這個,這是打單引號要框住字串時,雞婆的編輯程式會自動配一左一右 XD 所以這原本是兩個單引號耶! 如果我忽略系統替你亂配,你也不該打兩個單引號來當做一個雙引號 因為在字串裡,單引號雙引號,就是不同 不過我就腦補成你要打這個好了 a= "c:\032823" 這一句的問題是,\032 已經被解譯,才會被存入 a 如果你要做任何還原, 把第一個字,還原成 \032 但上句也等效為 a= 'c:\x1a823' 啊,python 怎麼知道你不是要還原成 \x1a 呢? 資訊已被破壞 會被破壞的資訊,必需一開始就儲存 raw 版 (就好像數位相機拍照可以存 raw image 雖然拍照的當下是 raw image,但如果存入 sd 卡的是轉換過的 之後就無法從轉換過的生回 raw image; raw 必需一開始就儲存 寧可未來再自行轉換) rawA = r"c:\032823" a = fn(rawA) 像這樣是比較可能的思維 而 fn 不知有沒有現成的 encoder 但最暴力的 exec, eval 肯定可以 a = eval(f"'{rawA}'") ------- def fn(raw) -> str: return eval(f"'{raw}'") rawA = r"c:\032823" a = fn(rawA) print(rawA, a) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 116.241.233.114 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1680237825.A.08B.html ※ 編輯: HuangJC (116.241.233.114 臺灣), 03/31/2023 12:55:45

04/02 03:34, 1年前 , 1F
感謝,我的問題就像您說的那樣
04/02 03:34, 1F
文章代碼(AID): #1a9cK12B (Python)
文章代碼(AID): #1a9cK12B (Python)