Python for loop是';不起作用。(皮加梅,皮查姆)
我是编程新手,目前正在使用pygame和pycharm编写一个游戏 我需要将一些图像从其原始大小缩小,我可以通过一次将它们全部键入1来获得它,但是当我尝试使用for循环来缩短代码时,它不起作用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
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和mutatenumbers
:
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
,等等。