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 相关文章推荐
Python实现程序的单一实例用法分析
Jun 03 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
Jun 14 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
《与孩子一起学编程》python自测题
May 27 Python
numpy中loadtxt 的用法详解
Aug 03 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
Dec 23 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
Python实现冒泡排序算法的完整实例
Nov 04 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 Python
Python开发五子棋小游戏
May 02 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
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
2017/05/21 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
python函数形参用法实例分析
2015/08/04 Python
python如何实现内容写在图片上
2018/03/23 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
Python登录系统界面实现详解
2019/06/25 Python
Python字典底层实现原理详解
2019/12/18 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
python文件编写好后如何实践
2020/07/07 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
工程现场管理求职自荐信
2013/10/02 职场文书
总经理驾驶员岗位职责
2013/12/04 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
python代码实现扫码关注公众号登录的实战
2021/11/01 Python