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理解吗?
我喜欢这个东西!感谢您提供的任何见解。
解决方案
您提到的示例来自Python 文档。
a, b = 0, 1
意味着a = 0
和b = 1
。
虽然a, b = b, a + b
意味着a = b
和b = a + b
。
重要的是要注意使用b = a + b
之前的值a
,因为当您在同一行中进行多个分配时,它就像它们同时执行一样工作(即使实际上它们不是)。
推荐阅读
- javascript - React Route 获取多个 URL
- typescript - 在 TypeScript 中将 Firestore 文档引用转换为 JSON 数据
- python - 为什么 sklearns 分类报告的“加权”平均 F1 分数与公式计算的 F1 分数不同?
- python - Ubuntu 升级到 18.04 后 Anaconda 找不到任何模块
- encryption - MariaDB TDE - 如何加密错误日志文件?
- python - 使用参数模拟 python 实例方法或调用原始方法
- phpunit - 在 PHPUnit 10 中模拟不存在的类
- python - Selenium:“握手失败……”
- windows - 如何将 UTC 日期时间转换为指定的时区?
- java - 当类实现 Callable 接口时,Spring Env 为 null