python中的isi(深入浅析Python 中 is 语法带来的误解)
python中的isi
深入浅析Python 中 is 语法带来的误解起步
python 的成功一个原因是它的可读性,代码清晰易懂,更容易被人类所理解,但有时可读性会产生误解。
假如要判断一个变量是不是 17,那可以:
if x is 17:
x 是 17 肯定是比 x == 17 更加口语化的。
is的误解
但是如果你尝试:
if name is "weapon":
这个判断不见得管用。is 用来检查左侧和右侧是否是完全相同的对象。如果有两个不同的字符串对象,每个对象的值是相同的,应该使用 == 来判断,因为 is 的用法与口语上的区别挺大的:
if 999 + 1 is 1000: # false
正因为这样的误解,在 if 判断条件上容易让初学者掉坑:
|
answer = 'yes' if answer is 'y' or 'yes' : |
你会发现不管变量是什么值,判断都是为真。因为 is 的优先级高,相当于 if (answer is 'y') or ('yes') 。
正确的方法应该是 if answer == 'y' or answer == 'yes' 或者 if answer in ('y', 'yes') 。
is not 上的混淆
|
>>> 'something' is not none true >>> 'something' is ( not none) false |
is not 是一个二元运算符,应该视为一个整体,不要因为中间空格而当成两个词。底层上,它们也是一个操作符,cpython 将 s is not none 翻译成的字节码为:
|
6 load_name 0 (s) 8 load_const 1 (none) 10 compare_op 9 ( is not ) |
is not 是对 is 相对应的操作符。也可以视为是将 is 判断的结果再进行取反。
总结
我同意 python 非常易读。每种语言的结构都存在一些“出乎意料”的使用。这并不影响我对 python 这门语言的喜爱,每个人都应该好好学习,并小心使用选择的语言。
以上所述是小编给大家介绍的python 中 is 语法带来的误解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://segmentfault.com/a/1190000019085547
- python进度条怎么实现(Python小进度条显示代码)
- 如何用python人脸识别(Python学习笔记之视频人脸检测识别实例教程)
- python撤回的微信消息怎么看(Python实现微信消息防撤回功能的实例代码)
- python微信防封(深入学习微信网址链接解封的防封原理visit_type)
- python 获取数组任意组合(Python实现求两个数组交集的方法示例)
- python3第三方库手册(使用python3构建文件传输的方法)
- python爬百度api有次数限制吗(对python借助百度云API对评论进行观点抽取的方法详解)
- python能操作微信定时发消息(python给微信好友定时推送消息的示例)
- python opencv替换背景教程(基于OpenCV python3实现证件照换背景的方法)
- python自动计算机器人(python实现nao机器人手臂动作控制)
- python线程安全队列(Python 限制线程的最大数量的方法Semaphore)
- python将字符串转换为时间格式(Python时间和字符串转换操作实例分析)
- python图形绘制教程(python绘制漏斗图步骤详解)
- python 导入指定文件夹的模块(Python实现的在特定目录下导入模块功能分析)
- python3爬虫实例代码(python3通过selenium爬虫获取到dj商品的实例代码)
- python 自定义获取文件目录(Python使用os.listdir和os.walk获取文件路径与文件下所有目录的方法)
- 今天要吃什么(今天要吃什么菜好)
- 网红直播可以赚很多钱吗(网红直播可以赚很多钱吗)
- 今天是什么日子(今天是什么日子有什么特殊意义吗)
- 这里输入关键词(怎么输入关键词搜索)
- 34岁的舒畅,就这样走到了末路,不知会不会后悔15年前的草率决定(就这样走到了末路)
- 不走心的古装造型 舒畅 毁容式 出演,萧蔷雷出新高度(不走心的古装造型)
热门推荐
- 在python中各个符号含义的汇总(详解Python中is和==的区别)
- mysql的三种模式(详解 MySQL的FreeList机制)
- html5复制修改(HTML5实现无刷新修改URL的方法)
- dedecms如何使用标签(dedecms模板标签如何做判断示例代码)
- element加固态(Element Plus实现Affix 固钉)
- dedecms搜索功能怎么设置详细(dedecms pagelist标签修改方法分享)
- laravel命令行与可选项(Laravel6.0.4中将添加计划任务事件的方法步骤)
- angularjs使用指令(详解Angular路由动画及高阶动画函数)
- python递归深度遍历多叉树(Python实现二叉树的常见遍历操作总结7种方法)
- thinkphp5访问路径(thinkphp5修改view到根目录实例方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9