博客
关于我
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/

你可能感兴趣的文章
Perl6 必应抓取(1):测试版代码
查看>>
Perl的基本語法
查看>>
perl输出中文有乱码
查看>>
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 大数据ssh权限问题 hadoop起不来 hadoopssh错
查看>>
PermissionError:Python 中的 [Errno 13]
查看>>
PermissionError:[Errno 13] 权限被拒绝:‘/manage.py‘
查看>>
Permutation
查看>>
perspective意思_2020年12月英语四级词汇讲解丨考点归纳:perspective
查看>>
PE文件,节头有感IMAGE_SECTION_HEADER
查看>>
PE查找文件偏移地址
查看>>
PE知识复习之PE的导入表
查看>>
PFX(Parallel Framework) and Traditional Multithreading
查看>>
PGOS:今天动手给电脑装青苹果Win7 X64位系统
查看>>
pgpool-II3.1 的内存泄漏(一)
查看>>
PgSQL · 特性分析 · PG主备流复制机制
查看>>
PGSQL主键序列
查看>>
PGSQL安装PostGIS扩展模块
查看>>
Phalcon环境搭建与项目开发
查看>>
Phantom.js维护者退出,项目的未来成疑
查看>>
Pharmaceutical的同学们都看过来,关于补码运算的复习相关内容
查看>>