1.举出三种可以把三个变量赋值成相同值的方式。
你可以使用多重目标赋值语句(A = B = C = 0)、序列赋值语句(A,B,C = 0,0,0)或者单独行上的多重赋值语句(A = 0,B = 0,C = 0)。就后者的技术而言,就像第10章介绍过的,你也可以把三个单独的语句用分号合并在同一行上(A = 0;B = 0; C = 0)。
2.将三个变量赋值给可变对象时,你可能需要注意什么?
如果你用这种方式赋值:
A = B = C = [ ]
这三个变量名都会引用相同对象,所以对其中一个变量名进行在原处的修改[例如,A.append(99)]也会影响其他变量名。只有对列表或字典这类可变对象进行在原处的修改时,才会如此。对不可变对象而言,诸如数字和字符串,则不涉及此问题。
3.L = L.sort()有什么错误?
列表sort方法就像append方法,也是对主体列表进行在原处的修改:返回None,而不是其修改的列表。赋值给L,会把L设为None,而不是排序后的列表。我们会在本书这一部分后面看到,新的内建函数sorted会排序任何序列,并传回具有排序结果的新列表因为这并不是在原处的修改,将其结果赋值给变量名,就又能说得通了。
4.怎么使用print语句来向外部文件发送文本?
4.要把一个单个的打印操作打印到一个文件,可以使用Python 3.0的print(X,file=F)调用形式,使用Python 2.6的扩展的print >> file,X语句形式,或者在打印前把sys.stdout指定为手动打开的文件并在之后恢复最初的值。你也可以用系统shell的特殊语法,把程序所有的打印文字重定向到一个文件,但这是在Python的范围之外的内容了。