python是一门动态语言。在给python传参数的时候并没有严格的类型限制。写python程序的时候,发现错误经常只能在执行的时候发现。有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导致需要花很多时间才能将语法错误慢慢排查出来。其实有一些错误是很明显的,假如能在写程序的时候发现这些错误,就能提高工作效率。最近我发现,可以用pyflakes这个程序对python语法进行语法检查,这样可以尽量早的发现错误。pyflakes有三种使用方法,第一种是当作命令行工具使用。第二种可以作为vim的插件,在vim编辑器中使用,实现所见即所得。第三种是可以在emacs中使用。

Python是一门动态语言。在给python传参数的时候并没有严格的类型限制。写python程序的时候,发现错误经常只能在执行的时候发现。有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导致需要花很多时间才能将语法错误慢慢排查出来。其实有一些错误是很明显的,假如能在写程序的时候发现这些错误,就能提高工作效率。最近我发现,可以用pyflakes这个程序对python语法进行语法检查,这样可以尽量早的发现错误。pyflakes有三种使用方法,第一种是当作命令行工具使用;第二种可以作为vim的插件,在vim编辑器中使用,实现所见即所得;第三种是可以在emacs中使用。

Pyflakes的下载地址戳这里!

命令行用法:

pyflakes *.py

vim编辑器的配置,首先vim需要支持python,vim是否支持python按照如下方式检查:

vim

#进入vim编辑器界面之后,在命令行模式下输入如下命令

:version

结果如下:

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled May 4 2012 04:09:27)

Included patches:1-429Modified by pkg-vim-maintainers@lists.alioth.debian.org

Compiled by buildd@

Huge version without GUI. Features included (+) or not (-):+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments+conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs-dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path+find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv+insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape+mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse+mouse_xterm +mouse_urxvt +multi_byte +multi_lang -mzscheme +netbeans_intg+path_extra -perl +persistent_undo +postscript +printer +profile +python-python3 +quickfix +reltime +rightleft -ruby +scrollbind +signs +smartindent-sniff +startuptime +statusline -sun_workshop +syntax +tag_binary+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title-toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp-xterm_clipboard -xterm_save

其中,+号代表支持,我的vim支持python,不支持的小伙伴们升级你们的vim吧!好,继续,下面我们对vim进行配置,使其支持pyflakes。首先,下载pyflakes.vim,将其解压到vim配置文件夹,我是直接配置到/etc/vim/文件夹下面,修改vim的配置,打开vimrc,配置如下选项:

40 if has("autocmd")41filetype plugin indent on42 endif

好了,万事俱备,测试一下吧!测试结果如下:

配置成功,emacs的配置不再详细介绍,感兴趣的小伙伴自己去google!感谢大家的阅读,希望能帮到大家!

python语法错误检查_Python之静态语法检查相关推荐

  1. python语法错误怎么办_Python给出语法错误但没有错误?

    有人能解释一下python为什么不允许这样做吗?在# -*- coding: utf-8 -* import win32api,win32con,os,time,sys x_pad =464 y_pa ...

  2. python语法错误修改_python基础之错误、调试(异常处理)

    在程序运行过程中,总会遇到各种各样的错误. 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的. 有的错误是用户输入造成的,比如让用 ...

  3. python语法错误类型_python常见报错类型和异常处理

    更新ing 常见的报错类型和简析.异常处理.其他类型的报错(异常)类型简介.自定义异常 常见的报错类型和简析: 报错类型 报错内容 错误类型判断 错误解决方式 AttributeError 属性错误: ...

  4. python语法错误概述_python语法错误

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我是python中的新手,当我想在模块中编译代码时,我遇到语法错误:invail ...

  5. python语法错误概述_Python 错误和异常代码详解

    程序中的错误一般被称为 Bug,无可否认,这几乎总是程序员的错... 程序员的一生,始终伴随着一件事 - 调试(错误检测.异常处理).反反复复,最可怕的是:不仅自己的要改,别人的也要改...一万头草泥 ...

  6. python语法错误怎么办_python错误处理详解

    在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...

  7. python 抽象语法树_Python 的抽象语法树(一)

    Python的抽象语法树(一) 之前三章的内容,我们分别谈及了语法分析中涉及到的文法定义.文法分析以及消除左递归等内容. 今天我们来谈谈语法分析的另一大部分内容:抽象语法树. 抽象语法树 简单来说,抽 ...

  8. mysql数据库输出数据语法错误_获取RDS-Mysql数据语法错误

    如果加工规则中涉及RDS资源的加载,则有可能会产生资源的加载或刷新错误.本文档主要介绍从RDS-Mysql获取数据出错的原因以及排查处理方法. 在成功读取源Logstore数据后,加工引擎开始对源Lo ...

  9. python参数类型检查_Python中的类型检查

    本文中所有代码均运行在Python 2.7上 为什么要进行类型检查? 总所周知,Python是一门典型的动态语言,在变量定义.使用的过程中遵循duck typing,当对某一变量进行操作时才去检查它是 ...

  10. python返回错误提示_python 错误处理

    在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因.在操作系统提供的调用中,返回错误码非常常见.比如打开文件的函数open(),成功时返回文件描 ...

最新文章

  1. c语言2维动态数组的创建,如何创建一个动态2维数组?
  2. 用户从服务器上获取信息资源,从服务器端获取资源动态加载到场景.docx
  3. AlphaFold2被超越!中国团队刷新全球蛋白质结构预测纪录,大牛彭健创业项目一鸣惊人...
  4. Java使用JAX-WS来写webservice时 Unable to create JAXBContext
  5. QT项目添加现有文件后不能运行,MFC在类视图中自动隐藏类
  6. Android攻城狮ListView
  7. 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件
  8. Bit-Z亮相巴厘岛XBlockchain峰会
  9. JVM中OutOFMemory和StackOverflowError异常代码
  10. simplexml和xpath
  11. HttpContext.Current.Session.SessionID相关问题及备忘
  12. 工程实践:如何规范地打印程序日志?
  13. pymysql安装_Python 新手入门必学模块之:pymysql
  14. python入门教程
  15. SpringCloud第一章 Euraka服务注册与发现组件
  16. windows中批量修改文件后缀名
  17. 计算机知识二级竞赛流程,计算机知识竞赛比赛规则及流程
  18. ‘Staring Tomcat v8.0 Server at localhost ’ has encountered a problem 问题解决
  19. 独家 | 全球2000家客户,这家公司推动林肯MKZ成为最流行的自动驾驶样车
  20. Swing游戏开发——飞机大战

热门文章

  1. 解决方案:rabbitmq使用场景-超时未支付订单处理
  2. win7网络适配器_win7网络重置
  3. 安卓电子书格式_好学习、求向上 | 转换各类文件格式?一个网站就够了
  4. Matlab计算相关系数
  5. し: make jianjie的文本网页
  6. safari html5 自动全屏,javascript – 使用iOS Safari网络浏览器的全屏html5视频
  7. wamp中php无法启动,wamp无法正常启动
  8. 扩张的矩阵三要素——时间、空间和事件
  9. 当我跑步时我在想什么读后感
  10. 详解条件概率,全概率,贝叶斯公式