使用Python三引号时,如何避免常见的小错误?

2026-05-16 17:372阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计880个文字,预计阅读时间需要4分钟。

使用Python三引号时,如何避免常见的小错误?

请看以下代码,执行后思考生成的两个二维码为什么不一样:

pythonimport qrcode

生成第一个二维码qr1=qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4,)qr1.add_data('Hello, World!')qr1.make(fit=True)

img1=qr1.make_image(fill_color=black, back_color=white)

生成第二个二维码qr2=qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4,)qr2.add_data('Hello, World!')qr2.make(fit=True)

img2=qr2.make_image(fill_color=black, back_color=white)

显示二维码img1.show()img2.show()

执行上述代码后,生成的两个二维码可能存在差异,原因如下:

1. 两个二维码的版本相同,但生成的二维码图像可能因为内部填充算法的不同而略有差异。

2.两个二维码的纠错级别相同,但纠错算法在处理数据时可能存在细微差别。

3.两个二维码的边框大小相同,但实际显示时,图像的边缘可能因为渲染差异而略有不同。

请看如下代码,执行后,思考生成的两个二维码为什么不一样?

使用Python三引号时,如何避免常见的小错误?

# -*- coding:utf-8 -*- from tkinter import * from tkinter import ttk from PIL import ImageTk import qrcode class QRcodeImage(object): '''生成二维码图片类''' def __init__(self, content, fcolor=None, bcolor=None, size=None): ''' 参数说明: content:二维码图片的文本内容 fcolor:二维码图片的前景色 bcolor:二维码图片的背景色 size:二维码大小 ''' qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, #容错率 box_size=8, border=2) # 实例化QRCode类,得到qr对象 qr.add_data(content) # 二维码内容添加到图片中 qr.make(fit=True) # 图片中的二维码大小自适应,以保证二维码内容能完整绘制 if fcolor == None: fcolor = 'black' #默认前景色为黑色 if bcolor == None:bcolor = 'white' #默认背景色为白色 img = qr.make_image(fill_color=fcolor, back_color=bcolor) #生成彩色二维码图片 img = img.convert(mode="RGBA") # 将图片的模式转换为彩色透明模式 if size == None: size = 150 #默认图片大小 self.img = img.resize((size, size)) def getPhotoImage(self): '''转换为PhotoImage''' tkimg = ImageTk.PhotoImage(self.img) return tkimg def 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:VCARD FN:steven TITLE:Drector TEL;TYPE=CELL:15201011234 NOTE: END:VCARD ''' cvfill() mainloop()

执行上述代码,结果如下图所示:

明显两个二维码图片不同,而出现这样的差异的原因就出现在全局变量content和局部变量content1的赋值上。

content的赋值后的结果为:

content = BEGIN:VCARD\nFN:steven\nTITLE:Drector\nTEL;TYPE=CELL:15201011234\nNOTE:\nEND:VCARD

而content1的赋值后的结果为:

content1 = BEGIN:VCARD\n FN:steven\n TITLE:Drector\n TEL;TYPE=CELL:15201011234\n NOTE:\n END:VCARD

明显content和content1的值的内容不一样,content1多了很多空格字符。造成这样结果的原因就是因为在函数cvfill()中,三引号'''中的内容从第二行开始进行了缩进,导致增加了很多缩进的空格,这是很容易犯的一个小错误,并且不易被注意到。

以上就是python 使用三引号时容易犯的小错误的详细内容,更多关于python 三引号的资料请关注易盾网络其它相关文章!

标签:错误

本文共计880个文字,预计阅读时间需要4分钟。

使用Python三引号时,如何避免常见的小错误?

请看以下代码,执行后思考生成的两个二维码为什么不一样:

pythonimport qrcode

生成第一个二维码qr1=qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4,)qr1.add_data('Hello, World!')qr1.make(fit=True)

img1=qr1.make_image(fill_color=black, back_color=white)

生成第二个二维码qr2=qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4,)qr2.add_data('Hello, World!')qr2.make(fit=True)

img2=qr2.make_image(fill_color=black, back_color=white)

显示二维码img1.show()img2.show()

执行上述代码后,生成的两个二维码可能存在差异,原因如下:

1. 两个二维码的版本相同,但生成的二维码图像可能因为内部填充算法的不同而略有差异。

2.两个二维码的纠错级别相同,但纠错算法在处理数据时可能存在细微差别。

3.两个二维码的边框大小相同,但实际显示时,图像的边缘可能因为渲染差异而略有不同。

请看如下代码,执行后,思考生成的两个二维码为什么不一样?

使用Python三引号时,如何避免常见的小错误?

# -*- coding:utf-8 -*- from tkinter import * from tkinter import ttk from PIL import ImageTk import qrcode class QRcodeImage(object): '''生成二维码图片类''' def __init__(self, content, fcolor=None, bcolor=None, size=None): ''' 参数说明: content:二维码图片的文本内容 fcolor:二维码图片的前景色 bcolor:二维码图片的背景色 size:二维码大小 ''' qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, #容错率 box_size=8, border=2) # 实例化QRCode类,得到qr对象 qr.add_data(content) # 二维码内容添加到图片中 qr.make(fit=True) # 图片中的二维码大小自适应,以保证二维码内容能完整绘制 if fcolor == None: fcolor = 'black' #默认前景色为黑色 if bcolor == None:bcolor = 'white' #默认背景色为白色 img = qr.make_image(fill_color=fcolor, back_color=bcolor) #生成彩色二维码图片 img = img.convert(mode="RGBA") # 将图片的模式转换为彩色透明模式 if size == None: size = 150 #默认图片大小 self.img = img.resize((size, size)) def getPhotoImage(self): '''转换为PhotoImage''' tkimg = ImageTk.PhotoImage(self.img) return tkimg def 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:VCARD FN:steven TITLE:Drector TEL;TYPE=CELL:15201011234 NOTE: END:VCARD ''' cvfill() mainloop()

执行上述代码,结果如下图所示:

明显两个二维码图片不同,而出现这样的差异的原因就出现在全局变量content和局部变量content1的赋值上。

content的赋值后的结果为:

content = BEGIN:VCARD\nFN:steven\nTITLE:Drector\nTEL;TYPE=CELL:15201011234\nNOTE:\nEND:VCARD

而content1的赋值后的结果为:

content1 = BEGIN:VCARD\n FN:steven\n TITLE:Drector\n TEL;TYPE=CELL:15201011234\n NOTE:\n END:VCARD

明显content和content1的值的内容不一样,content1多了很多空格字符。造成这样结果的原因就是因为在函数cvfill()中,三引号'''中的内容从第二行开始进行了缩进,导致增加了很多缩进的空格,这是很容易犯的一个小错误,并且不易被注意到。

以上就是python 使用三引号时容易犯的小错误的详细内容,更多关于python 三引号的资料请关注易盾网络其它相关文章!

标签:错误