文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

出现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)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