파이썬 조건문 if 이용
조회수 728회
수식 입력(* 예: 20*40) : 21.1 + 30.0
21.100000 + 30.000000 = 51.100000
a,b=input("수식 입력(* 예: 20*40):").split()
이런 형태로 입력함수 쓰는 법은 아는데 21.1+30.0
에서 +
를 어떻게 처리해야하는지 모르겠어요..
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
input함수를 이용해 2항 연산식을 받은 후, 연산자를 제외한 각 항을 a, b에 넣으려고 하는 것 인가요?
input() 의 결과는 str 형식으로 나오고, str 을 split()으로 나누면, str의 list가 반환 됩니다. split()으로 나눌 때, 아무런 parameter를 주지 않으면, space를 기준으로 나누게 됩니다.
따라서, 21.1000 + 30.000 이라는 입력을 위에 적은 방식으로 입력을 취하게 되면 too many values to unpack 이라는 오률를 만나게 될 것 입니다. 이 말은 리스트를 두개의 변수에 다 담을 수 없다는 말인데, 입력 문자열을 공백 기준으로 나누면 '21.1000', '+', '30.000'이렇게 세개의 원소를 가진 리스트가 되기 때문 입니다.
위 소스를 살짝 다음과 같이 수정하면 a, b에 각각의 값이 들어가게 할 수 있습니다.
a, op, b=input("수식 입력(* 예: 20*40):").split()
이렇게 하면, a에는 '21.1000', b에는 '30.000', 그리고 op에는 '+' 가 들어 가게 됩니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력