博客
关于我
Python编程中一定要注意的那些“坑”(一)
阅读量:271 次
发布时间:2019-03-01

本文共 1805 字,大约阅读时间需要 6 分钟。

Python编程实战指南

1. 运算符的误解

在Python中,逗号不是运算符,而是用于分隔符的常见用法。

>>> x = 3, 5>>> x(3, 5)>>> x == 3, 5(False, 5)>>> 1, 2, 3(1, 2, 3)>>> 3 in [1, 2, 3], 5(True, 5)

2. ++ 和 -- 的误用

++ 和 -- 在Python中不是有效的运算符,尽管在某些编程语言中可能有此用法。

>>> x = 3>>> x +++ 58>>> x++  File "
", line 1 SyntaxError: invalid syntax>>> ++55>>> ++++++++55>>> --55

3. Lambda 表达式中的变量作用域

在 lambda 表达式中,变量的作用域容易引起混淆。

>>> d = {}>>> for i in range(5):...     d[i] = lambda: i**2...>>> d[2]()16>>> d[3]()16

这里的问题在于,lambda 表达式中的变量 i 是在调用时决定的,而不是在定义时固定的。

>>> i = 10>>> d[0]()100>>> d = {}>>> for i in range(5):...     d[i] = lambda x=i: x**2...>>> d[2]()4>>> d[3]()9

通过将 x 赋值为 i,可以确保 lambda 函数在调用时使用正确的值。

4. 局部变量的判断

在一个作用域中,只要有变量被赋值,且该变量在当前作用域内没有被声明,则它就是局部变量。

>>> x = 10>>> def demo():...     print(x)...>>> demo()10>>> def demo():...     print(x)...     x = 3...     print(x)...>>> demo()Traceback (most recent call last):  File "
", line 1, in
File "
", line 2, in demoUnboundLocalError: local variable 'x' referenced before assignment

在第二个示例中,x 被重新赋值,因此它被视为局部变量。

5. 元组的可变性

元组是不可变的对象,意味着其元素无法被修改。

>>> x = (1, 2, 3)>>> x[0] = 4Traceback (most recent call last):  File "
", line 1, in
TypeError: 'tuple' object does not support item assignment

如果需要修改元组中的元素,可以将其转换为列表进行操作。

>>> x = [1, 2]>>> x = (x, 3)>>> x[0].append(4)>>> x([1, 2, 3, 4], 3)

需要注意的是,列表和元组是不同的对象类型。

>>> y = x[0]>>> y += [5]>>> x([1, 2, 3, 4, 5], 3)>>> y[1, 2, 3, 4, 5, 6]

当 y 被重新赋值时,x[0] 与 y 不再共享同一个对象。

6. 字符串转换方法

字符串可以通过多种方式转换为数字。

>>> eval('9.9')9.9>>> eval("'09.9'")9.9>>> float('9.9')9.9>>> float("'09.9'")9.9>>> int('9')9>>> int("'09'")9

需要注意的是,使用 eval() 转换整数时,前导零会导致语法错误。

>>> eval("'09'")Traceback (most recent call last):  File "
", line 1, in
File "
", line 1 09SyntaxError: invalid token

转载地址:http://ooyx.baihongyu.com/

你可能感兴趣的文章
python中tkinter中value_输入字段中的python Tkinter get()值
查看>>
Python中wx.FlexGridSizer
查看>>
Python中xPath技术和BeautifulSoup的使用
查看>>
python中yield的用法详解——最简单,最清晰的解释
查看>>
python中‘set.intersection()‘的算法是什么?
查看>>
Python中一个图形中的多个绘图
查看>>
python中一个好的持久同步队列
查看>>
Python中不准确的对数
查看>>
python中什么是实例方法_在Python中创建实例方法对象的不同方法
查看>>
Python中使用cutecharts实现简单的手绘风格的图表
查看>>
python中使用dxfgrabber,解析dxf文件信息生成obj文件
查看>>
Python中使用ncmbot玩转网易云音乐
查看>>
Python中使用PIL快速实现二值图
查看>>
Python中使用PIL快速实现灰度图
查看>>
Python中使用pip install ncmbot时各种错误解决办法
查看>>
Python中使用requests和parsel爬取喜马拉雅电台音频
查看>>
Python中使用turtle绘制多个同心圆
查看>>
Python中使用turtle绘制棋盘详解
查看>>
Python中使用wordcloud生成漂亮的中文词云
查看>>
Python中使用wxpy定时机器人给微信好友发送每日一文
查看>>