900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 链式比较 奇怪的字母 有趣的import...Python冷知识(六)

链式比较 奇怪的字母 有趣的import...Python冷知识(六)

时间:2022-09-05 22:37:21

相关推荐

链式比较 奇怪的字母 有趣的import...Python冷知识(六)

本文转载自Python编程时光(ID:Python-Time)

冷知识系列,已经更新至第六篇。

谈谈 Python 那些不为人知的冷知识(一)

谈谈 Python 那些不为人知的冷知识(二)

谈谈 Python 那些不为人知的冷知识(三)

谈谈 Python 那些不为人知的冷知识(四)

谈谈 Python 那些不为人知的冷知识(五)

链式比较

先给看一个示例。

>>>False==False==True

False

你知道这个表达式会返回 False 吗?

我再给你举个例子,你可能就懂了。

f18<age<60:

print("youngman")

如果还不明白,再给你整个等价写法。

>>>False==FalseandFalse==True

False

奇怪的字母

直接看下列例子,在Python 2.x 中

>>>value=11

>>>valuе=32

File"<stdin>",line1

valuе=32

^

SyntaxError:invalidsyntax

在Python 3.x 中

>>>value=11

>>>valuе=32

>>>value

11

我相信你一开始看到这里,一定是目瞪口呆。你可以在自己的电脑上尝试一下,你会发现你不管在哪个版本的 Python 里运行都没有问题。

如果你想重现我这个场景,你可能复制我上面的代码粘贴至自己的命令行中即可。

在这里,也不卖关子了,上面代码中第二行的е和 第一行的e是不一样的。(为了让你区分开来,上面的两个 e 的字体我选不一样的,当你在你的 cmd 窗口中执行时,是完全区分不出来的。)

第二行的e是 Cyrillic(西里尔)字母,而不是我们熟悉的英文字母。

>>>ord('е')#cyrillic'e'(Ye)

1077

>>>ord('e')#latin'e',asusedinEnglishandtypedusingstandardkeyboard

101

>>>'е'=='e'

False

细思恐极,平时可千万不要得罪同事们,万一辞职的时候,把你项目里的e全局替换成e,到时候连错都不知道错哪了哈哈。

x == +x 吗

在大多数情况下,这个等式是成立的。

>>>n1=10086

>>>n2=+n1

>>>

>>>n1==n2

True

什么情况下,这个等式会不成立呢?由于Counter的机制,+用于两个 Counter 实例相加,而相加的结果如果元素的个数<=0,就会被丢弃。

>>>fromcollectionsimportCounter

>>>ct=Counter('abcdbcaa')

>>>ct

Counter({'a':3,'b':2,'c':2,'d':1})

>>>ct['c']=0

>>>ct['d']=-2

>>>

>>>ct

Counter({'a':3,'b':2,'c':0,'d':-2})

>>>

>>>+ct

Counter({'a':3,'b':2})

有趣的import

import 是Python 导包的方式。你知道 Python 中内置了一些很有(wu)趣(liao)的包吗?

Hello World

>>>import__hello__

HelloWorld!

Python之禅

>>>importthis

TheZenofPython,byTimPeters

Beautifulisbetterthanugly.

Explicitisbetterthanimplicit.

Simpleisbetterthancomplex.

Complexisbetterthancomplicated.

Flatisbetterthannested.

Sparseisbetterthandense.

Readabilitycounts.

Specialcasesaren'tspecialenoughtobreaktherules.

Althoughpracticalitybeatspurity.

Errorsshouldneverpasssilently.

Unlessexplicitlysilenced.

Inthefaceofambiguity,refusethetemptationtoguess.

Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.

Althoughthatwaymaynotbeobviousatfirstunlessyou'reDutch.

Nowisbetterthannever.

Althoughneverisoftenbetterthan*right*now.

Iftheimplementationishardtoexplain,it'sabadidea.

Iftheimplementationiseasytoexplain,itmaybeagoodidea.

Namespacesareonehonkinggreatidea--let'sdomoreofthose!

反地心引力漫画

在 cmd 窗口中导入antigravity

>>>importantigravity

就会自动打开一个网页。

局部/全局变量分不清

在开始讲之前,你可以试着运行一下下面这小段代码。

a=1

deffunc01():

a+=1

func01()

看似没有毛病,但实则已经犯了一个很基础的问题,这个报错相当常见吧?

>>>func01()

Traceback(mostrecentcalllast):

File"<stdin>",line1,in<module>

File"<stdin>",line2,infunc01

UnboundLocalError:localvariable'a'referencedbeforeassignment

当程序运行到a += 1时,Python 解释器就认为在函数内部要给a这个变量赋值,当然就把a当做局部变量了,报错是理所应当的。理解了上面的例子,给你留个思考题。为什么下面的代码不会报错呢?

a=1

deffunc02():

print(a)

func02()

(本文为 AI科技大本营转载文章,转载请联系原作者)

CTA核心技术及应用峰会

5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。

更多重磅嘉宾请识别海报二维码查看,目前会议早鸟票发售中(原票价1099元),点击阅读原文即刻抢购。添加小助手微信15101014297,备注“CTA”,了解票务以及会务详情。

推荐阅读

人工智能的浪潮中,知识图谱何去何从?

从Pixel 3a到Android Q,一份谷歌AI能力的“成绩单”|Google I/O全程回顾

Python datetime指南:教你如何处理日期和时间(附试题+答案)

从小白到入门算法,我的经验分享给你~

开了个会:破局企业云通信,华为加速 Buff 开发者!

独家! 币安被盗原因找到了! 7074枚比特币竟是这样丢掉的

保送清华成博士,华为 12 年搞通信,他为何如此看待 5G ?|人物志

补偿100万?Oracle裁900+程序员,新方案已出!

什么叫云原生应用?| 技术头条

@程序员,不加班就滚吧 | 程序员有话说

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。