[러닝 파이썬(제5판)]_오탈자

티스토리 메뉴 펼치기 댓글수6

오탈자 정보

[러닝 파이썬(제5판)]_오탈자

0과 1이 꿈꾸는 세상 제이펍
댓글수6

현재까지 발견된 위 책의 오탈자 정보와 오류, 그리고 보다 매끄러운 문장을 위해 수정한 내용을 안내해드립니다. 번역과 편집 시에 미처 확인하지 못하고 불편을 끼쳐드려 죄송하다는 말씀을 드립니다. 아래의 오탈자 사항은 추후 재쇄 시에 반영하도록 하겠습니다. 


이외의 오탈자 정보를 발견하시면 옮긴이(ulzima@gmail.com)나 출판사(readers.jpub@gmail.com)로 연락주시면 고맙겠습니다.


최종수정일자: 2020년 9월 4일

2쇄본 오탈자


(업데이트순)


상편 86쪽 첫 번째 줄  (jj 님 제보)
3.X에서는 그렇지 않다). => 3.X에서는 그렇지 않다. 그리고 imp 모듈은 파이썬 3.4부터 deprecated되어서 importlib 모듈을 사용해야 한다).

상편 121쪽 위에서 열한 번째 줄  (jj 님 제보)
이러한 다른 종류의 객체들은 일반적으로 임포트에 의해 생성되고, 라이브러리 모듈(예를 들면, 패턴과 소켓을 위한 re와 socket 모듈이 있다)에 있는 함수들을 사용하며, 스스로 모든 동작을 제공한다.
=>
이러한 다른 종류의 객체들은 일반적으로 라이브러리 모듈(예를 들면, 패턴과 소켓을 위한 re와 socket 모듈이 있다)에 있는 함수들을 임포트해서 사용할 때 생성되며, 스스로 모든 동작을 제공한다.

상편 130쪽 세 번째 코드 박스 안  (jj 님 제보)
=> 패

상편 131쪽 밑에서 세 번째 줄  (jj 님 제보)
다음의 첫 번째 표현식에서 파이썬은 내부적으로 두 번째 인수를 첫 번째 인수에 자동으로 매핑하며,
=>
다음의 표현식들에서 파이썬은 내부적으로 첫 번째 방법을 두번째 방법으로 자동으로 매핑하지만,

상편 135쪽 위에서 여섯 번째 줄  (jj 님 제보)
객체의 데이터를 직접 변경하는 대부분의 연산을 리스트 객체가 지원한다
=>
객체의 데이터를 직접 변경하는 리스트 객체의 대부분의 연산을 지원한다.

상편 137쪽 위에서 다섯 번째 줄  (jj 님 제보)
이 예제는 'Hello, '로 시작하고 => 이 예제는 'Hello'로 시작하고

상편 143쪽 위에서 두 번째 줄  (jj 님 제보)
반환되도록 하기 위해서는 map 호출을 list로 강제로 감싸야 한다.
=>
반환되도록 강제하기 위해서는 map 호출을 list로 감싸야 한다.

상편 144쪽 위에서 네 번째 줄  (jj 님 제보)
순서를 제공하지 않는다. => 순서를 제공하지 않는(파이썬 3.6부터 딕셔너리는 삽입 순서대로 정렬된다).

상편 150쪽 위에서 두 번째 줄  (jj 님 제보)
순서를 유지하지 않는다. => 순서를 유지하지 않는다(파이썬 3.6부터 딕셔너리는 삽입 순서대로 정렬된다).

상편 152쪽 밑에서 열두 번째 줄  (jj 님 제보)
반복 객체는 iter 호출에 의해 생성되고, => 반복 객체는 iter 호출에 의해 떤 객체(이터레이터)를 생성하는데, 이 객체는

상편 152쪽 밑에서 아홉 번째 줄  (jj 님 제보)
컴프리헨션 제너레이터 표현식 => 제너레이터 컴프리헨션 표현식

상편 158쪽 첫 번째 코드 세 번째 줄의 주석  (jj 님 제보)
10바이트, 객체가 아닌 텍스트 => 10바이트, 객체나 텍스트가 아님

상편 160쪽 위에서 네 번째 줄  (jj 님 제보)
codes.open => codecs.open


상편 45쪽 위에서 여섯 번째 줄  (jj 님 제보)

딕셔너리 컴파일 => 사전 컴파일

열네 번째 줄

시맨틱 가비지 컬렉션의 비참조 카운트 기반의 설계는 => 참조 카운트를 기반으로 하지 않는 가비지 컬렉션 설계는

