1.舉出三種可以把三個(gè)變量賦值成相同值的方式肉微。
你可以使用多重目標(biāo)賦值語句(A = B = C = 0)、序列賦值語句(A,B,C = 0,0,0)或者單獨(dú)行上的多重賦值語句(A = 0,B = 0,C = 0)京腥。就后者的技術(shù)而言,就像第10章介紹過的溅蛉,你也可以把三個(gè)單獨(dú)的語句用分號(hào)合并在同一行上(A = 0;B = 0; C = 0)公浪。
2.將三個(gè)變量賦值給可變對(duì)象時(shí),你可能需要注意什么船侧?
如果你用這種方式賦值:
A = B = C = [ ]
這三個(gè)變量名都會(huì)引用相同對(duì)象欠气,所以對(duì)其中一個(gè)變量名進(jìn)行在原處的修改[例如,A.append(99)]也會(huì)影響其他變量名镜撩。只有對(duì)列表或字典這類可變對(duì)象進(jìn)行在原處的修改時(shí)预柒,才會(huì)如此。對(duì)不可變對(duì)象而言袁梗,諸如數(shù)字和字符串宜鸯,則不涉及此問題。
3.L = L.sort()有什么錯(cuò)誤遮怜?
列表sort方法就像append方法淋袖,也是對(duì)主體列表進(jìn)行在原處的修改:返回None,而不是其修改的列表锯梁。賦值給L即碗,會(huì)把L設(shè)為None,而不是排序后的列表陌凳。我們會(huì)在本書這一部分后面看到剥懒,新的內(nèi)建函數(shù)sorted會(huì)排序任何序列,并傳回具有排序結(jié)果的新列表因?yàn)檫@并不是在原處的修改合敦,將其結(jié)果賦值給變量名蕊肥,就又能說得通了。
4.怎么使用print語句來向外部文件發(fā)送文本蛤肌?
4.要把一個(gè)單個(gè)的打印操作打印到一個(gè)文件,可以使用Python 3.0的print(X,file=F)調(diào)用形式批狱,使用Python 2.6的擴(kuò)展的print >> file,X語句形式裸准,或者在打印前把sys.stdout指定為手動(dòng)打開的文件并在之后恢復(fù)最初的值。你也可以用系統(tǒng)shell的特殊語法赔硫,把程序所有的打印文字重定向到一個(gè)文件炒俱,但這是在Python的范圍之外的內(nèi)容了。