我写的这段程序它打开后自动闪退,请问是哪里出了问题?

import sys
def begin():
a=int(input("欢迎来到实验记录系统\n1.录入实验\n2.查询实验\n3.删除实验\n4.修改实验\n5.显示所有实验\n6.退出\n"))
if a==1:
add_book()
all_book()
elif a==2:
querry()
elif a==3:
delete()
all_book()
elif a==4:
edit()
all_book()
elif a==5:
all_book()
elif a==6:
print("正在结束")
time.sleep(5)
exit()
def add_book():
b=1
while(b!=2):
book_id=input("请输入实验编号")
book_name=input("请输入实验名称")
book_time=input("请输入实验时间")
book_sb=input("请输入实验人员")
book_te=input("请输入实验温度")
book_pr=input("请输入实验压强")
book_contenet=input("请输入实验内容")
book_conlusion=input("请输入实验结论")
for i in books:
if book_id in books:
ifbook_id==i["book_id"]:
print("编号重复")
break
else:
book={}
book["book_id"]=book_id
book["book_name"]=book_name
book["book_time"]=book_time
book["book_sb"]=book_sb
book["book_te"]=book_te
book["book_pr"]=book_pr
book{"book_contenet"]=book_contenet
book{"book_conlusion"]=book_conlusion
books.append(book)
new_file(books)
print("录入成功")

def all_book():
for i in books:
print(i)

def read_book(data):
f=open('text.txt','w+',encoding='utf8')
books=f.redlines()
f.close()
for i in range(0,len(books)):
books[i]=eval(books[i].replace("\n",""))
return books

def new_file(books):
i=0
nf=open('data','w+',encoding='utf8')
while i<len(books):
new=str(books[i]0
nf.write(new)
if i!=len(books)-1:
nf.write("\n")
i+=1
nf.close()

if name=="main":
while True:
data="data"
books=read_shiyan(data)
begin()

read_shiyan是什么?函数吗?没看见哪里有定义这个函数啊