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实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
一步步教你用Python实现2048小游戏
Jan 19 Python
Python实现读取并保存文件的类
May 11 Python
Python实现的质因式分解算法示例
May 03 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
Oct 22 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
python名片管理系统开发
Jun 18 Python
Python实现中英文全文搜索的示例
Dec 04 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
Jan 08 Python
如何用 Python 制作一个迷宫游戏
Feb 25 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
详解:――如何将图片储存在数据库里
2006/12/05 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
python 使用get_argument获取url query参数
2017/04/28 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
JNI的定义
2012/11/25 面试题
介绍一下你对SOA的认识
2016/04/24 面试题
应届生煤化工求职信
2013/10/21 职场文书
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
项目经理任命书内容
2014/06/06 职场文书
会计试用期自我评价
2015/03/10 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
指导教师推荐意见
2015/06/05 职场文书
心术观后感
2015/06/11 职场文书
电工生产实习心得体会
2016/01/22 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书