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
- 基于pythonopencv的图片识别(Python Opencv实现图像轮廓识别功能)
- python使用telnet(python 处理telnet返回的More,以及get想要的那个参数方法)
- python学生管理系统的思路(python实现学员管理系统)
- python udp通信(Python socket模块实现的udp通信功能示例)
- python3 怎么查看函数用法(Python3 max函数基础用法)
- python ssh 连接(python pexpect ssh 远程登录服务器的方法)
- python2个字典合成(Python两个字典键同值相加的几种方法)
- 卷积神经网络python实现(Python通过TensorFlow卷积神经网络实现猫狗识别)
- 用python画圣诞树送给女朋友(情人节快乐! python绘制漂亮玫瑰花)
- python获取excelsheet名称(python查询文件夹下excel的sheet名代码实例)
- 在python中如何删除指定的行(Python删除n行后的其他行方法)
- python3函数的使用方法(Python3.5基础之函数的定义与使用实例详解参数、作用域、递归、重载等)
- python转pdf教程(Python实现将HTML转成PDF的方法分析)
- python中输入背景颜色的代码(Python 给屏幕打印信息加上颜色的实现方法)
- python坐标输入(python导入坐标点的具体操作)
- python分词操作(Python英文文本分词无空格模块wordninja的使用实例)
- 收藏 春节假期,这些景区巨划算(收藏春节假期这些景区巨划算)
- 景区游玩,这些安全知识要牢记(这些安全知识要牢记)
- 各地出招烘 热 旅游(各地出招烘热旅游)
- 2021款起亚霸锐到店了 更换车标,竞争宝马X5有戏吗(2021款起亚霸锐到店了)
- 新款起亚霸锐实拍,比普拉多气派,配3.0T V6,引入国内或许能大卖(新款起亚霸锐实拍)
- ()
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9