我写了一小段代码到尝试来创建一个图像,每个Y值只有一个黑点,但是它会为每个Y值创建一个以上的黑点。图像 - >for循环做奇怪的事情python
图像很小,但您可以看到每个Y值可以有多个黑点。实际的代码:
from PIL import Image
from random import *
from math import *
white = (255,255,255)
black = (0,0,0)
width = 50
height = 10
num = 0
def line(num):
mylist = []
a = Image.new("RGB", (width, height))
for row in xrange(width):
dot = False
for col in xrange(height):
rand = random()
b = float(col)/(width-1)
if b > rand and not dot:
mylist.append(black)
dot = True
else:
mylist.append(white)
a.putdata(mylist)
a.save("boop"+str(num)+".png")
line(num)
通常,当它附加一个黑点,dot
变得真实,所以不能有像素的下一行之前的另一个黑点。为什么这不起作用?
欢迎StackOverflow的。请阅读并遵守帮助文档中的发布准则。 [最小,完整,可验证的示例](http://stackoverflow.com/help/mcve)适用于此处。在发布您的MCVE代码并准确描述问题之前,我们无法为您提供有效的帮助。 我们应该能够将发布的代码粘贴到文本文件中,并重现您描述的问题。 – Prune
调试线路的输出在哪里?如果没有其他的东西,你应该插入一些战略性地放置的'print'语句,并在生成它们时转储这些点。看到这个可爱的[debug](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)博客寻求帮助。 – Prune
目前还不清楚你在问什么。当你找到一个黑点时,也许在你的for循环中使用'continue'?随机数的目的是什么?看起来你的代码被设置为接受违反我所了解的是你的标准,并有一些随机的可能性。 – roganjosh