print 現在是一個函數,不再是一個語句。<語法更為清晰>
實例1
打開文件 log.txt 以便進行寫入並將對象指定給 fid。然后利用 print將一個字符串重定向給文件 fid。
fid=open("log.txt",'w')
print("log.txt", file=fid)
print("hello")
#fid = open("log.txt", 'w')
#print>>fid, "log text"
#print "hello"
#print("Foo", "Bar", sep="%")
Python3.X執行結果:

#fid=open("log.txt",'w')
#print("log.txt", file=fid)
#print("hello")
fid = open("log.txt", 'w')
print>>fid, "log text"
print "hello"
#print("Foo", "Bar", sep="%")
Python2.X執行結果:

實例2
print("Foo", "Bar", sep="%")

#fid=open("log.txt",'w')
#print("log.txt", file=fid)
#print("hello")
#fid = open("log.txt", 'w')
#print>>fid, "log text"
#print "hello"
print("Foo", "Bar", sep="%")
Python3.X中執行結果:

exec
exec()作為函數,只操作globals()和locals()函數返回的字典。locals()函數返回的字典實際上是局部變量的一個副本。exec()函數中進行的賦值只修改了局部變量的這份副本,而非局部變量本身。

實例:
def foo():
exec('a=4')
print(a)
foo()
#def foo():
# _locals = locals()
# exec('a=4',globals(),_locals)
# a = _locals['a']
#print (a)
#foo()
Python2.X中執行結果:

Python3.X中執行結果:

#def foo():
# exec('a=4')
# print(a)
#foo()
def foo():
_locals = locals()
exec('a=4',globals(),_locals)
a = _locals['a']
print (a)
foo()
Python3.X中執行結果:

原文鏈接:http://www.maiziedu.com/wiki/python/exec/
