vlambda博客
学习文章列表

GitHub里标星20.6K的项目!!


啦啦啦,今天又是介绍GitHub项目的一天,这个项目的作者收集了很多奇妙的Python,通过探寻产生这种一些结果的内部原因,虽然可能不是那种很实用的项目,但是可以让我们对Python里的一些细节有更加广泛的认知吧,尤其是对于初学者来说,也是一个非常棒的项目啦,接下来我们一起来探索它吧!


WTF Python

网址:
https://github.com/search?q=WTF+Python

GitHub里标星20.6K的项目!!

Python对于程序员来说是经常用到的 ,那这个WTF Python项目也是非常有趣,它试图解释一些反直觉的代码片段和Python种鲜为人知的功能的内幕。

Python是一种设计精美的高级基于解释器的编程语言 它提供了许多使程序员感到舒适的功能。但是有的时候,Python的一些输出结果对于初学者来说似乎并不是那么一目了然。

GitHub里标星20.6K的项目!!

下面小编会放一些示例,虽然它可能并不是真正意义上的WTF,但是它会揭示一些大家可能平常没有意识到的Python的有趣的部分,对于想学习Python的初学者来说,你可以在里面发现很多学习编程语言内部知识的好机会,也不会觉得它很乏味,相反你会发现它非常有趣。

当然对于经验丰富的Python程序员来说,你也可以把它当成一次挑战,在这个项目里你可能会想到曾经的自己,示例里展示的你们可能也曾经历过,是不是会勾起你满满的回忆!

GitHub里标星20.6K的项目!!

下面我们一起来看看项目中的一些示例:

由于某些原因,Python 3.8的“ Walrus”运算符(:=)变得非常流行。让我们来看看:

arrow_forward 第一件事第一!*


1、

GitHub里标星20.6K的项目!!

2、

GitHub里标星20.6K的项目!!

Walrus运算符(:=)是在Python 3.8中引入的,它在需要为表达式中的变量赋值的情况下很有用。

GitHub里标星20.6K的项目!!

输出(> 3.8):


这样节省了一行代码,并隐式阻止了some_func两次调用。

  • 未括号的“赋值表达式”(使用walrus运算符)在顶层受到限制,因此SyntaxError在a := "wtf_walrus"第一个代码段的语句中受到限制。用括号括起来可以按预期工作并分配a。


  • 与往常一样,=不允许对包含运算符的表达式加括号。因此,中的语法错误(a, b = 6, 9)。


  • Walrus运算符的语法形式为NAME:= expr,其中NAME是有效标识符,并且expr是有效表达式。因此,不支持可重复打包和拆包,这意味着。


  • (a := 6, 9)等价于((a := 6), 9)并最终等于(a, 9) (其中a'的值为6')



  • 同样,(a, b := 16, 19)等效于(a, (b := 16), 19)3元组。

好啦,今天的分享就到这里,不要问小编为什么要翻译成中文,一把辛酸泪啊,网站里是全英文的,英文溜溜的人请直接食用,不用翻译,大家在留言区多多讨论噢!