상편 49쪽 밑에서 열한 번째 줄  (jj 님 제보)

결과물과는 차이가 없으며 => 결과물과는 달라서


상편 54쪽 위에서 네 번째 줄  (jj 님 제보)
딕셔너리 준비 작업 -> => 사전 준비 작업

상편 61쪽 밑에서 열한 번째 줄  (jj 님 제보)
코드를 작성하기 위한 딕셔너리 준비 작업 => 코드를 작성하기 위한 사전 준비 작업
 
상편 62쪽 위에서 일곱 번째 줄  (jj 님 제보)
표현 방식들 => 표현식

상편 63쪽 마지막 줄  (jj 님 제보)
 => 모

상편 64쪽 첫 번째 줄  (jj 님 제보)
여러분의 행위가 위험해질 수 있다. => 위험에 빠지지 않을 수 있다.

상편 89쪽 밑에서 여섯 번째 줄  (jj 님 제보)
하든지, 아니면 처음 한번만 실행된다. => 하든, 처음 한 번만 실행된다.

상편 93쪽 밑에서 네 번째 줄  (jj 님 제보)
기본 import문은 프로세스가 실행되는 즉시 실행되며,
=> 
기본 import문은 프로세스마다 파일들을 각각 한번씩만 실행하며,

상편 93쪽 마지막 줄  (jj 님 제보)
코드를 변경한 다음에는 리로드 시에 모듈의 네임스페이스를 분할하기 위한 비용이 발생한다.
=> 
모듈의 네임스페이스를 분할됨으로써 발생하는 비용은 코드를 변경한 후에는 리로드를 해야 한다는 것이다.

상편 94쪽 위에서 열 번째 줄  (jj 님 제보)
대부부분의 플랫폼 -> 대부분의 플랫폼

상편 99쪽 밑에서 일곱 번째 줄, 열한 번째 줄  (jj 님 제보)
리로드해야 한다. => 리로드하면 된다.
 
상편 105쪽 위에서 다섯 번째 줄  (jj 님 제보)
* '할 수 있다'를 삭제하겠습니다.

상편 107쪽 마지막 줄  (jj 님 제보)
진입한 이때, -> 진입한다. 이때,


상편 388쪽 그림 9-3 하단 흰색 배경 글상자  (JeongHwi Ra 님 제보)

가터 => 기타


상편 739쪽 맨 아래쪽 코드문 마지막 줄

[35, 40} => [35, 40]


상편 777쪽 하단 코드문 다섯 번째 줄

for in => for i in


상편 790쪽 코드문 위에서 네 번째 줄

ret = fun(*pargs, **kargs) => ret = func(*pargs, **kargs)


상편 791쪽 밑에서 네 번째 줄

>>> timer.bestof(50, timer.total 1000 str.upper, 'spam') => >>> timer.bestof(50, timer.total, 1000, str.upper, 'spam')


상편 829쪽 밑에서 일곱 번째 줄 중간부

pystoen => pystone


상편 전체적으로

고전 클래스 => 레거시 클래스

드 => 메


상편 921쪽 열한 번째 줄

'고전적' 클래스 => '레거시' 클래스


상편 732쪽 첫 번째 코드 박스 첫째 줄  (유동우 님 제보)

>>> res = [x + y for x in [0, 1, 2] for y in in [100, 200, 300]] 

=>

>>> res = [x + y for x in [0, 1, 2] for y in [100, 200, 300]]



최종수정일자: 2018년 11월 29일

1쇄본 오탈자


(업데이트순)


상/하편 모두에서

고전 클래스 => 레거시 클래스 

드 => 메


하편 1101쪽 첫 번째 예제 코드 박스 일곱 번째 줄  (현재웅 님 제보)

I.method1() I.method2()

=>

I.method1()

I.method2()

(* 한 줄로 된 내용을 두 행으로 나누어야 합니다.)


상/하편 모두에서

다시 한 번 => 다시 한번


상편 349쪽 표 9-1 (Jae* Hyun 님 제보)




상편 571~590쪽 사이의 파이썬 버전 표기에 관하여 (Jae* Hyun 님 제보)

버전 3.6이라 표시된 부분을 모두 3.3으로 변경

(* 이 장은 지은이가 3.2 버전과 3.3 버전을 비교하는 내용이므로 최신 3.6이 아닌 3.3 버전으로 표기되었어야 함)


상편 920쪽 하단의 옮긴이 주 (Jae* Hyun 님 제보)

