<결론 미리보기>
input을 받을 때 출력되는 값은 하나의 인자만 출력이 가능하다.
이때, 연결자 (,)는 인자 여러개를 인자 그 자체로서 병합,
연결자 (+)는 인자 여러개를 하나의 인자로 병합 시키기에,
"input에서 출력되는 값은 무조건 하나의 인자여야한다." 라는 조건을 성립시키기 위해선 연결자 (+)를 사용해야 한다.
for i in range(1,10)
how = input(i,"번 문제를 해결했나요? y/n : ") # 오류 발생
=> for i in rnage(1,10)
how = input(str(i),"번 문제를 해결했나요? y/n : ")
how = input(i,"번 문제를 해결했나요? y/n : ")
위 코드를 실행시 input expected at most 1 argument, got 2 오류가 발생합니다.
해석해보자면 input은 하나의 인자만 받을 수 있다. 대충 이런 내용인데요
오류 발생 이유는 바로 , 입니다.
,(쉼표)와 +의 차이를 알고 계신가요?
,(쉼표)를 써도, +을 써도 출력이 될때엔 어떤 두 값이 병합되어 출력이 되지만,
,는 각각의 인자들을 인자 그 자체로써 병합해주고, +는 인자와 인자를 하나의 인자로 병합시킵니다.
예를 들어보겠습니다.
name = '우주'
age = 19
print(name + str(age))
>>> 우주19
print(name,age)
>>> 우주 19
이때, + 사용 시에는 int형 type인 age를 str(문자형)으로 형변환 해주어야합니다
앞서 말했듯이, +는 인자를 하나로 병합하는 것이기에 각각의 인자의 type이 서로 같아야 하는 것입니다.
반면, ,(쉼표)는 각각의 인자의 형태를 유지한 채로 보여주기 식 병합 느낌으로 묶는 것입니다.
print(인자1 **+** 인자2)
>>> 새로운 인자(인자1인자2 출력)
print(인자 1, 인자 2)
>>> 인자1 인자2 (출력)
결론적으로, +는 인자 하나로 묶음, ,(쉼표)는 인자 여러개 라는 것입니다.
그런데 python에선 input을 받을 때 출력하는 것의 인자는 반드시 하나여야합니다/
따라서 앞서 오류가 난 코드에선 ,(쉼표)를 사용하였기 때문에 인자가 2개 -> 오류 발생 이였던 것입니다.
'프로그래밍 > Python' 카테고리의 다른 글
파이썬 map 함수 (0) | 2023.04.20 |
---|---|
파이썬 tuple() - 튜플 (0) | 2023.04.20 |
파이썬 list[] - 리스트 (0) | 2023.04.18 |
부분합의 최댓값을 구하자. feat.python (0) | 2023.04.13 |
개수가 5개 이하인 과일은 과일의 개수가 5가 되도록 과일을 구매한다. 이때 소비해야 하는 돈은? (0) | 2023.04.13 |