有趣的代码。它是如何工作的?

2024-10-02 20:37:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我喜欢浏览stackovorflow,寻找python代码的精华。 我昨天偶然发现了这个小道消息,它使我困惑不解。你知道吗

有人能解释一下下面的代码是如何工作的,它是什么类型的代码,以及我在哪里可以找到更多关于使用它的信息吗?你知道吗

我试过寻找这种东西,但不知道它是什么动物,搜索结果毫无用处。你知道吗

# Fibonacci Series

n = 1000
a, b=0, 1
while a<n:
    print(a,end=" ")
    a, b=b, a+b
print()

令我困惑的台词是 “a,b=0,1” 和 “a,b=b,a+b”

它们似乎是某种默认数据类型的一种格式,但是type()命令会阻塞并终止它。篡改结构会使其进入无休止的循环或导致程序崩溃。同样,尝试将部分分割成单独的行,或者用分号替换逗号。你知道吗

它是某种形式的python理解吗?你知道吗

我喜欢这个东西!谢谢你的帮助。你知道吗


Tags: 代码信息类型格式typefibonacciendseries
3条回答

这是一个元组赋值。 我想重新排列空格和添加括号会让事情变得更清楚:

a, b=0, 1(a, b) = (0, 1)

以及

a, b=b, a+b(a, b) = (b, a+b)

您提到的示例来自Python documentation。你知道吗

a, b = 0, 1表示a = 0b = 1。你知道吗

a, b = b, a + b表示a = bb = a + b。你知道吗

重要的是要注意b = a + b使用前面的值a,因为当您在同一行中进行多个赋值时,它们就像是在同一时间执行的(尽管实际上它们不是)。你知道吗

这是多重赋值语法。读(a, b)= (b, a+b)。所有正确的表达式在左边的赋值之前求值。你知道吗

方便交换:a, b= b, a或置换,其中:a, b, c= b, c, a。你知道吗


请注意,a, b= b, a+b不等同于a= b后跟b= a+b,反之亦然。你知道吗

相关问题 更多 >