Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

Python 3 by Mind Map: Python 3
0.0 stars - 0 reviews range from 0 to 5

Python 3

I do will study by use this demo map.

Modifying a Dictionary: Dictionary는 사전에 정의된 크기가 없다. 언제든지 key-value(한 쌍)으로 Dictionary를 추가할 수 있다. 예) a_dict['key'] = value. key가 있으면 key에 대입시켜 value를 수정하고, key가 없으면 추가한다(value로는 작동 안 됨). 그리고 a_dict처럼 하면 dictionary의 모든 아이템을 반환한다. * Dictionary key는 대소문자를 구별하여 완전히 새로운 key-value를 생성한다. 파이썬에서 대문자User과 소문자 user은 완전히 다른 쌍이다.

>>> a_dict{'server': 'db.diveintopython3.org', 'database': 'mysql'}>>> a_dict['database'] = 'blog' ①>>> a_dict{'server': 'db.diveintopython3.org', 'database': 'blog'}>>> a_dict['user'] = 'mark' ②>>> a_dict ③{'server': 'db.diveintopython3.org', 'user': 'mark', 'database': 'blog'}>>> a_dict['user'] = 'dora' ④>>> a_dict{'server': 'db.diveintopython3.org', 'user': 'dora', 'database': 'blog'}>>> a_dict['User'] = 'mark' ⑤>>> a_dict{'User': 'mark', 'server': 'db.diveintopython3.org', 'user': 'dora', 'database': 'blog'}①You can not have duplicate keys in a dictionary. Assigning a value to an existing key will wipe out the old value.②You can add new key-value pairs at any time. This syntax is identical to modifying existing values.③The new dictionary item (key 'user', value 'mark') appears to be in the middle. In fact, it was just a coincidence that the items appeared to be in order in the first example; it is just as much a coincidence that they appear to be out of order now.④Assigning a value to an existing dictionary key simply replaces the old value with the new one.⑤Will this change the value of the user key back to "mark"? No! Look at the key closely — that’s a capital U in "User". Dictionary keys are case-sensitive, so this statement is creating a new key-value pair, not overwriting an existing one. It may look similar to you, but as far as Python is concerned, it’s completely different.

Comprehensions(이해력)

list, dictionary, and set. 이 세가지가 연관된 concept이 매우 강력한 기술의 핵심이다. 그러나 첫번째로 약간 우회해서 local file system에 있는 두개의 모듈이 진행하는데 도움이 될 것이다.

Working with Files and Directories

파이쎤3은 os라 불리는 모둘이 딸려있다. os모듈은 로컬디렉토리, 파일, 프로세스, 환경변수를 조작하는 정보를 얻는 많은 함수를 포함한다. 파이썬은 통합된 모든 OS의 API를 제공한다. 여러분의 프로그램은 어떠한 컴퓨터에서도 작동한 수 있다. 가능한 작은 프랫폼에 종속된 코드에서도 작동할 수 있다.

Current Working Directory, 여러분이 파이썬을 시작할 때면, 파이썬쉘에서 많은 시간이 걸릴 것입니다. 이 책을 통해서 다음과 같은 샘플을 보게 될 것입니다. 1. examples폴더에 모듈 중에 하나가 import(삽입되는것) 2. 모듈에서 함수를 부르는 것 3. 결과를 설명하는 것. working디렉토리를 모른다면 1단계에서 ImportError로 실패했을 것입니다. 왜나면, 파이썬은 import 검색 경로에서 샘플모듈을 찾을 것이기 때문입니다. 찾지 못했다면 샘플폴더가 검색경로에 없기 때문입니다. 이과정을 지나셨다면, 둘 중에 하나를 할 수 있습니다. 1. 검색경로에 샘플 폴더를 추가 2. 현재의 작업경로를 샘플경로로 변경하는 것 현재 작업디렉토리는 파이썬이 언제나 메모리에 잡고있는 보이지 않는 속성입니다. 항상 작업디렉토리는 파이썬쉘에서 있어서, 명령줄에서 파이썬 스크립트를 실행하거나, 웹서버에 어떤 곳에 있는 파이썬 CGI스크립트를 실행합니다. os 모듈은 현재의 작업 디렉토리를 다루는 두 개의 함수를 포함하고 있습니다.

