다음은 내 파이썬 코드입니다. 누군가가 나에게 무엇이 잘못되었는지 보여줄 수 있습니까?
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
>>>
답변
🙂 raw_input
대신 사용input
를 사용
input
하면 입력 한 데이터가 Python 표현식 으로 해석됩니다. 즉, gawd가 대상 변수의 객체 유형과 생성 할 수있는 광범위한 예외를 알고 있다는 것을 의미합니다. 당신이해야한다 그래서
NOT 사용input
임시 테스트를 위해 뭔가를 넣어하지 않는 한, 단지 파이썬 표현식에 대해 조금 아는 사람에 의해 사용된다.
raw_input
항상 문자열을 반환합니다. 왜냐하면 항상 입력하는 것이기 때문입니다. …하지만 원하는 특정 유형으로 쉽게 변환하고 발생할 수있는 특정 예외를 포착 할 수 있습니다. 그 설명을 통해 어떤 것을 사용해야하는지 아는 것은 당연한 일입니다.
참고 : 이것은 Python 2에만 해당됩니다. Python 3의 경우 raw_input()
일반화되었으며 input()
Python 2 input()
가 제거되었습니다.
답변
들여 쓰기! 먼저. 그것은 당신의 SyntaxError
.
그 외에도 프로그램에는 몇 가지 다른 문제가 있습니다.
-
raw_input
문자열을 입력으로 받아들이고 싶을 때 사용 합니다.input
파이썬 표현식 만 취하고 그것에 대해eval
수행합니다. -
.NET과 같은 스크립트에서 특정 8 비트 문자를 사용하고 있습니다
0°
.# -*- coding:latin-1 -*-
일반적으로 코딩 쿠키라고 하는 줄을 사용하여 스크립트 상단에서 인코딩을 정의해야 할 수 있습니다 . -
또한 str 비교를 수행하는 동안 문자열을 정규화하고 비교하십시오. (lower ()를 사용하는 사람들) 이것은 사용자 입력에 약간의 유연성을 제공하는 데 도움이됩니다.
-
또한 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 :
$ 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 :
....
파이썬은
except Exception as e:
....
그러나 EOF (파일 끝)가 발생하여 오류가 발생했습니다. 코드에서 불완전한 구문을 찾을 수 있는지 확인하십시오.
답변
나는 똑같은 것을 보았고 문제가 무엇인지 알아 냈습니다. 메소드 입력을 사용할 때 입력해야하는 응답은 큰 따옴표로 묶어야합니다. 당신의 라인처럼
date=input("Example: March 21 | What is the date? ")
콘솔 “12/12/2015″에 메시지가 표시되면 입력해야합니다 "
. 이전과 이후를 기록해 두십시오 . 이렇게하면 문자열로 받아 예상대로 처리됩니다. 이것이이 input
방법의 한계인지 확실하지 않지만,이 방법으로 작동합니다.
도움이되기를 바랍니다.