현재 파이썬의 최신 버전은 3.7이고, 이 책이 집필될 당시에는 3.3이 최신 버전이다.

=>

이 책이 집필될 당시의 최신 파이썬 버전은 3.3이었으나, 옮긴이는 번역 시점의 최신 버전인 3.6에서 모든 코드를 테스트했다. 부득이하게 버전 표기를 유지해야 할 곳은 3.3으로 되어 있지만, 내용을 이해하거나 테스트하는 데는 문제가 없을 것이다.


--------------------------------------10/12일자-------------------------------------- 


상편 8쪽 맨 마지막 줄 (Jae* Hyun 님 제보)

그러므로 일부 프로그램은 파이썬에서 C처럼 완전히 컴파일되는 언어보다 파이썬에서 더욱 느리게 실행될 것이다.

=>

그러므로 일부 프로그램은 C처럼 완전히 컴파일되는 언어보다 파이썬에서 더욱 느리게 실행될 것이다.


상편 123쪽 밑에서 두 번째 문단 (Jae* Hyun 님 제보)

파이썬의 오래된 버전에서는 부동 소수점 repr은 때로 여러분이 예상하는 것보다 더 많은 정밀도로 표시된다.

=>

파이썬의 오래된 버전에서는 부동 소수점 repr은 때로 여러분이 예상하는 것보다 더 높은 정밀도로 표시된다.


상편 181쪽 중간 예제 소스 (Jae* Hyun 님 제보)

#(4 / (2.0 +3))과 같음 [2.7 이전에서는 print를 사용] => #(4 / (2.0 + 3))과 같음

(* [ ]안 내용은 저자가 주석으로 설명을 단 것인데 조금 맥락에 안맞게 보일 수 있는 것 같아 삭제합니다.)


상편 233쪽 세 번째 줄 (Jae* Hyun 님 제보)

또한, 이러한 슬라이싱 기술은 딕셔너리가나 => 또한, 이러한 슬라이싱 기술은 딕셔너리나


상편 237쪽 학습 테스트 두 번째 소스 (Jae* Hyun 님 제보)

B= A => B = A


상편 240쪽 마지막 줄 (Jae* Hyun 님 제보)

이러한 구별 외에는 대부분 단순한 문자열 처리. => 이러한 구별 외에는 대부분 단순한 문자열 처리다. 


상편 257쪽 중간 (Jae* Hyun 님 제보)

아홉 번째 줄

s[1:3] 오프셋 1에서부터 오프셋 3까지의 아이템을 가져오며, 오프셋 3에 위치한 아이템은 제외된다.

=>

s[1:3] 오프셋 1에서부터 오프셋 2까지의 아이템을 가져오며, 오프셋 3에 위치한 아이템은 제외된다.


11번째 줄

s[:3] 오프셋 0에서부터 오프셋 3까지의 아이템을 가져오며, 오프셋 3에 위치한 아이템은 제외된다.

=>

s[:3] 오프셋 0에서부터 오프셋 2까지의 아이템을 가져오며, 오프셋 3에 위치한 아이템은 제외된다.


상편 277쪽 밑에서 두 번째 문단 (Jae* Hyun 님 제보)

다시 한 번 말하지만, 포매팅은 왼쪽에 있는 문자열을 변경하지 않고 항상 새로 문자열을 만든다는 것을 기억하자.

=>

다시 한번 말하지만, 포매팅은 왼쪽에 있는 문자열을 변경하지 않고 항상 새로 문자열을 만든다는 것을 기억하자.


상편 296쪽 위에서 세 번째 문단 (Jae* Hyun 님 제보)

튜플 자체를 값으로 전달하여 출력해야 하는 경우 중첩된 튜플을 전달해야 한다. 또한, 드물긴 하나 튜플 자체를 값으로 전달하여 출력해야 할 경우에는 중첩된 튜플을 전달해야만 한다.

=> 

결과적으로 단일 아이템은 그 자체로나 튜플로 감싼 후 제공될 수 있으며, 튜플 자체를 값으로 전달하여 출력해야 하는 경우 중첩된 튜플을 전달해야 한다. 

(* 빨간색으로 표시된 문장을 삭제)


상편 308쪽 첫 번째 예제 소스 (Jae* Hyun 님 제보)

>>>    res => >>> res


상편 309쪽 마지막줄 (Jae* Hyun 님 제보)

앞의 대화형 예제에서 리스트는 한 쌍의 괄호에 포함되어 있기 때문에

=> 

