1. \ :一行过长的语句可以使用反斜杠分解成几行。
2.Python使用缩进来分隔代码组。代码的层次关系式通过同样深度的空格或制表符缩进体现的。同一代码组的代码必须严格左对齐。
3.在Python语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。Python的赋值语句不会返回值。
4.多元赋值:采用这种赋值方式时,等号两边的对象都是元组。Python的多元赋值方式可以实现无需中间变量交换两个变量的值。
5.在模块,类声明或函数声明中第一个没有赋值的字符串可以用属性obj.__doc__来进行访问。
6.Python是否有一种方法能在运行时检测该模块是被导入还是被直接执行呢?_name_系统变量就是正确答案。
如果模块是被导入,_name_的值为模块的名字。如果模块是被直接执行,_name_的值为'_main_'
7.引用计数:Python内部记录着所有使用中的对象各有多少引用。当对象被创建并(将其引用)赋值给变量时,该对象的引用计数就被设置为1.
对象的引用计数在
对象被创建
x=3.14
或另外的别名被创建
y=x
或被作为参数传递给函数(新的本地引用)
foobar(x)
或称为容器对象的一个元素
myList=[123,x,'xyz']
8.当变量被赋值给另外一个对象时,原对象的引用计数也会自动减1.
9.
import os
ls = os.linesep
while True:
fname = raw_input('Input your file name:')
if os.path.exists(fname):
print "ERROR: '%s' already exists" % fname
else:
break
all = []
print "\nEnter lines ('.'by itself to quit).\n"
while True:
entry = raw_input('>')
if entry == '.':
break
else:
all.append(entry)
fobj = open(fname, 'w')
fobj.writelines(['%s%s' % (x, ls) for x in all]);
fobj.close();
print "DONE!"
fname = raw_input('Enter filename:')
print
try:
fobj=open(fname,'r');
except IOError, e:
print "*** file open error:", e;
else:
for eachLine in fobj:
print eachLine,
fobj.close();
try-except-else语句。else子句在try代码块运行无误时执行。