最近开始接触python,整体的感觉很不错,但是也存在不少的陷阱,比如and or的用法就是一个。
第一次接触python的and or语法的时候,第一个感觉就是它的返回值是true or false,然而实际上并不是,它是直接返回or前后两个表达式的值,这更像java中的": ?",如:
>>> ""and"b"or"c"
'c'
在python里,""空字串看作是False,所以以上表达式返回"c",看起来和java的": ?"一样吧,然而如此认为就大错特错了,其实在这里就存在一个陷阱,看如下代码:
>>> "b"and""or"c"
'c'
以上代码目的是判断是"b"的时候返回空字符串,否则返回"c",然而本来应该返回""空字符串,可是实际上的结果却出乎意料,返回的是"c"。
原来and or首先会对and前后表达式进行判断,只有都为True才会返回and之后那个表达式的值,而上面代码由于and后是个""空字符串,所以结果为False,就返回"c"。
那么如何解决这个问题呢?其实我们可以利用python的list,看如下代码:
>>> ["b"][0]and[""][0]and["c"][0]
''
将实际的字符串封装进list中,这样对于and来说,后面是一个非空list,返回结果就是True,因此最终就可以达到避免该陷阱的目的。
分享到:
相关推荐
python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记python笔记
Python笔记PythonPython笔记笔Python笔Python笔记记记Python笔记
Python笔记 ,python笔记全,Python源码
中文 Python 笔记
python笔记
Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip Python 笔记源码——内含python后端&机器学习等.zip ...
Python笔记完整版.md
Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf Python学习笔记 .pdf ...
Python 笔记源码综合下载.zip
Python基础语法,到包的使用 Python高级语法,常用模块 WEB前端 数据库 Django框架 爬虫及其框架
python笔记,python课程笔记 python基础 flask框架
python笔记.md
中文 Python 笔记 中文 Python 笔记 中文 Python 笔记
到http://www.python.org/下载最新的稳定版本Python。在Windows 平台下, 安装过程和普通的软件没有什么区别,一路下一步就可以了。
自己总结的python最最基础的笔记
1、Python环境搭建 1.1 Python简介 1.2 Python语言的发展历程 1.3 Python语言的主要特点 1.4 Python应用场景 1.5 Python环境搭建 1.6 第一个Python程序 1.7 集成开发工具 2、Python语法基础 2.1 Python中的...
python笔记整理
Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python笔记及源码Python...
python自学ing,自己总结了一些python的知识点,python笔记1。
Python 学习笔记