python中出现invalid syntax报错的几种原因分析


Posted in Python onFebruary 12, 2022

出现invalid syntax报错的几种原因

这篇文章旨为刚接触python不久的朋友,提供一点帮助,请在检查代码没有主要问题时再看是否存在以下问题。

一般来说,写完代码运行时,如果代码中有错误,解释器会提示错误信息,按照提示信息,一般很快可以找出错误,进行修改。但也有一些时候错误提示的信息不是那么明确,代码检查了几遍仍找不出问题,就比较头疼了。今天我们来说一个常见的invalid syntax,在写代码的过程中,哪些小细节错误容易导致invalid syntax报错。更多的原因,后续逐渐补充......

1.符号使用不正确

例如:只写了半个括号,使用了中文符号等

像下面的代码中,76行少了一个右括号。

……
        else:
            header = "HTTP/1.1 200 OK\r\n"
            header += "\r\n"
            body = "hahahaha"
            response = header + body
            new_socket.send(response.encode("utf-8")
        new_socket.close()
    def run_forever(self):
        while True:
            new_socket, client_addr = self.tcp_server_socket.accept()
            
            p = multiprocessing.Process(target=self.service_client, args=(new_socket,))
            p.start()
            
            new_socket.close()
            ……

运行代码,则会报错:

 File "w01.py", line 78
    new_socket.close()
             ^
SyntaxError: invalid syntax

其实,78行并没有错误,这时我们就在78行附近寻找,看是否有成对的符号(如括号)未成对使用的情况。在76行补全右括号后,代码运行正常。

有些解释器会有自动补全符号的功能。有些则没有,这时对于新手朋友要特别注意,在写成对的符号时(例如括号、引号等)一定要一次把一对符号写完,再在符号中填写内容,避免因这种情况出现bug,后续检查花费大量时间。

2.代码缩进问题

python是一种严格依赖缩进的语言,如果缩进不正确或缩进格式不统一,一般错误信息会明确告诉你,但有时也会出现invalid syntax报错。

所谓缩进不正确,python的缩进是四个空格或一个TAB,如果缩进三个空格,一定报错

所谓缩进格式,即不能空格和TAB混用。如果不清楚是否存在混用,可以使用sublime统一调整即可。

invalid syntax——无效语法

错误代码块

num_1=float(input(“请输入第一个数:”))
num_2=float(input(“请输入第二个数:”))
c=(input(“请选择运算类型:1.+ 2- 3.* 4./ 5.% :”))
if c==+
out=num_1 + num_2
if c==-:
out=num_1 - num_2
if c==*:
out=num_1 * num_2
if c==/:
out=num_1 / num_2
if c==%:
out=num_1 % num_2
print(“运算结果是:”,out)`

出现错误:invalid syntax

在此程序中,把“、+、-、、/等运算符直接用在if条件中造成报错,故字符串类型和数值类型*不一样,应用“+”、“-”符号作为判断条件。

调整后代码

num_1=float(input(“请输入第一个数:”))
num_2=float(input(“请输入第二个数:”))
c=(input(“请选择运算类型:1.+ 2- 3.* 4./ 5.% :”))
if c=="+":
out=num_1 + num_2
if c=="-":
out=num_1 - num_2
if c=="*":
out=num_1 * num_2
if c=="/":
out=num_1 / num_2
if c=="%":
out=num_1 % num_2
print(“运算结果是:”,out)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
基于python的Tkinter编写登陆注册界面
Jun 30 Python
python中for用来遍历range函数的方法
Jun 08 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
python实现三次样条插值
Dec 17 Python
对python字典过滤条件的实例详解
Jan 22 Python
python读取ini配置文件过程示范
Dec 23 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
如何利用Python 进行边缘检测
Oct 14 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 Python
python基于pexpect库自动获取日志信息
Feb 01 Python
python ConfigParser库的使用及遇到的坑
Feb 12 #Python
Python制作春联的示例代码
Jan 22 #Python
Python制作表白爱心合集
基于Python实现一个春节倒计时脚本
Jan 22 #Python
详解Python如何批量采集京东商品数据流程
Jan 22 #Python
用Python实现屏幕截图详解
Jan 22 #Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 #Python
You might like
php发送与接收流文件的方法
2015/02/11 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
js 表格隔行颜色
2009/12/02 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python enumerate索引迭代代码解析
2018/01/19 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
Java语言程序设计测试题判断题部分
2013/01/06 面试题
教育孩子心得体会
2014/01/01 职场文书
预备党员个人总结
2015/02/14 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python