심사문제의 해설을 봐도 잘 모르겠습니다
a, b, c, d = input().split()
e, f, g, h = map(float, input().split())
x = dict(zip([a, b, c, d],[e, f, g, h])
print(x)
실제로 각 문자의 임의의 값을 지정해서 돌려보면 오류없이 잘 출력되는데 왜 심사문제에서는 실행이 되지 않는다고 하는지 모르겠습니다
그리고 심자문제 대부분 해설이 너무 대충이어서 진짜 문제 푸는데 스트레스가 옵니다
다른 심사 문제에서도 실행이 안 된다해도 실제로 돌려보면 문제없이 출력되는데 머가 잘못 됬는지가 모르겠습니다
문의한 코드를 실행하면
File "/tmp/432919472/main.py", line 8 print(x) ^ SyntaxError: invalid syntax이 경우에 print(x)에는 문제가 없습니다. 그렇다면 이전 줄이 문제인 경우입니다.
x = dict(zip([a, b, c, d],[e, f, g, h])
이렇게 봐서는 뭐가 문제인지 알 수 없지요?
프로그래머들은 이런 문제를 줄이기 위해 여백을 사용해 정성스럽게 코드를 작성합니다. 물론, IDE의 코드 자동 정리 기능이 도움을 주기도 합니다.
x = dict(zip( [a, b, c, d], [e, f, g, h] )
전 12.1 에서 한 것처럼 a-e, b-f,c-g,d-h
로 대응하도록 똑같이 입력랬는데요?
제가 올린 거에는 마지막 )를 안 붙였었는데
)를 붙여도 틀리게 나옵니다
문제의 요구 사항을 보면 입력의 개수가 정해져 있지 않습니다.
심사문제의 설명 첫 문장을 보시면
표준 입력으로 문자열 여러 개와 숫자(실수) 여러 개가 두 줄로 입력됩니다.
여러 개라고 되어 있습니다.
테스트 케이스 예시를 보시면 4개의 쌍을 입력한 것과 5개의 쌍을 입력한 것이 모두 처리되어야 합니다.
심사문제의 마지막 문장을 보시면
input().split()의 결과를 변수 한 개에 저장하면 리스트로 저장됩니다.
문의한 코드는 변수 여러 개에 저장합니다.
IDLE에서 직접 테스트해보고 실험해 본 다음에 코드를 작성하면 됩니다.
input().split()의 결과를 변수 한 개에 저장하면 리스트가 된다고 했습니다.
>>> a = input().split()
health mana melee region
>>> a
['health', 'mana', 'melee', 'region']
>>>
문제의 요구사항을 꼼꼼하게 읽고 이해하면 됩니다.