首页 > 解决方案 > 增强分配

问题描述

我是 Python 和一般编程领域的新手,今天我遇到了增强分配的问题。不幸的是,我不理解代码,以及做什么for i in range(multiplier)和做什么answer *= number。我试着理解它,但我仍然没有真正理解它背后的逻辑。有人可以解释一下吗?

number = 5
multiplier = 8
answer = 0

for i in range(multiplier):
    answer *= number

print(answer)

标签: python

解决方案


范围([开始],停止[,步骤])

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 

推荐阅读