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多进程机制实例详解
Jul 02 Python
Python如何为图片添加水印
Nov 25 Python
scrapy爬虫实例分享
Dec 28 Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
详解Python字典小结
Oct 20 Python
python监测当前联网状态并连接的实例
Dec 18 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
Django logging配置及使用详解
Jul 23 Python
opencv3/python 鼠标响应操作详解
Dec 11 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使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
如何写一份好的自荐信
2014/01/02 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
走进科学观后感
2015/06/18 职场文书
摘录式读书笔记
2015/07/01 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
品德与社会教学反思
2016/02/24 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
win10搭建配置ftp服务器的方法
2022/08/05 Servers