有趣且鲜为人知的 Python 特性,火了!

小编最近逛Github发现了一个给力的Python项目,绝对能让你傻眼!可以通过这个项目测试你对Python的熟悉程度!

这个项目叫做 “What the f*ck Python! 🐍",主要讲一些有趣且鲜为人知的 Python 特性。
项目地址为:https://github.com/leisurelicht/wtfpython-cn

来体会一些难以理解和反人类直觉的Python特性吧
在这里插入图片描述
是我眼花了么?我动手敲了下,确实是这样…

这是为啥呢?

因为 256 是一个已经存在的对象, 而 257 不是。

大家可以想到256是2的8次方。

当Python开启后,-5~256数字已经分配好对象了,主要考虑这些数字经常使用。

引用自 https://docs.python.org/3/c-api/long.html

可以再看看这个案例:
在这里插入图片描述
大家都知道,在Python中通过id( )可以确定两个变量存储的内容是否是同一个,通过以上的代码结果说明创建了多个257对象。

你以为到这就结束了么?并没有

再来继续看这个:
在这里插入图片描述这又触及我的知识盲区了!这是为啥啊?
在这里插入图片描述
揭晓答案吧!当a和b在同一行被赋值为相同内容时,Python解释器会创建一个变量,然后引用它(不新创建了!)。注意这是在交互式的环境中,属于交互式环境的编译器优化。

我们看下一个有趣的特性:
在这里插入图片描述
在这里插入图片描述
???这是为啥呢,我明明只给一个位置赋值了“X”啊!
大家应该想到了原因!
当我们初始化时:
在这里插入图片描述
然后我们使用乘法初始化board变量时,是这样的:
在这里插入图片描述
也就是说,这三行都引用了row的内存空间。
所以改变其中一个位置的值,也就改变了3个位置的值!
为了避免引用相同位置内容,可以采用以下方法:
在这里插入图片描述
接着看下个案例吧:

神奇的三引号!
在这里插入图片描述
补充个说明,Python的隐式字符串连接:
在这里插入图片描述
思考一下再看答案!

答案:’’’ 和 “”" 在 Python中也是字符串定界符, Python 解释器在先遇到三个引号的的时候会尝试再寻找三个终止引号作为定界符, 如果不存在则会导致 SyntaxError 异常。

我们再来看下一个例子:
在这里插入图片描述
返回的结果是:
在这里插入图片描述
???我的bool值都到哪去了?
在这里插入图片描述
其实,布尔值是int的子类,看下面这个就懂了:
在这里插入图片描述
如果还没理解,可以继续往下看:
在这里插入图片描述
在这里插入图片描述
True 的整数值是 1, 而 False 的整数值是 0。
在这里插入图片描述
在这里插入图片描述
还有很多Python神奇的特性,咱们慢慢的了解哦~戳学习大礼包免费领取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值