Page 17 -
P. 17

'5'를 리턴합니다. 이외의 복잡한 자료형도 list('abc')와 dict([('a', 1),
                  ('b', 2), ('c', 3)])처럼 변환할 수 있습니다.

                  파이썬은 <와 >로 서로 다른 자료형을 비교할 수 없습니다. 따라서 자료형 변환
                  없이 사용자가 입력한 문자열과 숫자를 비교하면 프로그램에서 오류가 발생해
                  종료됩니다.

                  마지막으로 이번 예제와 책의 남은 부분에서는 문자열에 어떤 변수를 삽입할
                  때 f-문자열을 많이 활용합니다. f-문자열과 관련한 자세한 내용은 이후에 자세

                  하게 설명하겠습니다.



                                     walrus 연산자(바다사자 연산자)

                    다른 프로그래밍 언어를 사용하다가 파이썬을 공부하는 사람은 사용자로부터 입력받고,
                    while 반복문을 벗어나는 코드를 다음과 같이 작성하려 합니다. 이는 대부분의 프로그래밍
                    언어에서 널리 활용하는 형태의 코드입니다.

                     while s = input('Enter thoughts:'):
                         print(f'Your thoughts are: {s}')

                    이 코드는 사용자로부터 입력받고, 이를 s에 넣는 것을 while 반복문의 조건식에 활용하고
                    있습니다. 따라서 s가 불(Boolean)로 변환되어서 비교됩니다. 빈 문자열이 입력될 경우, s가
                    False로 변환되어서 반복문을 벗어납니다.
                    하지만 이 코드에는 중요한 문제가 있습니다. 파이썬에서는 이러한 코드가 동작하지 않는다는
                    것입니다. 이는 파이썬의 할당 구문이 표현식이 아니기 때문에 발생하는 일입니다. 파이썬의
                    할당 구문은 어떠한 값도 만들어내지 않습니다. 따라서 반복문의 조건식 부분에 사용할 수 없
                    습니다.
                    하지만 이러한 코드는 굉장히 편리하므로, 파이썬 3.8버전부터는 이러한 코드를 사용할
                    수 있게 :=라는 새로운 할당 연산자가 추가되었습니다. 정식 명칭은 ‘할당 표현식 연산자
                    (assignment expression operator)’이지만, 일반적으로 :=라는 모습이 바다사자와 비슷하
                    게 생겼다고 해서 ‘warlus 연산자’(warlus는 바다사자라는 의미입니다)라고 부릅니다. 이 연
                    산자는 처음 도입될 때 굉장히 많은 논란을 불러일으켰습니다. 언어에 불필요한 복잡성을 만
                    들고, 잠재적인 버그의 가능성을 만들었다는 이유 때문입니다.

                                                                          계속





                                                                    1장  numeric 자료형  033




     파이썬_06.indd   33                                                      2021-11-18   오전 9:38:16
   12   13   14   15   16   17   18   19   20   21   22