Working with Filenames and Directiory names, 디렉토리를 다루는 동안, os.path모듈를 벗어났습니다. os.path는 파일이름과 디렉토리 이름을 조작하는 함수를 포함하고 있습니다., os.paht는 전체 경로명, 디렉토리명, 파일명을 잘라서 구성요소로 하는 함수를 포함하고 있습니다. * (dir, file) = os.path.split(pathname) * (short, extension) = os.path.splitext(filename)

Listing Directories

Getting File Metadata, 모든 현대파일은 각 파일의 Meta데이타(생성일, last-Modified데이타, 파일크기 등)를 저장하고 있습니다. 파이썬은 Meta데이타에 접근하는 하나의 API를 제공합니다. 파일을 열 필요없이 파일이름만 있으면 됩니다.

Construction Absolute Pathnames

List Comprehensions

Dictionary Comprehensions

Other Fun Stuff to do with Dictionary Comprehensions

Set Comprehensions

Strings

유니코드 문자의 나열. 예) HTML

Get started!

Python 학습

Python Install ~ Native Datytypes

Number~Strings/Regular Exp

Closures ~ Refactoring

Files ~ XML

HTTP ~ 사례

실습 예제

Python Learning Websites

Drag & Drop and double-click canvas

Find out more?

Online Help

Use Cases & Templates, Personal Todo List, Vacation Planning, Meeting Minutes, Project Plan, more...

Tools and Gadgets, Offline Mode, Geistesblitz Tools, Email & SMS Gateways, Offline Mode

Ideas for my novel ...

파이썬3 설치 및 시작

Native Datytypes(고유자료형)

Booleans

Numbers, 강제변환하는 정수>실수 또는 실수>정수, 일반적인 숫자연산, Fractions(소수), Trigonometry(삼각법-sin/cos/tan), Numbers in a Boolean Context

Lists, Creating a List, Slicing a List, Adding Items to a List, Searching for values in a List, Removing Items From a List, Removing Items From a List: Bonus Round, Lists in a Boolean Context

Tuples, Tuples in a Boolean Context, Assigning Multiple Values at once

Sets, Creating a Set, Modifying a Set, Removing Items from a Set, Common Set Operations, Sets in a Boolean Context

Dictionaries, Creating a Dictionary, Modifying a Dictionary, Mixed Value Dictionaries, Dictionaries in a Boolean Context

None, None in a Boolean Context

Comprehensions(이해력)

Working with Files and Directories, Current Working Directory, Working with Filenames and Directiory names, Listing Directories, Getting File Metadata, Constructing Absolute Pathnames

List Comprehensions

Dictionary Comprehensions, Other Fun Stuff to do with Dictionary Comprehensions

Set Comprehensions

Strings

Regular Expressions

Closures(종결자) & Generators(생성자)

Classes(클래스) & Iterators(반복자)

Advanced Iterators(진전된 반복자)

Unit Testing(유닉 시험)

Refactoring(재인수분해)

Files(파일)

XML

파이썬 오브젝트의 나열

HTTP 웹서비스

사례연구: 파이썬3로 chardet 가져오기

파이썬 라이브러리 묶기

2to3를 통해 파이썬3 코드로 바꾸기

특별한 메소드 이름들

이제 어디로

문제해결

Native Datatypes

모듈형, 클래스형, 파일형, 심지어 컴파일 코드형 같은 자료형도 있음. 모듈에는 이름이 있고, 함수는 참조문을 가지는 등, 클래스형, 파일형에 대해서 배움.

Booleans

True와 False라는 두 상수로 논리값을 계산함. (if문 같은) 몇몇 곳에서 계산식의 결과가 논리값일 수 있습니다. 이러한곳을 논리문맥이라 합니다. 논리문맥의 결과는 언제나 참, 거짓을 판별하며 각각의 자료형마다 참, 거짓을 판별하는 계산법이 다릅니다.

Numbers

강제변환하는 정수>실수 또는 실수>정수, 숫자 연산: (1 이나 2)같은 정수, (1.1이나 1.2)같은 실수, (1/2이나 2/3)같은 분수, 심지어 복소수도 될 수 있음. 소수점의 유무에 따라 정부와 부동소수를 구별합니다. >>>type(1) <class 'int'> >>>isinstance(1,int) True

