2013-06-21 6 views
1

Я написал эту программу-образец, предназначенную для открытия текстового файла (database1.txt) с компьютера, и покажет результаты, которые в данный момент находятся в файле. Затем запросите использование, если их имя находится в документе, если оно должно распечатать содержимое текстового файла, затем закрыть, иначе оно должно побудить пользователя ввести свое имя, затем программа записывает имя в тот же текстовый документ , затем снова печатает содержимое текстового файла, чтобы пользователь мог видеть новые добавленные данные. Я набрал код, и как-то он продолжает говорить, что у меня синтаксическая ошибка. Я проверил несколько раз, и я не могу исправить ошибку. Мне было интересно, может ли кто-нибудь взглянуть, и могут ли они объяснить мне эту ошибку. СпасибоPython (последняя версия) Синтаксическая ошибка

#This program reads/writes information from/to the database1.txt file 

def database_1_reader(): 
print('Opening database1.txt') 
f = open('database1.txt', 'r+') 
data = f.read() 
print data 
print('Is your name in this document? ') 
userInput = input('For Yes type yes or y. For No type no or n ').lower() 
if userInput == "no" or userInput == "n" 
    newData = input('Please type only your First Name. ') 
    f.write(newData) 
    f = open ('database1.txt', 'r+') 
    newReadData = f.read() 
    print newReadData 
    f.close() 
elif userInput == "yes" or userInput == "ye" or userInput == "y" 
    print data 
    f.close() 
else: 
    print("You b00n!, You did not make a valid selection, try again ") 
    f.close() 
input("Presss any key to exit the program") 
database_1_reader() 
+0

Использования 'with' для обработки файлов, то он автоматически закрывает файл для вас. –

ответ

3

print функция в py3.x:

print newReadData 

должно быть:

print (newReadData) 

Демо:

>>> print "foo" 
    File "<ipython-input-1-45585431d0ef>", line 1 
    print "foo" 
      ^
SyntaxError: invalid syntax 

>>> print ("foo") 
foo 

s как это ОТЧЕТНОСТЬ:

elif userInput == "yes" or userInput == "ye" or userInput == "y" 

может быть сведен к:

elif userInput in "yes"