20/03/25 TIL

Magit·2020년 3월 25일
0

TIL

목록 보기
3/16
post-custom-banner

Python


(코딩도장 부분)

for

for와 range 사용하기

  • for 반복문의 대표적인 사용방법중 하나이다.
for 변수 in range(횟수):
	반복할 코드
  • range는 연속된 숫자를 생성한다.
  • for 반복문과 range를 같이 쓰면 range에서 in으로 숫자를 하나씩 꺼내서 반복하는 방식이다. 그리고 for는 숫자를 꺼낼 때마다 코드를 실행시킨다.
  • 코딩도장에 있는 간단한 그림을 참조하자.
    for_range
  • range(100)은 0부터 99까지 숫자 100개를 생성하게 된다. 그리고 for는 in으로 숫자를 하나씩 꺼내서 변수 i에 저장하고 print를 실행한다.
  • 이처럼 for 반복문은 반복횟수가 정해져 있을 때 주로 사용한다.
  • 파이썬 3에서 range는 객체(반보 가능한 객체)를 만들어낸다.
    range(10)
    range(0, 10)
    >>> list(range(10)) #range 객체를 리스트로 만듦
    [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를 추가하거나 변경할 수 있다.

  1. Append

    • List에 새로운 element를 추가하기 위해서 append 함수를 사용한다.
      <list name>.append(element)
    • 위 코드와 같은 형식으로 사용된다.
    • add가 아닌 append라는 이름에서 알 수 있듯이 마지막 element의 다음 칸에 덧붙이게된다.

  2. +

    • 추가하고자 하는 element가 한 개 이상일때 append 대신에 +를 사용할 수 있다.
    • List에서 + 를 사용하여 element를 추가할때는 대괄호를 사용해서 리스트 형태로 만들고 추가해야한다. 즉, list와 list를 합하는게 + 이다.

  3. insert

    • insert는 append 나 + 와는 다르게 원하는 위치에 element를 삽입할 수 있다.
      <list name>.insert(새롭게 삽입하고자 하는 위치 index, 새로운 element값)
  4. Empty List

    • 처음에 비어있는 List를 생성한 뒤, 나중에 element를 추가 할 수도 있다.
    • my_list = []\

  5. Updating Elements

    • 기존의 element를 수정할 수 있다.
      <list name>[바꾸려는 element의 index] = <new element>

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를 만들어 낸다는 의미이기에 잘 기억해둬야한다.
profile
이제 막 배우기 시작한 개발자입니다.
post-custom-banner

0개의 댓글