inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬 기초부터 실전 100% 활용

콘솔 스마트 계산기 만들기 스마트 (파이썬기초, 계산기 로직, 리스트, 반복문)

unsupported operand type(s) for +: 'int' and 'str' 질문드립니다...

11977

아맛나

작성한 질문수 7

1

user_input = input("계산식을 입력하세요")

op_list = ["+","-","*","/","="]

div_list = []

if user_input[-1not in op_list:
    user_input += "="

lop =0
for i,s in enumerate(user_input):
    if s in op_list:
        div_list.append(user_input[lop:i])
        div_list.append(s)
        lop = i+1 
    
div_list = div_list[:-1]

pos = 0

while True:
    if len(div_list) == 1:
        break
    else:
        if div_list[pos] in op_list:
            q = div_list[pos-1]+div_list[pos]+div_list[pos+1]
            del div_list[0:3]
            div_list.insert(0,eval(q))
            pos = 0
        pos += 1

print(div_list)
강의를 듣고 혼자 연습하고 있는데
q = div_list[pos-1]+div_list[pos]+div_list[pos+1]
라는 부분에서
unsupported operand type(s) for +: 'int' and 'str'
라고 에러가 뜨는데 div안의 요소들은 전부 오퍼레이터 혹은
input명령어로 받은 str이라고 생각했는데 어디서 잘못된
걸까요?

python 웹-크롤링

답변 2

1

남박사

일단 에러의 내용은 int 형을 str 형과 + 연산자로 더할 수 없다는 내용인데 입력받은 값 자체에서 문제가 생기는건지 아니면 문자열 슬라이싱하면서 자동 캐스팅이 되는지 부터 확인해봐야할듯 합니다.

제일 쉬운방법으로는 각 요소를 str로 강제 캐스팅해서 사용할수도 있습니다만 위에 얘기한것처럼 어떤 구간에서 발생하는지 좀 더 명확하게 집고 넘어가시는걸 추천합니다.

print(type(div_list[pos-1]))
print(type(div_list[pos]))
print(type(div_list[pos+1]))

일단 위처럼 문제가 되는 구간에 디버깅을 위해 요소를 print로 출력 해볼수 있습니다.

그러면 위처럼 출력이 될텐데 str 이 3번 반복되고 그 다음에 int로 변화되는걸 볼 수 있습니다. 그리고 오류가 발생하게 되죠.

div_list.insert(0,eval(q))

아마 이 구간에서 eval 함수에 의해 str 이 int로 변환되는걸로 보입니다. 

div_list.insert(0,str(eval(q)))

위처럼 eval 결과를 str로 캐스팅하면 문제없이 동작하는거 같습니다.

0

아맛나

아 이럴떄 type함수가 있다는걸 깜빡했습니다. 감사합니다.

38강 = 연산자 더하고 빼기

0

59

2

주석처리

0

116

1

함수의 파라미터값 msg

0

154

1

강의자료 이미지 안나옴

0

238

3

강의자료 질문 두번째

0

164

3

강의자료 관련 질문

0

115

1

파이썬 예외 처리 try / except 파일 처리 코드가 실행이 안됩니다.

0

234

1

소수 너무 어려워요

0

244

1

imagefont 함수 사용

0

238

1

pylint

0

356

1

add 함수 문의 ㅠㅠ

0

281

1

형식 문의드립니다.

0

208

1

변수 명을 왜 src, tar로 하셨는지 궁금합니다.

0

601

1

숫자야구 코드를 짜 봤는데 뭔가 이상합니다.

0

250

1

zsh: command not found: pylint

0

268

1

텔레그램 봇 만들기 코드 실행이 안됩니다 박사님..ㅠ

0

545

1

질문드립니다.

1

373

2

list.reverse() 출력에 대해서 질문있습니다.

1

432

1

데코레이터 함수 및 동작시간 질문입니다.~

1

322

2

opencv 사용하면서 궁금한점 (해상도)

1

780

1

질문드립니다.

1

298

1

아래 오류가 뜨면서 vscode가 컴파일이 되지 않는데.. 혹시 왜이럴까요?

1

444

1

크롤링안되는 현상 문의 드립니다.

1

420

1

파이썬 크롤링 관련 문의

1

276

1