Синтаксическая ошибка с ответом оператора ввода

Всякий раз, когда я пытаюсь ввести данные для трех операторов ввода в моем коде, я получаю сообщение об ошибке.

Я пробовал запускать операторы ввода без какого-либо другого кода, и они работали нормально. Только когда я включаю их в этот код, они ломаются.

# This code is a reminder/alert system.
# This code imports the datetime functions required to allow the program to detect if there is an event.
import datetime
from datetime import date
today = date.today()
# Textual month, day and year   
d2 = today.strftime("%B %d, %Y")
# Time module import.
from datetime import datetime
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
from datetime import datetime, timedelta

# This code gets user input for an event and the day it happens.
eventName = input("What is the event name? ")
eventDate = input("What date is the event? Use the textual month/day/year (September 2, 2019). ")
eventTime = input("What time is the event? Use numeric millitary time H/M/S (14:52:30) ")

# This code defines the getRemind function that will tell the user if they do or do not have an alert for the day and/or time.
def getRemind(event, date, time):
    if d2 in eventDate: 
        return("Reminder: " + eventName + " today!")
    NACharlotte = datetime.now() + timedelta(hours=-4)
    if NACharlotte in evenTime:
        return("Reminder: " + eventName + " at " + eventTime + "!")
    if d2 in eventDate and NACharlotte in eventTime:
        return("Reminder: " + eventName + " today at " + eventTime + "!")
    print("You do not have any events today.")

# This code will print the results of the getRemind function.
print(getRemind(eventName, eventDate, eventTime))

Ожидаемый результат состоит в том, что пользователь должен иметь возможность вводить данные для всех трех операторов ввода. Фактический результат может быть одним из двух: если введено двухсловное выражение, такое как «автобус домой» или «презентация проекта», возвращается «SyntaxError: неожиданный EOF при синтаксическом анализе». Если используется ввод из одного слова, возвращается ошибка NameError, говорящая о том, что ввод не определен.


person ZooBot    schedule 16.09.2019    source источник
comment
В if NACharlotte in evenTime: есть опечатка. Должно быть eventTime вместо evenTime. Кроме того, само это утверждение не имеет для меня особого смысла - кажется, вы используете in для сравнения datetime.   -  person Anoop R Desai    schedule 16.09.2019
comment
Похоже, вы используете Python 2.x, и в этом случае вам нужно использовать raw_input() вместо input().   -  person jasonharper    schedule 16.09.2019


Ответы (1)


У вас опечатка в коде в строке 24: evenTime не существует. Вы имеете в виду eventTime.

Код отлично работает для меня после внесения этого изменения.

person Greg Kaleka    schedule 16.09.2019
comment
Я получаю TypeError в if NACharlotte in eventTime: с сообщением TypeError: 'in <string>' requires string as left operand, not datetime.datetime. - person Anoop R Desai; 16.09.2019