python 使用三引号时容易犯的小错误


Posted in Python onOctober 21, 2020

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

# -*- 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()

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

python 使用三引号时容易犯的小错误

明显两个二维码图片不同,而出现这样的差异的原因就出现在全局变量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 三引号的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
利用Psyco提升Python运行速度
Dec 24 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
用tensorflow搭建CNN的方法
Mar 05 Python
python生成不重复随机数和对list乱序的解决方法
Apr 09 Python
Python文件如何引入?详解引入Python文件步骤
Dec 10 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
pycharm sciview的图片另存为操作
Jun 01 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 #Python
基于python爬取链家二手房信息代码示例
Oct 21 #Python
如何让PyQt5中QWebEngineView与JavaScript交互
Oct 21 #Python
Python为何不支持switch语句原理详解
Oct 21 #Python
基于Python爬取素材网站音频文件
Oct 21 #Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 #Python
运行Python编写的程序方法实例
Oct 21 #Python
You might like
PHP网站提速三大“软”招
2006/10/09 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
浅谈js中的this问题
2017/08/31 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
采购员岗位职责
2013/11/15 职场文书
文明寄语大全
2014/04/11 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书