python程序报错了?不要慌

作者: 亭子青年 | 来源:发表于2017-08-31 22:26 被阅读67次

大家好,我还是那个在家带孩子的宝妈,那个有态度的tester(伪测试)

我今天来说说,各位刚刚开始学习python的时候经常遇到的几个问题,思考来源于虫师的书籍,如果对大家有所帮助,非常开心。

缩进错误

python语言最具特色的是使用缩进来标明成块的代码,在python中,对程序的缩进有严格的要求,一般建议使用四个空格,当然有人也愿意用tab键也是没有问题的,只是在一个项目中,建议要么使用4个空格,要么使用tab,绝对不要混用,否则可能出现缩进报错的几率很高。

如果代码中出现异常信息IndentationError: expected an indented block,请不要惊慌,你代码中缩进出问题了。下面我们写一个制造一个异常情况

def dict_to_set(dict_ob,set_ob):
    for key, value in dict_ob.items():
    set_ob.add(key)    #这里缩进有问题
        if isinstance(value, dict):
            dict_to_set(value, set_ob)
        elif isinstance(value, list):
            for li in value:
                dict_to_set(li,set_ob)
    return set_ob
if __name__ == "__main__":
    dict01 = {"name":"ting","pass":"123","family":[{"name":"tian","age":1},{"name":"zhou","age":26}]}
    my_set = set()
    print(dict_to_set(dict01,my_set))

执行结果:

我制造了一个异常.png

引包错误

这里只需要说明一下,python的引包机制首先从当前目录开始找是否存在你引入的包名,如果存在就会优先引用当前目录下的文件。

也就是说,如果我在a.py文件中使用import unittest,如果当前目录下存在一个unittest.py的文件,那么我就不能成功的使用py内置的unittest模块了。

所以,大家在命名文件名的时候一定要注意,不要和python自带的模块名冲突。

编码错误

在开发python程序的时候,会涉及3个方面的编码

  1. python程序文件编码,可以在程序的开头使用#coding=utf-8进行申明
  2. python程序运行环境编码
  3. python读取外部文件,网页的编码
    最容易出现问题的情况就是当python读取外部文件,网页的时候,首先我们要确定读取的文件,网页的编码格式,然后通过decode()和encode()方法来进行编码转换
    decode(解码):作用是将其他编码的字符串转换成Unicode编码
    encode(编码):是将unicode编码转换成其他编码的字符串

学会分析错误

我们在编写代码的时候,肯定会经常遇到一大堆的报错,那么掌握读取错误信息的方法是非常重要的,一般我们需要遵循两个点,一是找到自己写的程序(文件名,所在行,所在函数,出错地方),二是看最终的错误提示,根据上面亮点,就可以轻松的锁定范围,找到问题所在了。

写在后面的话

真的很感谢互联网,让我有机会向这么多有经验的前辈学习。

相关文章

  • python程序报错了?不要慌

    大家好,我还是那个在家带孩子的宝妈,那个有态度的tester(伪测试) 我今天来说说,各位刚刚开始学习python...

  • Apache/2.4.29(Ubuntu) Server at

    当一个程序挂了以后,不要慌一定要去测试一下其他的程序,其他的程序也挂了的话,那就是服务上出错了。 如上图,挂的原因...

  • 运行python程序报UnicodeDecodeError错

    如运行python程序报 相关的错误 需要在python文件加上

  • 错了,不要慌,苟住!

    这几年里,我因为错误而承担的代价并不少,本文不在细节中来回纠缠,自己的错没啥好隐瞒的。但我不会因为错误就停滞不前。...

  • Python基础概念

    请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错! 1、Python采用缩进方式。要记得缩...

  • 不要慌不要慌?

    不要慌不要慌,太阳落下有月光, 不要慌不要慌,吃完饺子还有汤呀。 不要慌不要慌,我一无所有又岂会不慌? 没有朝思暮...

  • 不要慌不要慌🍥

    1.别慌,月亮也正在大海某处迷茫。 2.你也曾是银河的浪漫子民,孤身坠入地球,等不到群星来信。 3.我是真的喜欢钱...

  • indentation error

    问题描述:notepad++编写新的python程序突然报indentation error解决: 语言:pyth...

  • !!!

    不要慌,不要慌,太阳下了有月光

  • 太阳下山有月光

    不要慌,不要慌,太阳下山有月光。 这两天被这段话治愈了:不要慌,不要慌,太阳下山有月光,月光散尽有朝阳。 不要过于...

网友评论

  • 秋之川:感谢互联网,让我结识到了这么多热爱学习的朋友们:smile:
    亭子青年:@秋之川 感谢老川
  • 倔强的潇洒小姐:3好像都不用指定coding=utf-8,已经让所有的字符串都是 unicode了
    倔强的潇洒小姐:@亭子青年 :smile: 受2的影响很大
    亭子青年:@倔强的潇洒小姐 但是习惯性的我还是会加入一行申明,记得之前学习py2的时候,感觉编码真的要搞起我

本文标题:python程序报错了?不要慌

本文链接:https://www.haomeiwen.com/subject/bzmcjxtx.html