python 집합, 가변매개변수, 기본값

강정우·2022년 7월 15일
0

python

목록 보기
6/13
post-thumbnail

1. 집합

  • 집합에 관련된 것들을 쉽게 처리하기 위해 만든 자료형
  • 집합은 중복을 허용하지 않음
  • 얘도 dictionary 처럼 순서가 없는 자료형
  • 값을 indexing으로 접근하기 위해 list나 tuple로 변환
s3 = set([4,7,2,1,3])
li1 =list(s3)
tu1 =tuple(s3)
  • 위처럼 앞에 자료형만 붙이면 해당 자료형이 돼버림

    1) 교집합

  1. 연산기호로 하는 법 : 집합명1 & 집합명2
  2. 함수로 하는 법 : 집합명1.intersection(집합명2)

    2) 합집합

  3. 연산기호로 하는 법 : 집합명1 | 집합명2
  4. 함수로 하는 법 : 집합명1.union(집합명2)
  • 단, 중복은 불가능하다

    3) 차집합

  1. 연산기호로 하는 법 : 집합명1 - 집합명2
  2. 함수로 하는 법 : 집합명1.difference(집합명2)

    4) 추가 및 삭제

  • 값 1개 추가하기 : 집합명.add(value)
    add함수를 써도 순서와 상관없이 들어감.
s1 = set([1,2,3,4,5])
s1.add(0)

#result
## {0, 1, 2, 3, 4, 5}
  • 값 여러개 추가하기 : 집합명.update(리스트 | 튜플)
s1.update([6,7,8])

#result
## {0,1,2,3,4,5,6,7,8}
  • 값 삭제하기 : 집합명.remove(value)
s1.remove(7)

#result
## {0,1,2,3,4,5,6,8}

2. 함수

  • 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합
  • 반복작업을 줄일 수 있고 모듈화로 인하여 가독성이 좋아진다. 또한 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때에도 손귑게 유지보수가 가능하다.
  • 매개 변수의 datatype이 정해져있는 것이 아니기 때문에 실행문 안의 error 소요가 없다면 어떤 datatype이 들어가도 좋다.
def number_sum(num1, num2):
    return num1 + num2
    
data = number_sum(1,2)		//가능
data = number_sum([1,2,3],[4,5,6])		//가능
data = number_sum("abc","def")		//가능

1) 가변 매개변수(variable parameters)

  • 함수 호출시 몇개의 인수가 전달될지 알 수 없다면, 사용자가 직접 매개변수의 개수를 정할 수 있도록 선언.
def add(*agrs,op):
    num = 0
    for i in agrs:
        num += i
    return num
# 위와 같이 쓰면 Type error가 발생함.
  • 따라서 아스타리스크의 arguments 들은 반드시 마지막에 써줘야함.
def add_sub(num1, num2):
    return num1+num2, num1-num2
add_sub(10,7)
  • return 키워드는 한번밖에 못 쓰지만 return 안에 한방에 여러개를 집어넣을 수 있다.
  • 튜플type으로 한방에 return할 수 있다. 따라서 아래와 같은 것도 실행 가능
# 이 원리를 이용하여
a,b=[10,20]
print(a)
print(b)

n1, n2 = add_sub(7,10)

2) 기본값 설정(default parameters)

def power_of_N(num, temp=10, power=2):
    return num**power
power_of_N(2,power = 3)

3. 기타 jupyter notebook

  • 함수를 선언 및 수정하고나서 반드시 실행을 해줘야 적용됨.
  • doc string만드는 법 : 작은 따옴표 3개의 주석처리로 표현 가능하다.
profile
智(지)! 德(덕)! 體(체)!

0개의 댓글