앞의 대화형 예제에서 리스트는 한 쌍의 대괄호에 포함되어 있기 때문에


상편 전체에서 (Jae* Hyun 님 제보)

드 => 메


상편 462쪽 첫 번째 예제 소스 두 번째 줄 (Jae* Hyun 님 제보)

>> print() => >>> print()


상편 462쪽 (Jae* Hyun 님 제보)

첫 번째 문단

이와 같은 결과 라인을 강제로 => 이와 같은 결과 라인을 강제로 


세 번째 문단 첫 번째 줄

여기서 단지 튜플에서 => 여기서 따옴표는 단순히 튜플에서


상편 483쪽 첫 번째 문단 (Jae* Hyun 님 제보)

그러나 예를 들어 다음 코드는 파이썬이 단축을 적용하지 않기 때문에 정확히 동일하지는 않다. => 그러나 예를 들어 다음 코드는 파이썬이 단축 연산(short-circuit)을 적용하지 않기 때문에 정확히 동일하지는 않다.


상편 504쪽 참고 내용 마지막 문단 (Jae* Hyun 님 제보)

또한 여기서 for 루프는 각 문자를 처리하지만, for 루프는 파일을 (한 번에 읽기에 충분한 경우) 한 번에 모두 메모리로 읽는다.

=> 

또한 여기서 for 루프는 각 문자를 처리하지만, file.read()는 파일을 (한 번에 읽기에 충분한 경우) 한 번에 모두 메모리로 읽는다.

 

상편 506쪽 세 번째 불릿 기호 내용 (Jae* Hyun 님 제보)

(파이썬2.3 이후로 사용할 수 있는) 내장 enumerate 함수는 가변 객체의 아이템들에 대한 값과 인덱스를 생성하므로 수동으로 카운팅할 필요가 다.

(파이썬2.3 이후로 사용할 수 있는) 내장 enumerate 함수는 가변 객체의 아이템들에 대한 값과 인덱스를 생성하므로 수동으로 카운팅할 필요가 다.

 

상편 509 마지막 예제 소스 세 번째 줄 (Jae* Hyun 님 제보)

#제일 앞 아이템으로 끝으로 이동

#제일 앞 아이템 끝으로 이동


상편 548쪽 세 번째 문단 (Jae* Hyun 님 제보)

좀 더 자세한 내용은 20장에서 살펴보겠지만, map이나 zip 같이 한 번의 탐색만을 지원하며, 새롭게 반복 객체가 된 도구들에 대해 여러 번의 반복을 지원하기 위해서 리스트로 변환할 경우에는 주의가 필요하다.

=> 

좀 더 자세한 내용은 20장에서 살펴보겠지만, map zip 같이 한 번의 탐색만을 지원하는 새로운 반복 객체에 대한 다중 반복은 좀 더 세밀한 지원이 필요하다.


상편 571쪽 (Jae* Hyun 님 제보)

첫 번째 문단의 마지막 줄

그리고 이를 실행하는 방법은 파이썬 3.6 이후부터 변경되었다.

=>

그리고 이를 실행하는 방법은 파이썬 3.3 버전부터 변경되었다.


두 번째 불릿 기호 내용

3.6 이후부터 이전 GUI 클라이언트는 => 파이썬 3.3 부터 이전 GUI 클라이언트는

 

상편 602쪽 주석 내용 (Jae* Hyun 님 제보)

기본 개념은 '당신의 코드는 객체가 꽥꽥 울지 않는 한, 그 객체가 오리인지 아닌지에 대해서는 상관하지 않는다'는 것이다.

=>

기본 개념은 '당신의 코드는 객체가 꽥꽥하고 우는 한, 그 객체가 오리인지 아닌지에 대해서는 상관하지 않는다'는 것이다.

 

상편 664쪽 표 18-1 맨 마지막 칸 (Jae* Hyun 님 제보)

def func(*, 이름 = 값) => def func(*기타, 이름 = 값)


상편 701쪽 두 번째 예제 소스 밑에서 두 번째 줄 (Jae* Hyun 님 제보)

items.extend(front) => items[:0] = front

 

상편 735쪽 두 번째 예제 소스에 첫 번째 주석문 (Jae* Hyun 님 제보)

# 을 이용한 같은 기능 => # for문을 이용한 같은 기능

 

상편 736쪽 첫 번째 문단 (Jae* Hyun 님 제보)

이 코드는 다음의 기반 코드와 같다. => 이 코드는 다음의 for문 기반 코드와 같다.

 

상편 751 첫 번째 예제 소스 첫 줄 (Jae* Hyun 님 제보)

