python 3中范围的不同行为

时间:2015-01-08 00:50:21

标签: 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上的输出为:"you clicked at: 56 77 " 一旦我点击,那么

3.4上的输出是“"you clicked at:"”,56 77                    "you clicked at:

范围表现不同还是打印?

1 个答案:

答案 0 :(得分:2)

在Python 2中print is a statement ,以及:

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

打印元组("you clicked at:", p.getX() , p.getY()),我的默认值在每个条目之间放置一个空格。

在Python 3中,print is a function ,您使用参数调用它:

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

正如文档所示:

  

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


附录:

GraphWin进行一些研究后,您似乎正在使用自2011年以来更新过一次的Zelle Graphics library.来纠正一个小型的2到3个问题,而且有些大学似乎是使用更旧的版本。

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