inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

텔레그램 봇 만들기 - 날씨, 환율 응답, 컴퓨터 파일 전송 기능 추가하기

안녕하세요. 오류 메세지에 대해 질문드립니다.

해결된 질문

396

현주민

작성한 질문수 9

1

위는 제가 쓴 코드이고 밑엔 오류 메세지입니다.

ValueError 에 찍히는 숫자를 보니 자료는 제대로 가져오는 것 같은데, string 을 float 으로 컨버팅 할 수 없다는 오류처럼 보입니다.. 이유 알 수 있을까요?

그리고 또 한가지 궁금한 것은, 함수에서 return 을 하는 위치(들여쓰기) 가 어디인지 궁금합니다. 

 

위의 캡처에서처럼 함수 실행 바로 뒤에서 들여쓰기 되기도하고, 아래의 캡처처럼 최종 if문 바로 뒤에서 들여쓰기 되기도 하는데, return 의 위치에 따라서도 함수의 값에 변화가 생기는지요?.. 

python 웹-크롤링

답변 2

1

남박사

먼저 위 오류의 내용을 살펴보면 "1,405.79" 를  string to float 으로 형변환을 할 수 없다는 오류인데 콤마(,) 문자가 표함되서 그렇습니다. 콤마는 실수형(float) 형태로 변환될 수 없는 그냥 문자입니다. 따라서 

money = float(EXCHANGE_LIST[country].replace(",", ""))

위처럼 콤마를 먼저 제거하고 형변환을 하면 되지 않을까 생각합니다.

그리고 리턴의 들여쓰기의 문제가 아니라 리턴을 하는 시점을 생각해봐야 합니다. 예를 들어

def test():
    if a > 20:
        return "A"
    elif a > 10:
        return "B"
    return "C"

위와 같은 코드가 있다고 가정했을때 return C 는 어느조건에도 만족하지 않았을때 test() 함수의 최종 리턴값입니다. 그러나 a 가 20보다 크게 되면 "A" 가 리턴되고 그렇지 않고 10보다 크면 B가 리턴되게 됩니다. return  "A" 는 if a > 20 에 종속된 리턴이고 return B는 elif a > 10 에 종속된 리턴이며 return C는 def test() 함수에 종속된 리턴입니다. 

0

현주민

아.. 잘 이해했습니다 답변 정말 감사합니다!!

38강 = 연산자 더하고 빼기

0

60

2

주석처리

0

116

1

함수의 파라미터값 msg

0

155

1

강의자료 이미지 안나옴

0

239

3

강의자료 질문 두번째

0

165

3

강의자료 관련 질문

0

116

1

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

0

235

1

소수 너무 어려워요

0

245

1

imagefont 함수 사용

0

239

1

pylint

0

357

1

add 함수 문의 ㅠㅠ

0

282

1

형식 문의드립니다.

0

209

1

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

0

602

1

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

0

252

1

zsh: command not found: pylint

0

269

1

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

0

546

1

질문드립니다.

1

374

2

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

1

433

1

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

1

323

2

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

1

781

1

질문드립니다.

1

299

1

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

1

445

1

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

1

421

1

파이썬 크롤링 관련 문의

1

277

1