Python
(코딩도장 부분)
for
for와 range 사용하기
- for 반복문의 대표적인 사용방법중 하나이다.
for 변수 in range(횟수):
반복할 코드
- range는 연속된 숫자를 생성한다.
- for 반복문과 range를 같이 쓰면 range에서 in으로 숫자를 하나씩 꺼내서 반복하는 방식이다. 그리고 for는 숫자를 꺼낼 때마다 코드를 실행시킨다.
- 코딩도장에 있는 간단한 그림을 참조하자.
- range(100)은 0부터 99까지 숫자 100개를 생성하게 된다. 그리고 for는 in으로 숫자를 하나씩 꺼내서 변수 i에 저장하고 print를 실행한다.
- 이처럼 for 반복문은 반복횟수가 정해져 있을 때 주로 사용한다.
- 파이썬 3에서 range는 객체(반보 가능한 객체)를 만들어낸다.
range(10)
range(0, 10)
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- range(5, 11)의 경우 5부터 10까지이다. 즉, 마지막 숫자는 range의 끝나는 숫자보다 1이 작다.(끝나는 숫자는 생성된 숫자에 포함되지 않음)
- range(0, 10, 2) -> 0부터 2씩 상승하지만 10은 포함되지 않음 // 0, 2, 4, 6, 8
- range(10, 0) -> 출력되지 않음 // range는 숫자가 증가하는 기본 값이 양수이기 때문.
- range(10, 0, -1) -> 1씩 감소 // 0은 포함되지 않음
- reversed(range(10)) -> 0부터 9까지 숫자를 반대로 뒤집음
for문과 시퀀스 객체
- for는 리스트, 튜플, 문자열 등 시퀀스 객체로 반복할 수 있다.
a = [10, 20, 30]
for i in a:
print(i)
>>> 10
20
30
fruits = ('apple', 'orange', 'grape')
for fruit in fruits:
print(fruit)
>>> apple
orange
grape
for letter in 'Python':
print(letter)
>>> P
y
t
h
o
n
(repl 부분)
Lists
-
List는 [], 즉 대괄호 안에 원하는 값을 나열하는 식으로 생성하며, 각각의 값들은 쉼표를 사용해서 구분한다.
-
List에 저장되어 있는 값을 element 라고 한다.
변수(Variable) = [elemnet, element, element]
-
string 외에도 숫자, boolean, 등 모든 타입의 값을 저장 가능하며 서로 다른것끼리고 같이 저장 가능하다.
-
List는 값들이 순차적으로 저장된다 = 순서가 존재한다.
-
List에서 순서는 0번 부터 시작되는데, 이러한 순서를 index라고 한다. 즉, index는 0번 부터 n-1번까지 있다.(n은 List의 총 길이)
korea_provinces[0] -> korea_province 는 List가 지정된 변수 이름이고, 대괄호 안에 있는 숫자가 읽어들이고자 하는 element의 index이다.
-
리스트의 총길이를 구하는 함수는 len 함수이다. length = len(inputs)
Adding and Changing Elements to Lists
- List의 특징중 하나는 수정이 가능하다는 점이다. element를 추가하거나 변경할 수 있다.
-
Append
-
+
- 추가하고자 하는 element가 한 개 이상일때 append 대신에 +를 사용할 수 있다.
- List에서 + 를 사용하여 element를 추가할때는 대괄호를 사용해서 리스트 형태로 만들고 추가해야한다. 즉, list와 list를 합하는게 + 이다.
-
insert
-
Empty List
- 처음에 비어있는 List를 생성한 뒤, 나중에 element를 추가 할 수도 있다.
- my_list = []\
-
Updating Elements
List Slicing
- 리스트의 일부분을 따로 copy할 수 있는데, 이것을 slicing이라고 한다.
students = ["라이언", "튜브", "어피치", "무지", "네오", "프로도", "콘"]
sub_students = students[1:4]
>>> ["튜브", "어피치", "무지"]
list_name[start:stop]
- 먼저 list이름이 위치하고 대괄호가 열린다.
- 부분적인 리스트가 시작할 첫번째 요소(포함) 인덱스 번호가 나오고
- :로 나눠주고 부분적인 리스트가 멈추는 요소(비포함) 인덱스 번호가 나오고 대괄호를 닫아준다.
slicing steps
- start와 stop 말고도 step이 있다.
list_name[start:stop:step]
- 그 값만큼 건너뛰어 가져오는 기능이다.
- step은 optional이라서 선언하지 않아도 된다. 선언하지 않으면 default 값이 1로 지정되있다.
slicing tip
- slicing 에서 첫번째 start index를 빈칸으로 두면 list의 첫 요소부터 시작한다.
- 반대로 stop index를 빈칸으로 두면 list의 끝까지 갖고오게된다.
Copying. Not Modifying
- slicing에서 기억해야할것은 오리지널 list를 수정하지 않는다는 점이다.
- 새로운 list를 만들어 낸다는 의미이기에 잘 기억해둬야한다.