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 数据清洗之数据合并、转换、过滤、排序
Feb 12 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
Python建立Map写Excel表实例解析
Jan 17 Python
django认证系统实现自定义权限管理的方法
Jul 16 Python
python实现简单的文字识别
Nov 27 Python
基于Python的PIL库学习详解
May 10 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
降低python版本的操作方法
Sep 11 Python
python批量修改交换机密码的示例
Sep 22 Python
Python全局变量与global关键字常见错误解决方案
Oct 05 Python
一文搞懂python异常处理、模块与包
Jun 26 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
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
2019/12/04 PHP
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python文件操作整理汇总
2014/10/21 Python
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
Python 错误和异常代码详解
2018/01/29 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
详解python内置模块urllib
2020/09/09 Python
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
欢迎横幅标语
2014/06/17 职场文书
杨善洲电影观后感
2015/06/04 职场文书
Python基础详解之邮件处理
2021/04/28 Python
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
nginx.conf配置文件结构小结
2022/04/08 Servers