如果要用中文必须要加这一句
# encoding=utf8
第一节 输入 输出
输入
a=input()
或者 a=raw_input();
输出
1,print(a)
普通输出
2,print("%d" %a)
这种多数据输出
3,print("a")
这种针对字符串
4,print("{0},love{a},{b}".format("I",a="you",b="ok?"))
如果参数中有数字和字母,数字必须在字母前面
中间有时间再补+++++++++++++++++++++++++++++++++++++++
第二节 列表 元组 字符串
第三节 函数
第四节 字典 与集合
1字典的创建
dict1=dict((('tu',1),('tutu',2),('tututu',3)))
dict2=dict(one=1,two=2,three=3)//这个比较常用
dict3={'one':1,'two':2,'three':3}
dict4=dict(zip(['one','two','three'],[1,2,3]))
dict5=dict([('two',2),('one',1),('three',3)])
dict6=dict({'three':3,'one':1,'two':2})
2字典的访问与遍历
dict1().keys()返回所有键
dict1().values()返回所有的值
dict1().items()返回所有的项(键加值)
输出的话print(dict1['tu'])
a=dict1.get('tu')//这个更安全,因为如果访问到位置区域会返回None
print(a)
遍历的话
例:for each in dict1().keys():
print(each)
剩下的类推
3 字典的花式操作
dict1.clear() 清空字典,但是字典还在
a={1:"one",2:"two",3:"three"}
b=a.copy() 复制字典
pop()和popitem()
pop返回的为值,popitem返回的为项
setdefault()和get()方法类似,但是setdefault()在字典中找不到相应的键是会自动添加
update()
1集合
集合的创建
set1={"tu","tutu"}
set2="set(["tu","tutu"])
集合的特点为独一无二,去重
list1=[1,2,4,5,5,3,1,0]
list1=list(set(list1))
最撤蛋的函数
se1=frozenset({1,2,3,4,5})
冻结集合,无法改变不能add或者remove
第五节 文件操作
1,
文件的打开与读取
打开模式
w:以写方式打开,
a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+:以读写模式打开
w+:以读写模式打开 (参见 w )
a+:以读写模式打开 (参见 a )
rb:以二进制读模式打开
wb:以二进制写模式打开 (参见 w )
ab:以二进制追加模式打开 (参见 a )
rb+:以二进制读写模式打开 (参见 r+ )
wb+:以二进制读写模式打开 (参见 w+ )
ab+:以二进制读写模式打开 (参见 a+ )
注意如果以读写模式打开的话,无法同时进行读和写的操作
f=open("小仙女.txt",a)
f.read(size)可往后读取size个字符
f.readline()可读一行
line=f.readline(size)
while line:
print line, # 后面跟 ',' 将忽略换行符
# print(line, end = '') # 在 Python 3 中使用
line = f.readline()
f.readlines()可以读取全文并且按照原文分行
seek(offset,from)在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset和字节
来个示例:关于中文文档如何转化(研究一天了)
#encoding=utf8
import sys
import os
default_encoding="utf-8"
#if(default_encoding!=sys.getdefaultencoding()):
# reload(sys)
# sys.setdefaultencoding(default_encoding)
def save_file(boy, girl, cout):
boy_file = open('D://file_name_boy.txt', 'a')
girl_file = open('D://file_name_girl.txt', 'a')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
def split_file(file_name):
cout = 1
boy = []
girl = []
f = open(file_name,'r')
for each in f:
tempeach=each.decode('gbk','ignore').encode('utf-8') //这里是重点
if tempeach[:6] != '======':
(role, line_spoken) = tempeach.split(':', 1)
print(role)
if (role == '小甲鱼'):
boy.append(line_spoken)
if (role == '小客服'):
girl.append(line_spoken)
else:
save_file(boy, girl, cout)
boy = []
girl = []
cout += 1
save_file(boy, girl, cout)
f.close()
split_file('D://tutu.txt')
二进制保存文档,优点(从文件中取出数据是不是字符型而是该数据本身的类型)
#encoding=utf8
import pickle
import sys
#my_list=[123,3.14,'小甲鱼',['another list']]
#pickle_file=open('D://wendang//my_list.pkl','wb')
#pickle.dump(my_list,pickle_file)
#pickle_file.close()
pickle_file=open("D://wendang//my_list.pkl",'rb')
tempsum=pickle.load(pickle_file)
print(tempsum)
for tempx in tempsum:
# tempx = tempsum.decode('gbk', 'ignore').encode('utf-8')
print(tempx)
第六节 异常处理
一般错误提示
AssertionError: 断言语句(assert)失败
AttributeError:尝试访问未知的对象属性
IndexError:索引超出序列的范围
KeyError:字典中查找一个不存在的关键字
NameError:尝试访问一个不存在的变量
OSError:操作系统产生的异常,打开一个不存在的文件
SyntaxError: python的语法错误
TypeError: 不同类型间的无效操作
ZeroDivisionError:除数为零
try语句
#encoding=utf8
import sys
my_list={'one':1,'two':2,'three':3}
while 1:
try:
x=raw_input()
print(my_list[x])
except KeyError:
print('字典中无此关键字')
类和继承和魔法方法省略(一个刷新,没有保存,不想重新写了mmp)