004. python 튜토리얼_04 - chohankyun/python-django-study GitHub Wiki
3.1.3. 리스트 자료(Lists)
파이썬에는 서로 다른 값을 함께 그룹 지어서 사용 할 수 있는 혼합 데이터 타입이 여러개 있다.
가장 다용도로 쓰이는 타입은 리스트이며, 리스트는 "," 로 분리하고 [] 으로 둘러 쌓인다.
리스트는 다른타입의 데이터를 포함 할 수 있다, 하지만 일반적으로 같은 타입의 데이터를 포함 함다.
>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]
리스트는 문자열과 같은 내장 시퀀스 타입이며, 숫자색인 및 나눔을 할 수 있다.
>>> squares[0] # indexing returns the item
1
>>> squares[-1]
25
>>> squares[-3:] # slicing returns a new list
[9, 16, 25]
나눔 작업은 요청된 항목을 포함한 새로운 리스트를 반환한다. 이것은 나눔이란것은 리스트의 새로운 카피(얕은 복사)의
리스트를 반환하는 것이다.
>>> squares[:]
[1, 4, 9, 16, 25]
리스트는 또한 접합 같은 작업도 지원한다.
>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
변경 불가의 문자열과는 다르게, 리스트는 변경 가능 타입이로 리스트 내용의 변경이 가능하다.
>>> cubes = [1, 8, 27, 65, 125] # something's wrong here
>>> 4 ** 3 # the cube of 4 is 64, not 65!
64
>>> cubes[3] = 64 # replace the wrong value
>>> cubes
[1, 8, 27, 64, 125]
또한 append() 메쏘드를 사용해서 리스트의 마지막에 새로운 아이템을 추가 할 수 있다.
>>> cubes.append(216) # add the cube of 6
>>> cubes.append(7 ** 3) # and the cube of 7
>>> cubes
[1, 8, 27, 64, 125, 216, 343]
나눔에 의한 할당이 가능하다. 이것은 리스트의 사이즈를 변경 하거나 리스트의 전체를 다 지울수 있다.
>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # replace some values
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # now remove them
>>> letters[2:5] = []
>>> letters
['a', 'b', 'f', 'g']
>>> # clear the list by replacing all the elements with an empty list
>>> letters[:] = []
>>> letters
[]
내장 함수 len()를 사용해서 크기를 구할 수 있다.
>>> letters = ['a', 'b', 'c', 'd']
>>> len(letters)
4
다음 예제와 같이 리스트는 내부에 리스트를 포함 할 수 있다.
>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
['a', 'b', 'c'], [1, 2, 3](/chohankyun/python-django-study/wiki/'a',-'b',-'c'],-[1,-2,-3)
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'
3.2. 프로그래밍을 위한 첫 걸음
물론 우리는 파이썬을 사용해서 더 복잡한 작업을 할 수 있다.
다음과 같이 반복문을 사용해서 피보나치 시리즈를 출력 할 수 있다.
>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1
>>> while b < 10:
... print(b)
... a, b = b, a+b
...
1
1
2
3
5
8
위의 예제는 몇가지 새로은 특징을 보여준다.
-
첫번째 라인은 다중 할당을 포함함다. 변수 a, b 는 동시에 새로은 값 0, 1 로 할당된다.
다중 할당은 마지막 라인에서 다시 사용 되고, 오른쪽 표현식이 변수에 할당 되기 전에
수행된다. 오른쪽 표현식은 왼쪽에서 오른쪽으로 수행된다. -
while 반복문은 조건식 b < 10 이 true 이면 계속 실행 된다. 파이썬은 C 와 같이
non-zero 숫자 값은 true 이며 zero 는 false 이다. 조건식으로 문자열이나 리스트 가 올 수 있다.
문자열이나 리스트의 크기가 non-zero 이면 true 이고, empty 이면 false 이다.
간단한 비교문이 테스트에 사용된다. 표준 비교 작업 문법은 C 와 같다.
< (less than), > (greater than), == (equal to), <= (less than or equal to)
, >= (greater than or equal to) and != (not equal to). -
반복문의 본문은 들여쓰기를 한다: 파이썬에서 들여쓰기는 문장을 그룹핑하는 방법이다.
대화형 모드의 각 라이별로 탭 또는 스페이스를 사용해서 들여쓰기를 해야 한다.
실제로 텍스트 에디터 에서 파이썬을 코딩 할때는 좀 더 복잡한 들여쓰기가 필요 하다.
대부분의 텍스트 에디터는 자동 들여쓰기 기능을 제공한다. 대화형 모드에서 여러 문장을 입력할때
명령행을 종료 하려면 공백 라인을 입력해야 한다.(파서는 마지막 명령행을 구분하지 못하기 때문)
같은 블럭 내의 각각의 라인은 같은 크기의 들여쓰기를 해야 한다. -
print() 함수는 주어진 아규먼드의 값을 출력한다. 이렇게 프린트 함수를 사용해서 출력하는 것은
일반적은 다중 아규먼트, 소수점, 문자열의 표현식을 출력 하는것과는 다르다.
(예전에 계산기 예제를 보면 알수 있다)
문자열은 " 또는 ' 가 제거된 상태로 출력되고, 아이템들 사이에 공백이 출련된다.
이렇게 print() 함수를 사용하면 보기 좋은 형태로 출력된다.i = 256*256 print('The value of i is', i) The value of i is 65536
print() 함수의 end 키워드는 출력 이후 다음 출력 시 새로운 라인으로 이동하는것을 막는다.
>>> a, b = 0, 1
>>> while b < 1000:
... print(b, end=',')
... a, b = b, a+b
...
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
참고사항
-
** 연산자는 - 연산자 보다 먼저 실행된다. -32 는 -(32) 와 같다, 결과는 -9 가 된다.
만약 결과가 9 가 되기를 원한다면, (-3)**2 라고 적어야 한다. -
다른 언어 와는 다르게 ' 와 " 이 같은 의미를 갔고, 하나의 " 또는 ' 를 '' 와 "" 사이에
\ 추가 없이 사용 할 수 있다.(예: " I'm a boy")