坚持一个简单的任务,任何帮助将不胜感激。它会创建一个图形窗口,根据用户点击的位置,它将绘制一个不同的色圈。右手=黄色,左手将为红色,具体取决于用户点击的位置。但是,我不能让我的if语句工作,它返回的是10个黄色圆圈。任何帮助将不胜感激,谢谢
def circles():
win = GraphWin ("circles", 400,100)
for i in range (10):
point = win.getMouse()
circleFill = Circle(point, 10)
circleFill.draw(win)
if str(point) >= str(200):
circleFill = Circle (point, 10)
circleFill.setFill("Yellow")
circleFill.draw(win)
else:
circleFill = Circle (point, 10)
circleFill.setFill("Red")
circleFill.draw(win)
答案 0 :(得分:0)
您正在尝试将某个点与数字进行比较。这没有任何意义。屏幕的右上角是否超过200?右下角怎么样?还是左上角?
当然你可以将它们都转换成字符串,然后比较它们,因为你总是可以比较字符串 - 但是你只是问'Point(1600, 0)'
之类的东西会在{{1}之前或之后出现在字典中,它没有告诉你任何有用的东西。
你的下一次尝试,试图将一个点与一个点进行比较,仍然没有任何意义。 '200'
是(1600, 20)
多少还是少于(100, 1280)
?当然,你可以通过各种方式回答这个问题(例如,你可以将它们视为向量而不是点数,并要求它们的规范),但没有任何与你的问题相关的内容。
我认为可能想要做的是将点的X坐标与数字进行比较:
if point.getX() >= 200:
这是有道理的。这涵盖了屏幕的整个右侧部分,无论是在顶部还是在底部向下,因为您是(1600, 0)
还是(1600, 1200)
,1600
部分大于200
。
这可能实际上并不是你想要的,但希望如果它不是,它会给你一个让你失去理念的想法。