代码编写风格的重要性:随着你编写的程序越来越长,有必要了解一些代码格式设置约定。请花时间让你的代码尽可能易于阅读;让代码易于阅读有助于你掌握程序是做什么的,也可以帮助他人理解你编写的代码。...Python程序员都遵循一些格式设置约定。学会编写整洁的Python后,就能明白他人编写Python代码的整体结构------只要他们和你遵循相同的指南。...设置格式指南:若要提出Python语言修改建议,需要编写Python改进报案(Python Enchancement Proposal,PEP)。...PEP8是最古老的PEP之一,它向Python程序员提供了代码格式设置指南。Python格式设置指南的编写者深知,代码被阅读的次数比编写的次数多。...PEP 8还建议注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加格式化字符。PEP 8中有关行长的指南并非不可逾越的红线,有些小组将最大行长设置为99字符。
箱线图是一种用来描述数据分布的统计图形,方便观察数据的中位数、中值、四分位数、最大值(或上边缘)、最小值(或下边缘)和异常值等描述性统计量。 参考代码: ? 运行结果: ?
当我们在使用Python时,finally语句用于定义无论是否发生异常都必须执行的代码块。正常情况下,finally语句不会捕获异常,而是在异常处理完成后执行。...如果这时候finally语句中发生了异常,它会覆盖之前的异常,并成为最终的异常。要捕获finally语句中的异常消息,可以使用try和except语句包裹finally块。...1、问题背景在 Python 中,如果需要捕获异常并打印所返回的消息,可以像这样:class SelfDefinedException(Exception): passtry: message...因为如果你不知道发生了哪种异常,就无法对其采取任何措施。此时,程序应该关闭并提供尽可能多的关于问题的信息。当然,也有一些方法可以实现捕获 finally 子句中的异常消息。...如果该值不为 None,则说明发生了异常,此时可以获取异常消息并重新抛出。
用无所不能的 Python 就可以将这些撤回的消息发给你的微信,让你从此走上人生巅峰 项目环境 语言:Python3 编辑器:Pycharm 导包 itchat:控制微信的第三方库 这个库相信大家不陌生了...,之前写的 Python 机器人陪你聊天 Python 定时给女神发早安 两篇文章里用的 wxpy 库就是在 itchat 库的基础上封装的。...接收信息处理 先将我们需要处理的消息用 msg_register 装饰器进行注册,格式化本地时间,定义消息 ID 和消息时间。...多条件时这里用了 in 的用法,还记得之前讲 Python 优雅的写法 文章里把用 or 连接条件改成用 in,代码更简洁,这样我们通过项目不断的巩固之前学到的知识点,这样才能不断进步。 ?...长时间运行时会报 ConnectionError 提示的错误,但是不影响发送撤回消息的功能,后期加个异常捕捉机制优化下。
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 这个系列讲讲Python对Excel的操作...今天讲讲win32com模块对已有Excel文件的操作:打开,赋值,保存,关闭 Part 1:代码 import os import win32com from win32com.client import...xl_app= win32com.client.gencache.EnsureDispatch("Excel.Application"),引用Excel对象,接下来的代码都可以按照VBA方式来写,注意Python...(“A1”)表示第1个工作表的A1单元格 注意这里的sht.Range("A1").Value的Value不能省略 综上整体上与VBA代码一样,但是细节之处要求更高常按图片识别二维码,关注本公众号 Python
项目环境 语言:Python3 编辑器:Pycharm 导包效果展示 以下截图显示的撤回消息类型依次是文字消息、微信自带表情、图片、语音、定位地图、名片、公众号文章、音乐、视频。...接收信息处理 先将我们需要处理的消息用 msg_register 装饰器进行注册,格式化本地时间,定义消息 ID 和消息时间。...多条件时这里用了 in 的用法,还记得之前讲Python 优雅的写法文章里把用 or 连接条件改成用 in,代码更简洁,这样我们通过项目不断的巩固之前学到的知识点,这样才能不断进步。...主函数 如果你电脑中有安装 Python 环境,在编辑器中直接运行源码或者在 cmd 中运行 py 文件即可。源码获取方式在文末给出。...长时间运行时会报 ConnectionError 提示的错误,但是不影响发送撤回消息的功能,后期加个异常捕捉机制优化下。
演示: 1).异常处理的定义格式; 2).常见的运行时异常类型; try: print(10/0) num=int('132a') except Exception as...except ZeroDivisionError as e: print(e) pass except TypeError as e: print('出现类型不匹配的异常了.....except ValueError as e: print(e) except FileNotFoundError as e: print('出现文件找不到的异常了...')...except (ZeroDivisionError,TypeError,ValueError,FileNotFoundError) as e: print('出现异常了...')
注释 其实我们见过注释 添加图片注释,不超过 140 字(可选) #号开头的 注释 颜色 和其他语句 不一样 不会 被python3解释执行 凡是 #开头的行 都是 注释语句 不会 被执行...判别编码格式 编写的py文件 都是二进制的文件 如果 不进行编码格式说明的话 怎么知道 应该用什么 编码格式打开 呢?...coding[:=][\t]\*([-_.a-zA-Z0-9]+) ([-_.a-zA-Z0-9]+) 小括号中 匹配到的 就是编码格式的名称 比如utf-8 而且这种写法同时 也设置了vim.../usr/bin/python3 #vim: set fileencoding=utf-8 第一句 是告诉 shell 的 用哪个二进制文件 打开这个当前文件 第二句 不但 规定了 python3...解释 运行源文件的编码格式 是utf-8 而且 还设置了 vim 的对于此文件 打开与保存的编码格式是utf-8 如果我定义一个 python解释器都不认识的编码格式 会如何?
1、打开要设置的文件; 2、左上角 file 中的Settings… 3、看下图,选中 Editor 的 File Encodings ,然后在右边选择你想要的的编码格式 发布者:全栈程序员栈长,转载请注明出处
安装Python扩展 在VSCode的扩展(Externsions)中使用下面命令检索Python扩展 @category:debuggers Python 打开一个Python文件,可以在VSCode...安装PEP8 python3.10 -m pip install -U autopep8 安装Flake8 python3.10 -m pip install -U flake8 安装完需要重启VSCode...修改配置 通过扩展中Python的设置按钮打开扩展的配置页面 开启Flake8 在检索框输入flake8Enabled,注意加一个空格。...格式化代码 批量处理历史代码 安装Format Files扩展 在需要处理的目录下,右击 这样历史代码就被格式化了 保存时自动格式化 修改VSCode的配置 勾选Format On Save...这样我们在保存代码时,自动会进行格式化操作。
,title()、xlabel()、ylabel()、xticks()、yticks()或类似的函数和方法中的字符串首尾加符号“$”,可以调用matplotlib内嵌的Latex引擎进行渲染,例如: Python...+matplotlib调用LaTex引擎渲染公式 Python+matplotlib绘图使用Latex引擎渲染坐标轴刻度文本上标 但这种内嵌的语法与标准Latex语法并不完全一样,支持的格式也不全面。...使用MiKTex搭建Latex环境,然后编写Python程序,使用扩展库Matplotlib进行可视化,结合Latex进行属性设置,使得坐标轴刻度加粗、坐标轴标签文本中部分字符加粗、斜体、设置颜色。...启动MiKTex,切换至管理员模式,然后设置检索源为本地文件夹,如图: 4....对文章“Python三种方法统计4位自然数变为黑洞数6174所需次数分布”中最后一种方法的代码进行修改,使用Latex渲染文本,使得标题中第一个单词斜体、第三个单词斜体且标红,最后一组数字字号变大且加粗
D:/workspace/python-common/basic/logging_test.py 这是WARN 没有输出INFO的日志级别。...file_handler) log2.setLevel(logging.WARNING) log2.info("这个不会被记录") log2.warning("警告警告~~~~") 设置格式...所以还需要格式化一下: ?...设置格式化要用到logging.Handler import logging def print_name(logger, name): logger.info("name={}".format...可能没有 # %(message)s用户输出的消息
,处理消息选择框的点击结果 ?...QMessageBox使用格式 具体问号使用格式: QMessageBox.question(self,消息标题,消息内容,消息的按钮类型,首次打开后默认选中哪个按钮) 使用举例: QMessageBox.question...#001可视化界面开发环境搭建 python高级进阶#002第一个pyqt5程序 Python高级进阶#003 pyqt5与qtdesigner对照分析 Python高级进阶#004 pyqt5设置窗体图标...Python高级进阶#005 pyqt5显示提示框 Python高级进阶#006 pyqt5类封装 python中自定义序列的实现 python第一个程序,定位在小学数学还是幼儿园?...python输入与输出涨姿势 python中认识异常,合理利用异常
原理很简单,每一条消息都是有 id 的,我们把所有消息都存储在 dict 字典里,就存储 id 和对应的消息内容。...itchat.content.TEXT:消息 itchat.content.NOTE:通知 撤回消息就属于通知了,每次有通知,我们都检测一下,如果是撤回消息,就把撤回的消息发送出去。...# -*- coding: UTF8 -*- import itchat import requests import re data = {} # 用于存储所有消息的dict字典 # 当接收到消息会触发...= None: return "你撤回了消息:" + str(old_msg) 当然我们有点不足之处就是如果消息存储过多的话,会占用我们的很多的内存。...方法2: 每个消息都有对应的发送时间,我们获取到并且和当前时间对比,当时间超过 2 分钟就把消息删除,正好消息本身超过2分钟也不能撤回了。 程序运行效果图:
Python 提供了两个基本的 socket 模块: Socket 它提供了标准的BSD Socket API。 SocketServer 它提供了服务器重心,可以简化网络服务器的开发。...s.setblocking(flag) 如果flag为0,则将套接字设置为非阻塞模式,否则将套接字设置为阻塞模式(默认值)。...非阻塞模式下,如果调用recv()没有发现任何数据,或send()调用无法立即发送数据,那么将引起socket.error异常。...(msg)) conn.send(msg.upper())#服务端发送消息 conn.close()#关闭链接 s.close()#关闭套接字 Client端: import socket...msg = input('>>:').strip() if len(msg)==0:continue s.send(msg.encode('utf8'))#发送消息,utf8格式
读取一个文本文件的内容,重新设置这些数据的格式并将其写入文件,让浏览器能够显示这些内容。 要使用文件文件中的信息,首先需要将信息读取到内存中。...如果在程序中过早地调用close(),会发现需要使用文件时它已关闭,这会导致更多的错误。...像显示到终端的输出一样,还可以使用空格、制表符和空行来设置这些输出的格式。 3.附件到文件 要给文件添加内容,而不是覆盖原有内容,可以附加模式打开文件。...except代码块告诉Python,出现ZeroDivisonError异常时怎么办。如果try代码块因除0错误而失败,就打印1条友好消息,告诉用户如何避免这种错误,程序继续运行。...可以使用json在Python程序之间分享数据。json格式不是Python专用的,可将以json格式存储的数据与使用其它编程语言的人分享。
,然后按下 TAB 键,iPython 会提示该对象能够调用的 方法列表 使用内置函数 dir 传入 标识符 / 数据,可以查看对象内的 所有属性及方法 提示 __方法名__ 格式的方法是 Python...利用好 dir() 函数,在学习时很多内容就不需要死记硬背了 初始化方法 ——同时设置初始值 在开发中,如果希望在 创建对象的同时,就设置对象的属性,可以对 __init__ 方法进行 改造 把希望设置的属性值...简单捕获异常语法格式 try: 尝试执行的代码 except: 出现错误的处理 错误类型捕获语法格式 当python解释器抛出异常时,最后一行错误信息的第一个单词,就是错误类型 try...如果文件不存在,抛出异常 w 以只写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件 a 以追加方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。...如果文件不存在,抛出异常 w+ 以读写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件 a+ 以读写方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。
Python定义了以下日志级别: DEBUG:用于调试目的的低级系统信息 INFO:一般系统信息 WARNING:描述已发生的小问题的信息。 ERROR:描述已发生的主要问题的信息。...格式化程序通常由包含LogRecord属性的Python格式化字符串组成 ;但是,您也可以编写自定义格式化程序以实现特定的格式化行为。...如果您不希望特定的记录器logger传播日志给它的父母,则可以关闭此行为。可以通过设置'propagate': False,来实现。...在调试模式关闭时,在关闭期间引发的未捕获异常 将会记录为消息(这是有用的,因为在这种情况下使异常屏蔽并返回空字符串)。...logger.exception():为了捕获某些异常,创建一个ERROR级别的日志(创建一个ERROR包装当前异常堆栈框架的级别日志记录消息) format参数中可能用到的格式化信息: %(name)
0x00.前言看到云 + 社区发布了「热点技术征文赛第二期」征文活动,决定参与【编程语言】选题赛道,本文属于【项目实战经验分享】主要给大家介绍最近一次 Kafka 消息异常翻倍的 debug 流程0x01..._policy 或 _flow 的 topic 中3. consumer 从 _policy 或 _flow 的 topic 中拉取数据,进行处理,最终入库图中黄色部分的 consumer 是基于 Python...是什么原因导致在无任何操作得情况下,消息异常翻倍?0x03. 寻找 bug既然是消息异常翻倍,简单粗暴一点儿的话,修改代码将所有消息打印到日志中对比一下翻倍前后消息的具体内容不就知道了嘛。...因为 Procuder 是基于 Python 写的,那么是时候 Review 代码了,全局搜索 .produce 方法,很快就找到了根源所在小小的一个 kafka_producer 函数中,有很多存在问题的地方不难看出这里首先这里用...try except 包裹,不会继续重试了0x04. debug因为自己发现 Telegraf 可以实现 rawdata consumer 逻辑(这部分内容后续有时间还会介绍给大家),也就是用不到基于 Python
---- socket()函数 Python 中,我们用 socket() 函数来创建套接字,语法格式如下: socket.socket([family[, type[, proto]]]) 参数 family...一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。...flag提供有关消息的其他信息,通常可以忽略。s.send()发送TCP数据,将string中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于string的字节大小。...该方法等待客户端的连接,并返回 connection 对象,表示已连接到客户端。 完整代码如下: #!...连接后我们就可以从服务端获取数据,记住,操作完成后需要关闭连接。 完整代码如下: #!
领取专属 10元无门槛券
手把手带您无忧上云