python - 增强分配
问题描述
我是 Python 和一般编程领域的新手,今天我遇到了增强分配的问题。不幸的是,我不理解代码,以及做什么for i in range(multiplier)
和做什么answer *= number
。我试着理解它,但我仍然没有真正理解它背后的逻辑。有人可以解释一下吗?
number = 5
multiplier = 8
answer = 0
for i in range(multiplier):
answer *= number
print(answer)
解决方案
范围([开始],停止[,步骤])
range 是一个函数,它接受一个数字并返回一个从 0 到您作为参数提供的数字的数字列表。
但要注意的关键是它永远不会包括你告诉它计数的数字
. 例子 :
这是给出函数范围1 参数的示例:
>>> # One parameter
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
这是一个给它两个参数的例子,其中第一个参数告诉函数从什么开始它返回的列表。第二个参数是它应该结束的地方:
>>> # Two parameters
>>> for i in range(3, 6):
... print(i)
...
3
4
5
这是一个更酷的例子,我们也使用第三个参数。这个参数告诉函数从你告诉它开始的任何数字开始计数,一直到你告诉它停止的任何数字(就像上面的例子一样)......只是现在,第三个参数告诉它在什么步骤计算:
像从 2 数到 12 但以 2 计数:
>>> # Three parameters
>>> for i in range(2, 12, 2):
... print(i)
...
2
4
6
8
10
所以....
for 循环只是遍历函数范围返回的数字列表
因此,让我们将 for 循环分解为伪代码。
***loop***
for i in range(multiplier):
answer *= number
***Pseudo code***
Give me a list of numbers
(not giving it a start value but only a value to end the count at).
The numbers has to be from 0 to multiplier (8).
so range(multiplier) -> range(8) -> [0, 1, 2, 3, 4, 5, 6, 7]
now you have a list
now you ask the compiler to go through that list.
you say : go through that list and everytime you at a new number, give it to me in the for of a variable called i.
then when you have i, you don't use it because i was just trying to loop 8 (multiplier) times... but now take the answer and add to it this (answer * number) ... this will happen 8 times because you loop 8 times
推荐阅读
- javascript - 如何使用 react.js 处理单选按钮
- json - 使用 Postman 测试 API,Postman 调用在哪里?
- python - 为什么 CPython 不将文字的结果存储为代码对象的常量?
- spring - 使用 Kotlin 进行 JPA 审计
- php - 从 PHP 中的多维数组创建一个新数组
- file - django 2.2 中的静态文件与 django 1.7 中的静态文件
- javascript - 让javascript在新窗口中打开链接
- sqlite - 我可以等待在 cli 上释放 sqlite 锁吗?
- c - 如何比较用户输入和文本?
- android - 与 ConstraintLayout 一起使用时,按钮文本不换行