일반적인 숫자연산, float()함수를 사용하면 실수형(소수점)으로 결과값이 나옴. int()함수를 사용하면 정수형 결과값. int()함수는 수소점 뒷부분을 반올림하지 않고 버립니다. 파이썬의 실수 표현(소수점)은 15자리까지 정밀하게 표현하고 16자리는 17자리 이후를 반올림하여 표시합니다., /(슬래쉬) 연산자는 실수 나눗셈을 합니다. 그 결과는 항상 float으로 떨어집니다. 분모와 분자가 다 정수형이라도 float로 떨어집니다., //(더블슬래쉬)는 약간 '황당한' 정수 나눗셈을 합니다. 결과값이 양수일 때는 소수점 이하(반올림 하지 않고)를 버립니다. 음수값일 때에는 그 결과값에 가까운 정수로 올림합니다.(-5보다는 -6이 더 작으니까 정확하게 말하면 내림이죠. 결과값을 -5로 생각하여 실수하는 경우가 많습니다.) 정리하면, 양수는 소수점 아래 값을 모두 버리고, 음수는 모두 올림수(더 낮은 값으로 값내림)합니다. (-3.3 > -4로 하고, 5.5이면 5를 결과값으로 합니다.), %(MOdulo)연산자는 정수 나눗셈을 하고 난 나머지를 돌려줍니다. 11%2는 11을 2로 나눈 나머지 1을 결과값으로 돌려줍니다.

Fractions(분수), 분수를 사용하려면 import함수를 사용해서 import fractions 한다., 변수x에 fraction을 정의하고, fraction 객체을 생성하여 x에 넘긴다.(대입한다.), fractions함수를 이용해서 분수연산을 할 수 있다. Fraction(2, 3)은 분자2, 분모3인 2/3와 같다. 2 * (1/3) = (2/3), Fraction객체는 자동으로 분수를 줄여준다. (6/4) = (3/2), Python은 분모가 0인 분수를 만들지 않는 센스가 있다.

Trigonometry(삼각법-sin/cos/tan), math모듈은 π(원주율의 직경)라는 상수가 있다. math모듈은 모든 기본 삼각함수-sin(),cos(),tan()과 변종인 asin()을 포함하고 있다., 주의할 것은, 파이썬이 무한한 정확성을 갖지는 않는다. tan(π/4)는 0.99999999999999989가 1을 리턴할 수 있다.(Python3.2.3에서 0.9999999999999999을 리턴함)

Numbers in a Boolean Context, Boolean(참거짓)문에서 숫자를 사용할 수 있다. if문처럼 0값은 거짓(False), 1값은 참(True). 분자가 0인 분수는 거짓(False), 0.0인 실수도 False으로 0값을 리턴한다. *(주의) tan(math.pi). Python에서 0값이 아닌 값을 True로 하는데 tan(math.pi)처럼 파이썬에서 0값을 반환하지 않는 연산값이 True값을 반환하는 것에 주의를 해야한다., Python에서 함수정의는 줄 끝에서 Enter를 누르고, 빈 줄에서 Enter를 누르면 함수정의가 종료된다., 분자가 0인 분수는 분모가 무슨 수이든지 False값을 반환한다.

Lists

List는 파이썬에서 일을 많이하는 Datatype이다. "list"를 말하면 "먼저 배열의 크기를 선언하고 기타 등등의 items(아이템)을 담을 수 있다고 생각해야 한다. List들이 더 시원시원하다고 생각하게 될 것이다. * 파이썬의 리스트는 펄5.x, 펄5에서 변수가 @문자로 배열에 저장하듯이 파이썬 변수들도 어떤 것이든 이름이 될 수 있도, 파이썬은 내부적으로 Datatype트랙을 유지한다. * 파이썬 List(리스트)는 자바의 배열보다 더 배열다운 배열이다. 더 나은 유사점은 ArrayList 클래스가 임의의 객체를 잡고있을 수 있고, 활동적으로 추가되는 새로운 아이템으로 확장될 수 있다는 것이다.

값을 순서대로 써 놓은 것.

List생성: list의 Creating은 [ ](각괄호)를 사용하여 list값을 ,(콤마)로 구분하여 둘러싸서 만든다., list는 순서를 갖는 0~(n-1)까지 n개의 배열이다. list[0]값과 list[-(n-1)]은 값은 첫 번째 배열원소를 반환한다. 정리하면, a_list[-n]값은 a_list의 길이에서 -n한 a_list값, a_list[len(a_list)-n]과 같다. 공식: a_list[-n]==a_list[len(a_list)-n]

