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中的is和id用法分析
Jan 26 Python
在Python的while循环中使用else以及循环嵌套的用法
Oct 14 Python
python基础知识小结之集合
Nov 25 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
Python实现购物系统(示例讲解)
Sep 13 Python
pandas表连接 索引上的合并方法
Jun 08 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
Django接收照片储存文件的实例代码
Mar 07 Python
Python实现石头剪刀布游戏
Jan 20 Python
python中使用np.delete()的实例方法
Feb 01 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 七大优势分析
2009/06/23 PHP
PHP 防恶意刷新实现代码
2010/05/16 PHP
php随机输出名人名言的代码
2012/10/07 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
python中二维阵列的变换实例
2014/10/09 Python
python使用pyqt写带界面工具的示例代码
2017/10/23 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
详解python分布式进程
2018/10/08 Python
将python图片转为二进制文本的实例
2019/01/24 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
python 实现的车牌识别项目
2021/01/25 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
一个精品风格的世界:Atterley
2019/05/01 全球购物
2015年酒店销售部工作总结
2015/07/24 职场文书
诚信高考倡议书
2019/06/24 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python