用于Python中的循环,但步骤为“n”

2024-10-02 12:32:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python程序,读取图像每个像素的颜色,然后用ASCII字符创建一个与该像素亮度相似的文件(使用原始像素的点表示暗,如果亮则使用“#”表示)。我意识到ASCII字符比单个像素大得多:由此产生的ASCII艺术太大,无法在普通显示器上显示

现在我想尝试应用这个过程,每10个像素只计算一个。我该怎么做?如何设置我的循环步骤=1(默认值)


Tags: 文件图像程序颜色过程ascii步骤像素
3条回答

实际上,range()接受3个位置参数,其中2个设置为默认值0和1。参数是:start=从哪个数字开始,stop=在哪个数字中停止,以及step=每次增加计数的数字。默认情况下,start等于0,step等于1。当你写range(number)的时候,你给你的号码指定了一个停止。所以,如果我想要每10个数字,我只要写下:

range(0, 100, 10)

另一个解决方案显然是

for mul in range(width//10):
   do_thing(mul*10)

您可以使用range的三参数形式:

for i in range(0, width, 10):
    for j in range(0, height, 10):
        ...

尽管仅对1%的像素进行采样很可能会产生非常糟糕的结果。例如,您可以通过使每个输出字符取决于每个10x10像素块的平均值来改进它

相关问题 更多 >

    热门问题