python——day3

集合

{}如果没有映射关系,那就是集合
集合里所有的元素都是唯一的,无序的

集合知识点

set()工厂函数
如果关注前后问题就不要用set
add()方法,remove()方法
不可变集合:
frozenset

python会将相同的值的哈希函数地址相同,因此1和1.0是一样的

文件

打开文件时 \and/and//都可以,唯独\不可以,因为会转义
f.open默认是rt打开,也急速只读和文本格式
用x打开文件时,如果文件已存在会抛出异常,而w会直接覆盖
**f.close()**关闭文件,在完成写入之后应该立刻关闭文件
**f.read(size=-1)**读取文件size个字符
**f.tell()**告诉当前文件指针(也就是书签)的位置,字节
f.seek(offset,from)在文件中移动文件指针,from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
如果要回到初始位置,就用f.seek(0,0)
若要打印所有的:
for each_line in f:
print(each_line)

f.readline(),一行一行的读
f.write(str)将字符串str写入文件
f.writelines(seq)向文件中传入字符串序列

一个分割对话的小样例

split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
###########
#第一步打开文件
f = open(‘text.txt’)#在一个目录下直接写文件名即可
#open的文件名要加引号
boy =[]
girl=[]
count=1

for each_line in f:
if each_line[:6]!="==":
#如果前6个不是等号就要分割语句
(role,line_spoken)=each_line.split(’:’,1)#人名和说的话保存在元组里
if role
’小甲鱼’:
boy.append(line_spoken)
if role
’小鱿鱼’:
girl.append(line_spoken)

else:
    file_name_boy = 'boy_' + str(count) +'.txt'
    file_name_girl = 'girl_' + str(count) +'.txt'#文件名长但好认
    
    boy_file = open(file_name_boy,'w')
    girl_file = open(file_name_girl,'w')

    boy_file.writelines(boy)#将列表写入文件writelines
    girl_file.writelines(girl)

    boy = []
    girl=[]
    count = count +1

    boy_file.close()
    girl_file.close()

file_name_boy = ‘boy_’ + str(count) +’.txt’
file_name_girl = ‘girl_’ + str(count) +’.txt’#文件名长但好认

boy_file = open(file_name_boy,‘w’)
girl_file = open(file_name_girl,‘w’)

boy_file.writelines(boy)#将列表写入文件writelines
girl_file.writelines(girl)

boy_file.close()
girl_file.close()

f.close

##########

运行结果:OK

其他

模块可以被别的程序引入,以使用模块中的函数功能

OS模块

getcwd()返回当前工作目录
chdir()改变工作目录
os.curdir指代当前目录(’,’)
os.pardir指代上一级目录(’…’)
split(path)分离文件名和路径
splitext(path)分离文件名和拓展名
os.path.join(path,name)连接目录与文件名或目录

泡菜

pickle的使用
应用与一个较大的字典,那么就腌制为泡菜,需要的时候取出来
先定义一个字典city={xxxx}
import pickle
pickle.file = open(“city_data.pkl”,‘wb’)
pickle.dump(city,pickle_file)

常见异常

try-except语句
如果都没有就又回老样子了
try-finally语句
finally:
无论如何都会被执行
比如在finally里面写上f.close()这样必须的语句,就可以避免因为程序异常关闭而在缓冲区没有写入的信息
raise语句引发异常
raise ZeroDiisionError(‘除数为零的异常’)

else语句

如果while里面的语句全部执行完了没有跳出,那么就会执行else语句里面的内容
如果try里面有异常也不会执行else

with语句

可以自己关闭

对象

属性+方法
类以大写字母开头

面向对象编程
封装
继承——子类共享父类
多态

python——中的self
类相当于图纸,类只有实例化之后才是房子
其中的self相当于定位到每一个房子

class Ball:
def setName(self,name):
self.name = name
def kick(self):
print(“我叫%s” % self.name)

在python中定义私有变量仅需在变量名或函数名前加上两个“__”即可

发布了3 篇原创文章 · 获赞 1 · 访问量 80
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览