在Python这条路上踩过的坑(1)

(1)如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

# -*- coding: utf-8 -*-

(2)and 和 or 运算的一条重要法则:短路计算。Python 解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果

(3)因为()既可以表示 tuple,又可以作为括号表示运算时的优先级,结果 (1) 被 Python 解释器计算出结果 1,导致我们得到的不是 tuple,而是整数 1。

正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:

>>> t = (1,)
>>> print t
(1,)

Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。

(4)注意:Python 代码的缩进规则。具有相同缩进的代码被视为代码块,上面的3,4行 print 语句就构成一个代码块(但不包括第5行的 print )。如果 if 语句判断为 True,就会执行这个代码块。

缩进请严格按照 Python 的习惯写法:4个空格,不要使用 Tab,更不要混合 Tab 和空格,否则很容易造成因为缩进引起的语法错误。

注意: if 语句后接表达式,然后用:表示代码块开始。

如果你在 Python 交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车

(5)幂运算**

(6)set 持有一系列元素,这一点和 list 很像(set 和 list 存的都是元素),但是 set 的元素没有重复,而且是无序的,这点和 dict 的 key 很像(dict 的 key 也是无序且不可重复的)。

(7)set 的内部结构和 dict 很像,唯一区别是不存储 value,因此,判断一个元素是否在 set 中速度很快。

set 存储的元素和 dict 的 key 类似,必须是不变对象,因此,任何可变对象是不能放入 set 中的。

最后,set 存储的元素也是没有顺序的。

猜你喜欢

转载自blog.csdn.net/qq_28303495/article/details/89300870
今日推荐