一、元组学习:
()            空元组
t1=(0,)            单个元素的元组
t2=(0,'Ni',1.2,3)        四个元素的元组
t2=0,'Ni',1.2,3        另一个四元素的元组
t3=('abc',('def','ghi'))
t1[i]        索引
t3[i][j]    索引的索引
t1[i:j]        分片
len(t1)        长度
t1+t2        合并
t2*3        重复
for x in t         迭代
'spam'    in t2    成员关系
T=(1,2,3,4,5)
L=[x+20 for x in T]  列表解析用元组转换

元组本身不可变,但是对于内容是可变
>>> T=(1,[2,3],4)
>>> T[1][0]='spam'
>>> T
(1, ['spam', 3], 4)

二、文件操作学习
output=open('/tmp/spam','w')    创建输出文件('w'是写入)
input=open('data','r')        创建输入文件('r'是指读写)
input=open('data')            与上行相同('r'是默认值)
aString=input.read()        把整个文件读进单一个字符串
aString=input.read(N)        读取之后的N个字节到一个字符串
aString=input.readline()    一行一行的读取
aaList=input.readlines()    读取整个文件   
output.write(aString)        写入字节字符串到文件
output.writelines(aList)    把列表内所有字符串写入文件
output.close()                手动关闭(当文件收集完成时会替你关闭文件)
output.flush()                把输出缓冲区刷到硬盘中,但不关闭文件
anyFile.seek(N)                修改文件位置到偏移量N处以便进行下一个操作

>>> file=open('install.log','w')
>>> file.write('hello,world\n')
>>> file.close()
>>> ofile=open('install.log')
>>> ofile.readline()
'hello,world\n'
>>> ofile.readline()
''

解析操作文件
>>> X,Y,Z=43,44,45
>>> S='spam'
>>> D={'a':1,'b':2}
>>> L=[1,2,3]
>>> F=open('datafile.txt','w')
>>> F.write(S + '\n')        
>>> F.write('%s,%s,%s\n' %(X,Y,Z))
>>> F.write(str(L) + '$' +str(D) + '\n')
>>> F.close()

>>> F=open('datafile.txt')
>>> line=F.readline()    
>>> line
'spam\n'
>>> line.rstrip()    去掉文件中多余的行终止符
'spam'

>>> F=open('datafile.txt','r')   
>>> line=F.readline()        
>>> line
'43,44,45\n'
>>> parts=line.split(',')
>>> parts
['43', '44', '45\n']
>>> int(parts[1])
44
>>> numbers=[int(P) for P in parts]
>>> numbers
[43, 44, 45]

>>> F=open('datafile.txt','r')
>>> line=F.readline()        
>>> line
"[1, 2, 3]${'a': 1, 'b': 2}\n"
>>> parts=line.split('$')    用split分割
>>> parts
['[1, 2, 3]', "{'a': 1, 'b': 2}\n"]
>>> eval(parts[0])    利用内置函数eval把字符串变成可执行的程序代码
[1, 2, 3]
>>> objects=[eval(P) for P in parts]
>>> objects
[[1, 2, 3], {'a': 1, 'b': 2}]


##pickle模块存储python原生对象,其实它就像一个数据格式化和解析工具
>>> F=open('datafile.txt','w')
>>> import pickle  
>>> pickle.dump(D,F)
>>> F.close()
>>> F=open('datafile.txt')
>>> E=pickle.load(F)    利用pickle在文件中存储字典
>>> E
{'a': 1, 'b': 2}

##struct模块构造并解析打包二进制数据
>>> F=open('data.bin','wb')
>>> import struct
>>> bytes=struct.pack('>i4sh',7,'spam',8)
>>> bytes
'\x00\x00\x00\x07spam\x00\x08'
>>> F.write(bytes)
>>> F.close()

>>> F=open('data.bin','rb')             
>>> data=F.read()
>>> data
'\x00\x00\x00\x07spam\x00\x08'
>>> values=struct.unpack('>i4sh',data)
>>> values
(7, 'spam', 8)


三、其他
##比较、相等性、真值:
“==”    操作符测试值的相等性,python运行相等测试,递归地比较所有内嵌对象
"is"    表达式测试对象的一致性,python测试二者是否是同一个对象,是否在一个内存地址中。
python中不同类型的比较方法如下:
数字通过相对大小进行比较
字符串是按照字典顺序,一个字符接一个字符地对比进行比较("abc" < "ab")
列表和元祖从左到右对每部分的内容进行比较
字典通过排序之后的(键、值)列表进行比较

##python真假的含义:
python和大多数程序设计语言一样,整数0代表假,整数1代表真;另外python把任意的空数据结构视为假,
把任意的非空数据结构视为真;真和假是每个对象的固有的属性,每个对象不是真就是假。
数字如果非零,则为真。
其他对象如果非空,则为真。
“spam”    True
""        False
[]        False
{}        False
1        True
0.0        Flase
None    Flase