python 3中范围的不同行为

python 3中范围的不同行为,python,python-3.x,Python,Python 3.x,我找不到答案,为什么这个范围循环代码在2.7中表现正常,而在3.4中表现不好 from graphics import * def main(): win = GraphWin("Click Me!") for i in range(10): p = win.getMouse() print("you clicked at:", p.getX() , p.getY()) main() 2.7上的输出是:“我单击后,您单击了:56 77

我找不到答案,为什么这个范围循环代码在2.7中表现正常,而在3.4中表现不好

from graphics import *


def main():
    win = GraphWin("Click Me!")
    for i in range(10):
        p = win.getMouse()

        print("you clicked at:", p.getX() , p.getY())


 main()
2.7上的输出是:
“我单击后,您单击了:56 77”

3.4的输出是您单击的“
”:“
单击后,56 77
“您在以下位置单击:

它的范围行为不同还是打印?

在Python 2中,这是:

print("you clicked at:", p.getX() , p.getY())
打印元组
(“单击:”,p.getX(),p.getY())
,我的默认设置是在每个条目之间放置一个空格

在Python 3中,并使用以下参数调用它:

"you clicked at:", p.getX() , p.getY()
如文件所示:

print(*对象,sep='',end='\n',file=sys.stdout,flush=False)


增编:

在对
图形进行了一些研究之后,您似乎正在使用自2011年以来更新过一次的来纠正一个2到3的小问题,一些大学似乎正在使用更旧的版本


我没有深入研究,但我认为库中会有一些不兼容的地方,因此可能无法直接切换到Python 3。

这是一个非常直截了当的问题,包括代码和对问题的清晰描述。它不值得向下投票。也许在3.4中,你会同时得到向下点击和向上点击事件。它的行为就像这个向下+向上事件=我的一半。再重复一次,在同一行中打印p.get(),p.gety(),但也在下一行中打印下一个“您单击的位置:”。此外,如果您删除循环并使其工作一次,它的工作。但是我不知道为什么会出现这种行为。但是为什么当我在python 3中删除i in range(10)
时,输出正好在一行中?我不太清楚为什么会这样,但是
range
函数并没有引起您的问题,这是因为您使用的
print
不正确。我认为这不是问题所在:
sep
end
必须是关键字参数,不是吗?从文档中:
所有非关键字参数都会像str()一样转换为字符串,并写入流中,以sep分隔,后跟end。
我知道我是在python 2中做的,我将其视为一个函数。但是在Python3中,一旦我删除了for循环的范围,输出就不同了,我认为正在使用print属性,就像xnx说的,关键字参数前面不应该有end和sep吗?谢谢你的帮助,我认为你对Zelle模块的看法可能是对的。但我仍然觉得奇怪的是,通过移除循环,它就能工作。