list 나누기: list를 정의했다면 두개의 색인으로 특정한 어떤 부분을 새로운 list로 얻을 수 있다. 요거이 slicing이라고 한다. 예) a_list [1:-1], .(처음 값 포함, 나중 값은 포함하지 않음.)반환값은 slice index로 시작하여 second slice index를 포함하지 '않는' 아이템(원소)를 모두 포함하는 새로운 list를 반환하다., . a_list[:3] == a_list[0:3] a_lise[0:3] - zero(0)을 기본으로 하는 list면 a_list[0]부터 a_list[3]을 포함하지 않는 처음부터 세 개의 아이템을 반환한다. 그리고 왼쪽에 0이 포함되어 있다면 a_lise[:3]처럼 버릴 수 있다., . a_list[:n]은 처음부터 n개, a_list[n:]은 n부터 끝까지의 원소 반환. 마찬가지로, 오른쪽 slice index가 list길이(끝)까지라면 오른쪽 slice index를 버릴 수 있다. 사실, a_list [:n]은 항상 처음부터 n개의 아이템(원소)를 반환하고, a_lise[n:]은 n부터 나머지 아이템(원소)를 반환한다. list길이을 알 필요없이 말입니다., . a_lise [:]은 모든 원소. 양쪽의 slice index가 없다면 list의 모든 아이템(원소)이 포함된 list를 반환합니다. But(하지만), 원래의 a_list변수와 같은 것이 아닙니다. 때문에 똑같은 list copy(복사)를 만들때 a_lise[:]를 사용합니다.

Adding Items to a List, 1. + 연산은 연결된 새로운 list를 생성한다. 크기에 제한없이 items을 포함할 수 있다. 그러나 메모리가 언급되면 두번째 리스트가 메모리에 생성된다는 것을 알아야 한다. 이 경우, 새로운 list는 즉시 기존에 있는 a_list변수에 할당된다. 그래서 +연산 list코드는 두가지 단계-연결과 할당으로 large lists를 다룰 때에는 많은 메모리를 차지할 수 있다. 어떤 datatype이든지 한 개의 리스트 아이템은 같은 자료형일 필요는 없다. 여기서는 string을 실수, 정수 자료형에 포함시키고 있다., 2. append()메소드는 한 개의 item으로 리스트의 맨 끝에 추가한다., 3. extend()메소드: 리스트는 클래스들로서 되었다. "Creating" 리스트는 제대로 예시되는 클래스이다. 그렇게 list는 메소드를 가지고 동작한다. extend()메소드는 list같은 한 개의 argument를 취하고 오리지날 list에 대항하는 각각의 아이템에 추가한다., 4. insert()메소드는 한 개의 아이템을 리스트에 삽입하는데, 아이템(원소)의 값은 유니크(하나 만)하지 않고 같은 값이 다른 위치에 존재할 수 있다. 첫 번째 argument는 부딧쳐서 자리를 얻는 첫 번째 아이템의 index이다., * append() and extend()

Searching items to a List, . 갯수: count()메소드: a_list.count('new') 은 리스트 안의 'new'아이템의 갯수를 카운트한다., . 존재유무: in 연산자: 'new' in a_list는 리스트 안에 'new'의 유무를 확인하여 True값 또는 False값으로 반환한다. 몇 번이나 있는지 등은 알려주지 않는다., . 위치출력: index()메소드: 원소의 위치를 출력. a_list.index('new')는 리스트 안의 'new'아이템 index위치를 출력한다. in 연산자나 count()메소드는 아이템이 어디에 있는지를 알 수 없다. list값이 어디에 있는지를 알려면 index()메소드를 사용해야 한다. 하지만 검색하는 같은 값이 여러 곳에 있다면 첫 번째 위치만을 반환한다. 찾는 값이 없으면 index()메소드는 exception(예외)을 발생시킨다.

Removing items to a List, . 위치지정 삭제: del a_list[1] 하면 a_list의 1(두번째 index)에 있는 item이 삭제된다. remove()메소드는 위치하는 index를 모를 때, 아이템을 value으로 지울 수 있다., . 삭제한 아이템 반환: pop()메소드는 list의 index에 있는 삭제한 item을 반환한다. pop()메소드에 인자(argument)가 없으면 맨 마지막에 있는 아이템을 삭제한다. 물론 삭제한 값을 반환하여 보여준다.

List in a Boolean Context

Tuples: a_tuple = tuple("a", "b", "c")

