我刚刚完成了我的作业编写程序,现在我有一个非常烦人的问题
当一个函数完成它询问它是否要重新运行main函数时,我这样做了,当我这样做然后运行一个不同的函数(对不起,如果我吮吸措辞的东西)该函数什么都不做。有什么我可以做的吗?
这是我的代码
agenda=open("agenda.txt","a") #open the notepad file
def choice(): #pick the period
choice=input("type write, read, or clear\n")
if choice=="read":
read()
elif choice=="write":
write()
elif choice=="clear":
clear()
else:
print("Invalid Choice")
def write(): #write the homework
per=input("What period is it")
hw=input("What is the homework")
if per=="1":
agenda.write("Period 1:")
agenda.write(hw)
agenda.write("\n")
elif per=="2":
agenda.write("Period 2:")
agenda.write(hw)
agenda.write("\n")
elif per=="3":
agenda.write("Period 3:")
agenda.write(hw)
agenda.write("\n")
elif per=="4":
agenda.write("Period 4:")
agenda.write(hw)
agenda.write("\n")
elif per=="5":
agenda.write("Period 5:")
agenda.write(hw)
agenda.write("\n")
elif per=="6":
agenda.write("Period 6:")
agenda.write(hw)
agenda.write("\n")
elif per=="7":
agenda.write("Period 7:")
agenda.write(hw)
agenda.write("\n")
elif per=="8":
agenda.write("Period 8:")
agenda.write(hw)
agenda.write("\n")
else:
print("Non existant period")
again=input("Would you like to read the homework, clear, or read again? (yes or no)")
if again=="yes":
choice()
elif again=="no":
print("\n")
def clear():#clear the whole thing
ajenda = open('agenda.txt', 'r+')
ajenda.truncate()
again=input("Would you like to read the homework, clear, or read again? (yes or no)")
if again=="yes":
choice()
elif again=="no":
print("\n")
def read():#read the homework
read=open("agenda.txt","r")
readf=read.read()
print(readf)
read.close
again=input("Would you like to read the homework, clear, or read again? (yes or no)")
if again=="yes":
choice()
elif again=="no":
print("\n")
choice()
agenda.close()
答案 0 :(得分:2)
我在python2.7中运行了你的代码,因为我现在没有python3。
我的猜测是你运行了你的代码,写了一些功课,然后你要求阅读它,什么都没有显示出来。当您写入文件时,出于性能原因,缓冲区在提供一定数量的数据或关闭文件之前不会进入文件。
如果您测试代码然后退出程序,您将在文件中找到您的数据。您可以考虑在write方法中添加flush()调用。