>>> list = 'aaa,bbb,ccc' => >>> line = 'aaa,bbb,ccc'


상편 752쪽 세 번째 문단 (Jae* Hyun 님 제보)

예를 들어, 예를 들어, 다음은 중첩보다는 비중첩이 일반적으로 더 낫다는

=> 

예를 들어, 다음은 중첩보다는 비중첩이 일반적으로 더 낫다는


상편 765쪽 예제 소스 첫 번째 함수 (Jae* Hyun 님 제보)

>>> def scramble(seq):

            for i in range(len(seq)):

            seq = seq[1:] + seq[:1]

            yield seq

=> 

>>> def scramble(seq):

            for i in range(len(seq)):

                seq = seq[1:] + seq[:1]

                yield seq

(* 들여쓰기가 틀림. 세, 네 번째 줄을 한 번 더 들여써야 합니다.)


상편 794쪽 예제 소스 밑에서 열 번째 줄 (Jae* Hyun 님 제보)

def getFunc(): => def genFunc():


상편 818쪽 첫 번째 문단 (Jae* Hyun 님 제보)

비록 사용자 정의 함수가 내장 함수보다 더 느릴 수는 있지만, 일반적으로 함수가 내장인지 아닌지가 성능에 영향을 많이 주는 것 같아 보인다.

=> 

비록 사용자 정의 함수가 내장 함수보다 더 느릴 수는 있지만, 일반적으로 함수가 내장이든 아니든 함수 자체가 속도 면에서 큰 부분을 차지한다는 것을 알 수 있다.


상편 822쪽 두 번째 문단 (Jae* Hyun 님 제보)

여러분도 알다시피, 파이썬은 함수 안에서 할당된 이름을 기본적으로 지역(지역)로 분류한다.

=>

여러분도 알다시피, 파이썬은 함수 안에서 할당된 이름을 기본적으로 지역(locals)으로 분류한다.


상편 826쪽 첫 번째 예제 소스 세 번째 줄 (Jae* Hyun 님 제보)

print((saver.x) => print(saver.x)


하편 1554쪽 예제 소스 여섯 번째 줄 (Jae* Hyun 님 제보)

# 혹은 다른 호줄 가능 객체 => # 혹은 다른 호출 가능 객체


--------------------------------------8/13일자-------------------------------------- 


상편 xxxiv쪽, 하편 xxxiii쪽 마지막 URL (Jae* Hyun 님 제보)

Learnin-python.com/index-book-links.html

=>

Learning-python.com/index-book-links.html


상편 554쪽 첫 번째 코드 밑에서 세 번째 줄 (Jae* Hyun 님 제보)

for k in D.kesy(): print(k, end=‘ ’)

=>

for k in D.keys(): print(k, end=‘ ’)


상편 685쪽 첫째 줄 (Jae* Hyun 님 제보)

(그러려면 전체 순열이 필요하며, 네 개의 인수의 경우 총 2네 개의 순서가 생긴다)

=>

(그러려면 전체 순열이 필요하며, 네 개의 인수의 경우 총 24개의 순서가 생긴다)


상편 718쪽 두 번째 코드 첫 번째 줄 (Jae* Hyun 님 제보)

action = (labda x  : (lambda y: x+y))

=>

action = (lambda x  : (lambda y: x+y))


상편 733쪽 첫 번째 코드 첫 번째 줄 (Jae* Hyun 님 제보)

>>> [(x, y] for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1]

=>

>>> [(x, y) for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1]


상편 752쪽 첫 번째 코드 네 번째 줄 (Jae* Hyun 님 제보)

[1, 0 1]

=>

[1, 0, 1]


상편 755쪽 첫 번째 코드 첫 번째 줄 (Jae* Hyun 님 제보)

>>> def timefour(S):

=>

>>> def timesfour(S):


상편 758쪽 두 번쨰 코드 마지막 줄 (Jae* Hyun 님 제보)

'0 : 1 : 2 : 3 : 4 : 0 : 1 : 4 : 9 : 16"

=>

'0 : 1 : 2 : 3 : 4 : 0 : 1 : 4 : 9 : 16'


상편 770쪽 코드 밑에서 두 번째 줄 (Jae* Hyun 님 제보)

>>> len(p1) p1[0], p1[1]

=> 

>>> len(p1), p1[0], p1[1]

(* 쉼표 누락 추가)


하편 1116쪽 표 제목

표 30-3 => 표 30-1



맨위로

https://jpub.tistory.com/780

신고하기