python 使用三引號(hào)時(shí)容易犯的小錯(cuò)誤
請(qǐng)看如下代碼,執(zhí)行后,思考生成的兩個(gè)二維碼為什么不一樣?
# -*- coding:utf-8 -*-from tkinter import *from tkinter import ttkfrom PIL import ImageTkimport qrcodeclass QRcodeImage(object): ’’’生成二維碼圖片類(lèi)’’’ def __init__(self, content, fcolor=None, bcolor=None, size=None): ’’’ 參數(shù)說(shuō)明: content:二維碼圖片的文本內(nèi)容 fcolor:二維碼圖片的前景色 bcolor:二維碼圖片的背景色 size:二維碼大小 ’’’ qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, #容錯(cuò)率 box_size=8, border=2) # 實(shí)例化QRCode類(lèi),得到qr對(duì)象 qr.add_data(content) # 二維碼內(nèi)容添加到圖片中 qr.make(fit=True) # 圖片中的二維碼大小自適應(yīng),以保證二維碼內(nèi)容能完整繪制 if fcolor == None: fcolor = ’black’ #默認(rèn)前景色為黑色 if bcolor == None:bcolor = ’white’ #默認(rèn)背景色為白色 img = qr.make_image(fill_color=fcolor, back_color=bcolor) #生成彩色二維碼圖片 img = img.convert(mode='RGBA') # 將圖片的模式轉(zhuǎn)換為彩色透明模式 if size == None: size = 150 #默認(rèn)圖片大小 self.img = img.resize((size, size)) def getPhotoImage(self): ’’’轉(zhuǎn)換為PhotoImage’’’ tkimg = ImageTk.PhotoImage(self.img) return tkimgdef cvfill(): cv.create_window(200, 50, window=lbimg1, width=155, height=155, anchor=NW, ) cv.create_window(50, 50, window=lbimg2, width=155, height=155, anchor=NW, ) global img1 img1 = QRcodeImage(content).getPhotoImage() lbimg1.config(image=img1) content1=’’’BEGIN:VCARD FN:steven TITLE:Drector TEL;TYPE=CELL:15201011234 NOTE: END:VCARD ’’’ global img2 img2=QRcodeImage(content1).getPhotoImage() lbimg2.config(image=img2)root = Tk()cv = Canvas(root, width=’94m’, height=’54m’, bg=’#F0F8FF’, highlightbackground=’gold’, highlightthickness=2, )cv.pack(pady=10)lbimg1 = Label()lbimg2 = Label()content=’’’BEGIN:VCARDFN:stevenTITLE:DrectorTEL;TYPE=CELL:15201011234NOTE:END:VCARD ’’’cvfill()mainloop()
執(zhí)行上述代碼,結(jié)果如下圖所示:
明顯兩個(gè)二維碼圖片不同,而出現(xiàn)這樣的差異的原因就出現(xiàn)在全局變量content和局部變量content1的賦值上。
content的賦值后的結(jié)果為:
content = BEGIN:VCARDnFN:stevennTITLE:DrectornTEL;TYPE=CELL:15201011234nNOTE:nEND:VCARD
而content1的賦值后的結(jié)果為:
content1 = BEGIN:VCARDn FN:stevenn TITLE:Drectorn TEL;TYPE=CELL:15201011234n NOTE:n END:VCARD
明顯content和content1的值的內(nèi)容不一樣,content1多了很多空格字符。造成這樣結(jié)果的原因就是因?yàn)樵诤瘮?shù)cvfill()中,三引號(hào)’’’中的內(nèi)容從第二行開(kāi)始進(jìn)行了縮進(jìn),導(dǎo)致增加了很多縮進(jìn)的空格,這是很容易犯的一個(gè)小錯(cuò)誤,并且不易被注意到。
以上就是python 使用三引號(hào)時(shí)容易犯的小錯(cuò)誤的詳細(xì)內(nèi)容,更多關(guān)于python 三引號(hào)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. python 如何在 Matplotlib 中繪制垂直線2. ASP常用日期格式化函數(shù) FormatDate()3. 開(kāi)發(fā)效率翻倍的Web API使用技巧4. 如何通過(guò)python實(shí)現(xiàn)IOU計(jì)算代碼實(shí)例5. bootstrap select2 動(dòng)態(tài)從后臺(tái)Ajax動(dòng)態(tài)獲取數(shù)據(jù)的代碼6. CSS3中Transition屬性詳解以及示例分享7. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼8. Python 操作 MySQL數(shù)據(jù)庫(kù)9. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式10. python中@contextmanager實(shí)例用法
