Unit12 심사문제 문의
, 이 상교님이 작성a, b, c = input().split()
d, e, f = map(float, input().split())
sum = dict(zip([a, b, c], [d, e, f]))
print(sum)
위와 같이 작성해서 파이썬에서는 입력받아서 정답대로 출력이 되는데,
심사에서는 통과가 안됩니다.
왜그런지 알려주세요.
이해가 안되네요...
Re: Unit12 심사문제 문의
, 도장_ 관리자님이 작성심사문제의 예시 입력은
health health_regen mana mana_regen
575.6 1.7 338.8 1.63
입니다.
예시에서는 4개의 입력을 처리하고 있고,
문의한 코드는 3개의 입력을 가정하고 있습니다.
따라서 예시 입력에 대해서 다음과 같은 오류가 발생합니다.
Traceback (most recent call last): File "main.py", line 1, in <module> a, b, c = input().split() ValueError: too many values to unpack (expected 3)ValueError에 too many values to unpack이죠.
코드는 expected 3, 3개의 값을 기대하고 있는데 입력은 4개라는 뜻입니다.
문제를 잘 읽어보면 입력의 개수를 정하지 않았습니다.
표준 입력으로 문자열 여러 개와 숫자(실수) 여러 개가 두 줄로 입력됩니다.
입력되는 데이터 쌍이 4개, 5개, 6개, 7개... 개수가 정해지지 않았습니다.
유동적인 입력 개수에 대해서 동작해야 합니다.
유동적인 개수 입력 처리는 간단합니다.
a = input().split()
a는 리스트로 데이터를 담게 됩니다. 입력 개수가 몇 개이든 split() 함수로 나누게 됩니다.
>>> a = input().split()
a b c d e f g h
>>> a
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>>
이해했을 것이라고 믿습니다.