本文共 1805 字,大约阅读时间需要 6 分钟。
在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)
++ 和 -- 在Python中不是有效的运算符,尽管在某些编程语言中可能有此用法。
>>> x = 3>>> x +++ 58>>> x++ File "", line 1 SyntaxError: invalid syntax>>> ++55>>> ++++++++55>>> --55
在 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 函数在调用时使用正确的值。
在一个作用域中,只要有变量被赋值,且该变量在当前作用域内没有被声明,则它就是局部变量。
>>> 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 被重新赋值,因此它被视为局部变量。
元组是不可变的对象,意味着其元素无法被修改。
>>> 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 不再共享同一个对象。
字符串可以通过多种方式转换为数字。
>>> 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/