Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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 loop是';不起作用。(皮加梅,皮查姆)_Python_For Loop_Pygame_Pycharm - Fatal编程技术网

Python for loop是';不起作用。(皮加梅,皮查姆)

Python for loop是';不起作用。(皮加梅,皮查姆),python,for-loop,pygame,pycharm,Python,For Loop,Pygame,Pycharm,我是编程新手,目前正在使用pygame和pycharm编写一个游戏 我需要将一些图像从其原始大小缩小,我可以通过一次将它们全部键入1来获得它,但是当我尝试使用for循环来缩短代码时,它不起作用 numbers = [num0_img, num1_img, etc...] for image in numbers: image = scale(image, (15, 15)) 不会缩小图像的比例。但是把它全部打印出来是可行的 num0_img = scal

我是编程新手,目前正在使用pygame和pycharm编写一个游戏

我需要将一些图像从其原始大小缩小,我可以通过一次将它们全部键入1来获得它,但是当我尝试使用for循环来缩短代码时,它不起作用

    numbers = [num0_img, num1_img, etc...]
    for image in numbers:
        image = scale(image, (15, 15))
不会缩小图像的比例。但是把它全部打印出来是可行的

    num0_img = scale(num0_img, (15, 15))
    num1_img = scale(num1_img, (15, 15))
    etc...
有人能帮我吗

也只是一张便条。我正确地导入了它

    import pygame
    from pygame.transform import *

for循环只是重复地将名称
image
重新指定为
scale(image,(15,15))
。它不会影响存储在
数字中的对象。下面是一个演示

>>> lst = [[1], [2]]
>>> for i in lst:
...     i = [3]
...
>>> lst
[[1], [2]]
>>> i
[3]
>>>
要解决此问题,您可以使用a和mutate
numbers

numbers[:] = [scale(image, (15, 15)) for image in numbers]

分配给
数字就足够了,不需要改变原始列表。当然,如果你愿意,你可以这样做。看起来OP想要保留原始列表对象,所以我给出了一个解决方案,它可以改变
数字
。我实际上不需要保留原始列表,我创建这个列表是为了给for循环一些迭代的东西。我只是想更改每个numX_img的值,以便以后可以单独调用它们,并以正确的大小绘制它们,而无需遍历列表本身。澄清一下。稍后在程序中,我将创建一个函数,该函数使用图像表示数字来绘制分数。因此,如果分数=0,则以正确的方式“绘制num0_img”size@user3738713-哦,我明白了。但是我可以问一下,有一个图片列表有什么不对吗?依我看,使用编号变量,如
num0\u img
num1\u img
,是一种糟糕的设计……特别是当您可以简单地使用列表并按索引对它们进行编号时。例如,
images[0]
将与
num0\u img
相同,
images[1]
将是
num1\u img
,等等。