Tuple은 변경할 수 없는 list입니다. 한번 만들어지면 변경되지 않습니다. 값을 순서대로 써 놓은 것.(내용을 변경할 수 없음)

* 추가/삭제/수정 안 됨: Tuple은 변경할 수 없는 list입니다. 한번 만들어지면 변경되지 않습니다. 값을 순서대로 써 놓은 것.(내용을 변경할 수 없음) * index(위치확인)/in(존재확인) 연산자 사용 됨.

. Touple은 둥근괄호()를 사용합니다. tuple은 list(리스트)처럼 정의하지만, 각괄호 대신에 parentheses(둥근괄호)를 사용한다.

인덱스가 음수이면 list처럼 tuple의 끝에서부터 센다.

slicing작업 또한 list처럼 새로운 tuple를 얻는다.

Diference(차이점): Touple은 list처럼 index를 변경할 수 있는 메소드 - append(), extend(), insert(), remove(), and pop()가 없다. 오직, tuple은 새로운 tuple를 만드는 slicing만 할 수 있다.

장점은? 1. 반복자를 사용할 수 있고 list보다 빠르다. "반복자"를 사용할 때 list대신에 tuple을 사용할 수 있다. 2. 코드 안정성: "Write-protect"데이타로 변경할 필요가 없는 "코드 안정성"을 높일 수 있다. 3. Dictionary keys 사용: tuple는 문자, 숫자, 다른 tuple를 포함한 Dictionary keys을 사용할 수 있다. (list는 변경할 수 있기 때문에 Dictionary key로 사용할 수 없다.)

Boolean Context에서 함수의 인자(argument)에 () 또는 (False)는 False값을 반환한다. 하지만, [False], (False,)는 true값을 반환한다. tuple는 값과는 무관하게 아이템을 갖으면 True(참)값을 반환한다. 여기서, 아이템이 하나인 tuple를 생성하려면 반드시 "값" 다음에 ,(콤마)가 있어야 한다. ,(콤마)가 없으면 파이썬은 tuple를 생성하지 않는다.

Sets: a_set = set()

>>> a_list = ['a', 'b', 'mpilgrim', True, False, 42]>>> a_set = set(a_list) ①>>> a_set ②{'a', False, 'b', True, 'mpilgrim', 42}>>> a_list ③['a', 'b', 'mpilgrim', True, False, 42]① To create a set from a list, use the set() function. (Pedants who know about how sets are implemented will point out that this is not really calling a function, but instantiating a class. I promise you will learn the difference later in this book. For now, just know that set() acts like a function, and it returns a set.)② As I mentioned earlier, a single set can contain values of any datatype. And, as I mentioned earlier, sets are unordered. This set does not remember the original order of the list that was used to create it. If you were to add items to this set, it would not remember the order in which you added them.③ The original list is unchanged.

. (순서가 없는) 값의 모음으로 (중복없는)unique한 값이 담긴 가방이다. List로부터 set을 만들 수 있다. 한 개의 set은 변경할 수 없는 어떠한 Datatype을 값으로 포함할 수 있다. 한번 두 개의 sets을 갖으면 union, intersection, set difference와 같은 표준 set 연산을 할 수 있다.

Creating a Set: { }을 사용하여 a_set = {1}처럼 하나 이상의 값은 ,(콤마)로 하여 곱슬괄호로 둘러싸서 만든다. Set은 실제로 class처럼 실행된다. (지금은 고려하지 말자) set은 {}로 반환하고, list는 []로 반환한다. set 의 장점: 값이 정해지지 않았을 때, 인자(argument)없이 비어있는 set()을 생성할 수 있습니다. type(set)하면 <class 'set'>으로 나옵니다. len(set)하면 0으로 나옵니다. 빈 set을 만들어 a_set처럼 호출하면 set()처럼 나오는데 이는 비어있는 set이 아니라, 비어있는 Dictionary를 의미한다.

add() and update(): set은 두 가지 방법으로 set값을 변경할 수 있다.

set에서 item 삭제: 3가지 방법이 있다. discard(), remove(), pop()메소드가 있는데, discard()와 remove()메소드는 한 개의 value을 삭제할 수 있으며 *discard()메소드는 (에러 메시지)Keyerror exception(예외)을 발생시키지 않는다. remove()/pop()은 Keyerror를 발생시키는 미묘한 차이가 있다., set은 list처럼 pop()메소드를 갖는다. pop()은 순서없이 임의의 아이템을 삭제하고(List는 처음 아이템부터 하나씩 삭제), clear()메소드는 set의 아이템을 모두 삭제한다. a_set()를 사용하면 set의 모든 아이템을 확인할 수 있고, 삭제할 아이템이 없으면 Keyerror exception(예외)를 반환한다.

