본문 바로가기
AI 공부/파이썬

파이썬 (함수와 메소드)

by AI Sonny 2022. 7. 21.
728x90

함수란?

- 함수는 코드의 반복을 줄이거나 어떠한 기능을 하기 위해 특정 코드를 모아둔 것이다.

 

예시로는 (f(x) = 2x)가 있다.

 

메소드란?

객체(값)의 소속되어 있는 함수이다.

 

s = "ABCD"

len(s)  # 함수

s.lower()   # 메소드

컬렉션 자료형 (Collection data type)이란?

- 여러가지 요소를 하나로 묶어서 담을 수 있는 데이터 타입이다.

  • 문법적인 요소들 빼고 다 담을 수 있다.
  • 객체, 변수, 함수, 클래스 ... 등 담을 수 있다.
  • list, set, dict, tuple

자료형의 특징

- Sequence 자료형

  • 열거 되어있고, 연속되어 있다.
  • 순서와 순번(index)이 있다.

- mutable 자료형

  • 수정 가능한 객체(값)
  • 컬렉션 자료형: list, set, dict

-immutable 자료형

  • int, float, str, bool, tuple (컬렉션 타입)

list 형태

- Sequence 자료형

- mutable 자료형

  • 변경 가능 (추가,삭제, 수정 등)

- 중복 데이터 저장 가능

- []를 이용해서 만듦

 list의 메소드 종류

- append()

  • 리스트 제일 뒤에 값을 추가
lst = [1,2,3,4]
lst.append(0)

=> [1,2,3,4,0]

- pop()

  • 제일 뒤에 있는 데이터를 꺼내고 삭제
  • 인덱스 값을 줄 경우 해당 인덱스 값을 꺼내고 삭제
print(lst.pop())
print(lst)

print(lst.pop())
print(lst)

=>  4
    [0,1,2,3]
    3
    [0,1,2]
    
    
    
lst.pop(1)
lst

=> [0,2]

- extend()

  • 리스트와 리스트를 합친다.
lst = [1,2,3]
lst.extend([4,5,6])
lst

=> [1,2,3,4,5,6]

lst = [1,2,3]
lst.append([4,5,6])
lst

=> [1,2,3,[4,5,6]]

extend는 숫자들의 리스트를 합치기 때문에 append와 결과가 다르게 나온다.

 

append는 값을 뒤에 추가하는 개념이라 extend와 약간의 차이가 있다.

 

- insert()

  • 인덱스 위치에 값을 추가한다.
lst = [1,2,3]
lst.insert(0,9)
lst

=> [9,1,2,3]

- remove()

  • 리스트에서 값을 찾아 삭제한다.
lst = [10,20,30]
lst.remove(20)
lst

=> [10,30]

- del()

  • del 이라는 키워드를 사용하면 된다.
  • 리스트에 경우 특정 인덱스 값을 삭제
  • 메모리관리할 때 편함
lst = [10,20,30]
del lst[1]
lst

=> [10,30]

a = 1004	# 변수도 삭제 가능
del a
a
=> NameError: name 'a' is not defined

시퀀스의 특징

- Sequence는 순번이 있다.

  • 순번을 index 라고 한다

- 파이썬의 인덱스는 2종류가 있다.

  • 양수 인덱스
    • 0 부터 시작한다.
    • 왼쪽에서 오른쪽으로 1씩 증가
  • 음수 인덱스
    • -1부터 시작한다.
    • 오른쪽에서 왼쪽으로 1씩 감소

- 인덱스는 무조건 정수이다.

  • ex) lst[정수:정수:정수]

슬라이싱(Slicing)

- 인덱스를 사용해서 시퀀스를 잘라낸다.

- 시퀀스에 특정 범위를 가리킨다.

- 구조는 [start:end:step]과 같다.

- start ~ end-1 부분을 step만큼 건너 뛰면서 잘라낸다.

  • start, end, step 생략이 가능하다.
  • start를 생략하면 자동으로 0이 들어간다.
  • end를 생략하면 자동으로 시퀀스의 길이(len)가 들어간다.

 

728x90

댓글