파이썬 조건문 if 이용

조회수 63회
수식 입력(* 예: 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에는 '+' 가 들어 가게 됩니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.