Common Set Operations(Set 연산), in : value이 있는지 없는지를 확인한다., union(): 두 set()의 값을 모두 포함한 (값의 중복이 없는)새로운 set를 반환한다. (이때, 두 set의 값은 변경되지 않고 그대로이다.) a_set.union(b_set) == b_set.union(a_set), intersection(): 공약수, 두 set에 공통으로 있는 values을 반환한다. 역시, 두 set의 values은 변경되지 않고 그대로 있다. a_set.intersection(b_set) == b_set.intersection(a_set), symantic_difference()메소드: 공통된 아이템을 제외한 set. 두 set에서 공통으로 있는 values을 모두 제거한, 두 set에서 정확하게 하나만 존재하는 값을 새로운 set으로 반환한다. a_set.symantic_difference(b_set) == b_set.symantic_difference(a_set), . difference: a_set.difference(b_set)처럼, 두 set에서 a_set에는 있지만, 인자(b_set)에는 없는 values을 새로운 set으로 반환한다. 즉, a_set에만 있는 values을 반환함, 두 set()의 union()메소드를 실행한 values길이는 intersection()길이 + symmetric_difference()길이의 합과 같다., issubset(), issupperset() 연산: a_set.issubset(b_set)메소드는 a_set값들이 b_set값들의 부분집합인가? 에 대해 Boolean Value(참, 거짓)으로 반환한다. a_set.issupperset(b_set)은 a_set이 b_set을 포함하는가? 에 대해 역시, Boolean 값으로 반환한다., >>> is_it_true({'a'}) yes, it's ture >>> is_it_true({False,}) yes, it's ture >>> is_it_true(a_set) yes, it's ture >>> is_it_true(()) no, it's false

Dictionaries: any datatype

Dictionary는 Key-Value가 한 쌍으로 이루어진 순서가 없는 set이다. Dictionary에 key를 추가하려면 함께 value를 추가해야 한다. (값은 나중에도 항상 변경할 수 있다.) Python의 Dictionary는 key를 알고 있을 때, 값을 검색하는데 최적이다. 하지만, Value로 key가 검색되지는 않는다.

Creating Dictionary: a_dict['a:alpa', 'b:beta']처럼 콜론(:)을 한 쌍으로 각괄호에 싸서 생성한다. key로 Value를 얻을 수는 있지만, value로 key를 얻을 수는 없다.

Mixed-Value(다양한 값) Dictionary, Dictionaries는 string 만이 아니라, 모든 datatype이 Dictionary value가 될 수 있다. 정수, 불리언, 임의객체, 심지어 다른 dictionary들도 될 수 있다. 하나의 dictionary내에서 value들은 모두 같은 자료형을 요구하지 않는다. 필요한 만큼 혼합될 수 있고 같을 수 있다. Dictionary Key는 좀 더 제한적이지만, 정수-문자와 약간의 다른 datatype이 될 수 있다. Dictionary Key역시 혼합하거나 같은 datatype 일 수 있다.

Dictionaries in a Boolean Context: 빈 Dictionary는 False(0), 모든 Dictionary는 True(0이 아닌 수)

None: null 값을 갖는 특별한 상수

>>> type(None)>>> None == FalseFalse>>> None == 0False>>> None == ''False>>> None == NoneTrue>>> x = None>>> x == NoneTrue>>> y = None>>> x == yTrue

None는 null값을 갖는 특별한 Python의 상수이다. None는 0(zero)값이 아니기 때문에 False와 같지 않다. 또한 empty string도 아니다. None과 비교하면 항상 False값을 반환한다. None는 오직 null값만을 갖는다. 자기자신의 datatype(NoneType)를 갖는다. 변수에 할당할 수 있지만 다른 NoneType 객체를 생성하지는 못한다. 변수의 값이 None인 모든 변수는 서로 같다.

None in a Boolean Context: 불리언 구문에서 None는 false이고, not None는 True(참)이다.

Bytes / Bytes Array, 예) JPEG 이미지 파일

DiveintoPython3

Check out http://kybin.github.io/translateDiveIntoPython3korean/index.html