Вот мой код на Python. Может кто-нибудь показать мне, что с этим не так.
while 1:
date=input("Example: March 21 | What is the date? ")
if date=="June 21":
sd="23.5° North Latitude"
if date=="March 21" | date=="September 21":
sd="0° Latitude"
if date=="December 21":
sd="23.5° South Latitude"
if sd:
print sd
И вот что происходит:
>>>
Example: March 21 | What is the date?
Traceback (most recent call last):
File "C:\Users\Daniel\Desktop\Solar Declination Calculater.py", line 2, in <module>
date=input("Example: March 21 | What is the date? ")
File "<string>", line 0
^
SyntaxError: unexpected EOF while parsing
>>>
источник
/usr/bin/python
есть исполняемый файл python 2 и/usr/bin/python3
ваш исполняемый файл python 3. Я считаю, что в Mint 19 системным питоном по умолчанию является python 3.Сделайте отступ! первый. Это позаботится о вашем
SyntaxError
.Кроме того, в вашей программе есть еще пара проблем.
Используйте,
raw_input
если хотите принять строку в качестве ввода.input
принимает только выражения Python и делает сeval
ними.Вы используете в своем скрипте определенные 8-битные символы, например
0°
. Возможно, вам потребуется определить кодировку в верхней части вашего скрипта, используя# -*- coding:latin-1 -*-
строку, обычно называемую coding-cookie.Кроме того, выполняя сравнение str, нормализуйте строки и сравните. (люди, использующие lower () it) Это помогает обеспечить небольшую гибкость при вводе данных пользователем.
Я также думаю, что чтение учебника по Python может вам помочь. :)
Образец кода
#-*- coding: latin1 -*- while 1: date=raw_input("Example: March 21 | What is the date? ") if date.lower() == "march 21": ....
источник
У меня была эта ошибка из-за отсутствия закрывающей скобки в строке.
У меня возникла проблема со строкой:
invalid syntax (<string>, line ...)?
в конце моего сценария.Я удалил эту строку, затем получил сообщение EOF.
источник
Хотя ответ @simon наиболее полезен в Python 2,
raw_input
его нет в Python 3. Я бы предложил сделать следующее, чтобы убедиться, что ваш код одинаково хорошо работает в Python 2 и Python 3:Во-первых, pip install future:
Во-вторых: импортировать ввод из future.builtins
# my_file.py from future.builtins import input str_value = input('Type something in: ')
И для конкретного примера, указанного выше:
# example.py from future.builtins import input my_date = input("Example: March 21 | What is the date? ")
источник
Я использую следующий код, чтобы получить совместимость с Python 2 и 3
if sys.version_info < (3, 0): input = raw_input
источник
Я пытаюсь ответить в общем, не связанном с этим вопросом, эта ошибка обычно возникает, когда вы нарушаете синтаксис пополам и забываете вторую половину. Как и в моем случае это было:
try : ....
поскольку python искал
except Exception as e: ....
но он обнаружил EOF (конец файла), отсюда и ошибка. Посмотрите, сможете ли вы найти в своем коде неполный синтаксис.
источник
Я столкнулся с тем же самым и понял, в чем проблема. Когда мы используем ввод метода, ответ, который мы должны ввести, должен быть в двойных кавычках. Как в твоей строке
date=input("Example: March 21 | What is the date? ")
При появлении запроса на консоли вы должны ввести «12/12/2015» - обратите внимание на то,
"
что было до и после. Таким образом, он будет воспринимать это как строку и обрабатывать ее, как ожидалось. Я не уверен, что это ограничение этогоinput
метода - но он работает именно так.Надеюсь, поможет
источник
После первого оператора if вместо ввода «if» введите «elif», и тогда он должен работать.
Ex.
` while 1: date=input("Example: March 21 | What is the date? ") if date=="June 21": sd="23.5° North Latitude elif date=="March 21" | date=="September 21": sd="0° Latitude" elif date=="December 21": sd="23.5° South Latitude" elif sd: print sd `
источник
Что вы можете попробовать, так это написать свой код как обычно для Python, используя обычную
input
команду. Однако хитрость заключается в том, чтобы добавить в начале вашей программы командуinput=raw_input
.Теперь все, что вам нужно сделать, это отключить (или включить) в зависимости от того, работаете ли вы в Python / IDLE или в Терминале. Вы делаете это, просто добавляя «#», когда это необходимо.
Выключен для использования в Python / IDLE
#input=raw_input
И, конечно, включен для использования в терминале.
input=raw_input
Я не уверен, всегда ли это будет работать, но это возможное решение для простых программ или скриптов.
источник
Проверьте версию вашего компилятора.
источник
Проверьте все параметры функций будут определены прежде , чем они называются. Я столкнулся с этой проблемой, когда практиковал Kaggle.
источник