你不知道的Python(3)

今天这里会给大家介绍Python 的两个小小的坑,一不注意就会踩。

·大家都知道在Python的字符串中, \ 一般表示转义,比如在字符串中 \n 表示换行符,\t 表示制表符等等,如果我们要输出 \ 本身的话,一般来说有两种方式:

第一种方式就是在字符串中用 \\ 表示 \ 本身

第二种方式就是用原始字符串表示,在原始字符串中 \ 没有特殊意义

但是一不小心你就会遇见如下一种情况:当你准备在字符串末尾输出一个 \ 的时候

此时我们发现第一种方式可以顺利输出,第二种方式表示却会报错。这是什么原因呢?

原来这是因为在原始字符串中,\ 没有特殊意义,所以解释器在原始字符串中遇到 \ 的时候就自动放行 \ 和其后的一个字符而不做转义处理。所以在原始字符串中,当 \ 出现在字符串末尾时,解释器找不到其后当字符,便会报错。

所以,如果你需要在字符串末尾输出 \ 的时候,还是乖乖采用 \\ 来表示吧。

·在Python中,且、或、非使用and、or、not表示。

可是你会发现,如下情况竟会报错

按照日常逻辑,这应该是不会出错的。可是到底是什么导致此情况发生的呢?

其实就是运算符优先级的原因:Python中==的优先级是高于not的

所以not x == y其实相当于not (x == y),也就是not (True == False),而不是我们理解的(not True) == False,所以结果自然为True。

所以当解释器遇到的x == not y时,由于优先级的原因,此表示其实相当于(x == not) y,自然就会报错

对于这两个小坑,大家了解了吗?

大家可以去多多支持原作者,原链接如下:https://github.com/leisurelicht/wtfpython-cn#structure-of-the-examples%E7%A4%BA%E4%BE%8B%E7%BB%93%E6%9E%84

猜你喜欢

转载自blog.csdn.net/hello15523938742/article/details/85932721