下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >编程语言 >Python 入门最容易犯的错误(二)

Python 入门最容易犯的错误(二)

spring发布于 2017-09-04 09:28查看:1234回复:2

    6、字符串与非字符串连接

1504487724282695.jpg

        导致:TypeError: cannot concatenate ‘str’ and ‘int’ objects

        字符串与非字符串连接时,必须把非字符串对象强制转换为字符串类型

1504488490153612.jpg

        或者使用字符串的格式化形式

1504488524594227.jpg

     7、使用错误的索引位置

1504488572375022.jpg

        导致:IndexError: list index out of range

        列表对象的索引是从0开始的,第3个元素应该是使用 spam[2] 访问

     8、字典中使用不存在的键

1504488945462239.jpg

        在字典对象中访问 key 可以使用 [],但是如果该 key 不存在,就会导致:KeyError: ‘zebra’

        正确的方式应该使用 get 方法

1504488977862498.jpg

        key 不存在时,get 默认返回 None

     9、用关键字做变量名

1504489093750847.jpg

        导致:SyntaxError: invalid syntax

        在 Python 中不允许使用关键字作为变量名。Python3 一共有33个关键字。1504489158495637.jpg

    10、函数中局部变量赋值前被使用

1504489199491129.jpg

        导致:UnboundLocalError: local variable ‘someVar’ referenced before assignment

        当函数中有一个与全局作用域中同名的变量时,它会按照 LEGB 的顺序查找该变量,如果在函数内部的局部作用域中也定义了一个同名的变量,那么就不再到外部作用域查找了。因此,在 myFunction 函数中 someVar 被定义了,所以 print(someVar) 就不再外面查找了,但是 print 的时候该变量还没赋值,所以出现了 UnboundLocalError

    11、使用自增 “++” 自减 “–”

1504489241555217.jpg

    哈哈,Python 中没有自增自减操作符,如果你是从C、Java转过来的话,你可要注意了。你可以使用 “+=” 来替代 “++”

1504489293580055.jpg

    

        12、错误地调用类中的方法image.png

        导致:TypeError: method1() takes 0 positional arguments but 1 was given

        method1 是 Foo 类的一个成员方法,该方法不接受任何参数,调用 a.method1() 相当于调用 Foo.method1(a),但 method1 不接受任何参数,所以报错了。正确的调用方式应该是 Foo.method1()。

        需要注意的是,以上代码都是基于 Python3 的,在 Python2 中即使是同样的代码出现的错误也不尽一样,尤其是最后一个例子。


收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享
spring  于   2017-09-04 09:42 重新编辑过

版主推荐

    共有2条评论

    • IT宅男
    • mr jack
    • Mr ken
    • Mright
    • cappuccino
    • YUI
    • 课课家运营团队
    • 课课家技术团队1
    • 酸酸~甜甜
    • 选择版块:

    • 标题:

    • 内容

    • 验证码:

    • 标题:

    • 内容

    • 选择版块:

    移动帖子x

    移动到: