Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用for循环查找固定数的倍数?_Python_Python 3.x - Fatal编程技术网

Python 如何使用for循环查找固定数的倍数?

Python 如何使用for循环查找固定数的倍数?,python,python-3.x,Python,Python 3.x,几天前我刚开始使用python,需要一些帮助 使用for循环,我希望得到以下结果: 2 8 32 128 我尝试的是: x = 2 y = 4 for x in range (y): x = 4 * x print(x) 我预计产量为 2 8 32 128 但是我得到了 0 4 8 12 可能最简单的方法是: >>> y = 4 >>> x = 2 >>> for i in range(y): ... pri

几天前我刚开始使用python,需要一些帮助

使用for循环,我希望得到以下结果:

2
8
32
128
我尝试的是:

x = 2
y = 4

for x in range (y):
    x = 4 * x
    print(x)
我预计产量为

2
8
32
128
但是我得到了

0
4
8
12

可能最简单的方法是:

>>> y = 4
>>> x = 2
>>> for i in range(y):
...     print(x * y**i)
...
2
8
32
128

正如其他人提到的,您正在将范围(y)输出的值分配给x,这会导致您出现问题。

最简单的方法可能是:

>>> y = 4
>>> x = 2
>>> for i in range(y):
...     print(x * y**i)
...
2
8
32
128
x=2
y=4

for i in range(1,y+1):
    print(x)
    x = x * 4
正如其他人提到的,您正在将范围(y)输出的值指定给x,这会导致您出现问题

x=2
y=4

for i in range(1,y+1):
    print(x)
    x = x * 4
输出:

2  
8  
32  
128
输出:

2  
8  
32  
128

对于范围(y)中的x:
意味着
x
将被分配以下值:0,1,2,3(因此它与
x
的初始化无关-这不是一个固定的数字)将范围(y)中的x:替换为范围(y)中的i:,尽管最具python风格的解决方案类似于
print('\n'.join(str(2**k)表示范围(1,8,2)内的k))
尝试在循环顶部打印
x
,看看这是否有助于解释发生了什么。@Scott。这是一个很好的建议,但前提是它不是循环variable@MadPhysicist:这并不是为了解决问题(事实并非如此),而是为了突出问题。
用于范围(y)中的x:
意味着
x
将被分配以下值:0,1,2,3(因此它与
x
的初始化无关-这不是一个固定的数字)将范围(y)中x的
替换为范围(y)中i的
,尽管最具python风格的解决方案类似于
print('\n'.join(str(2**k)对于范围(1,8,2))内的k
尝试在循环的顶部打印
x
,看看这是否有助于解释发生了什么。@Scott。这是一个很好的建议,但前提是它不是循环variable@MadPhysicist:这并不是为了解决问题(事实并非如此),而是强调问题。我相信他实际上是在做y次,而不是y次乘以y你是说乘法(4)右边的数字是一个常数。他想知道如何将这个常数乘以y次?如果是这样,他可以将循环改为:
对于范围(y)内的I:print(x*4**I)
。它将迭代y次。是的,这就是我要说的。我想打印以x=2开始的序列,序列中的每个元素都是前一个数字的4倍。并且条目的数量等于y=4。我相信他实际上是在做y次,而不是y乘以x乘以yYo你是说乘法(4)右边的数字是一个常数。他想知道如何将这个常数乘以y?如果是这样,他可以将循环改为:
for i in range(y):print(x*4**i)
。它将迭代y次。是的,这就是我要说的。我想打印以x=2开始的序列,序列中的每个元素都是它前面的数字的4倍。并且条目的数量等于y=4。对于Do-t-car,使用
\uucode>而不是
I
是一种很好的做法e变量。对于不关心的变量,最好使用
\uu
而不是
i