세모이
개발 계발
세모이
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 알고리즘 (1)
    • 자바스크립트 (29)
    • 리액트 (10)
    • HTML&CSS (2)
    • TIL (26)
    • 파이썬 (8)
    • Dev (1)
    • 데일리 (3)
      • 2023 (3)
    • 에러일기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 개발자 도구 Network
  • 옵셔널 체이닝
  • 자바스크립트 strict mode
  • 자바스크립트 전역 변수의 문제점
  • const let 키워드와 블록레벨 스코프
  • html 신기한 태그
  • 자바스크립트 생성자 함수에 의한 객체 생성
  • 모던 자바스크립트 deep dive
  • 자바스크립트 함수와 일급 객체
  • 자바스크립트 프로토타입
  • 함수
  • &&연산자
  • 자바스크립트 빌트인 객체
  • 시멘틱 태그
  • 모던 자바스크립트
  • 자바스크립트
  • 자바스크립트 깊은 복사 얕은 복사
  • 자바스크립트 프로퍼티 어트리뷰트
  • 모던 자바스크립트 deep deive
  • 리액트 key

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
세모이

개발 계발

3. 파이썬 함수(python function)
파이썬

3. 파이썬 함수(python function)

2021. 1. 29. 09:55
반응형

파이썬 함수의 구조

 def 함수명(매개변수):
     <수행할 문장1>
     <수행할 문장2>
     ...

함수는 시스템에 내장되어 있는 내장 함수, 사용자가 만든 사용자 정의 함수, 라이브러리 형태로 모듈화시킨 외장 함수가 있다

def gugu(a,b):        #a,b는 매개변수 : 함수에 입력으로 전달된 값을 받는 변수
    return a+b

print(gugu(2,5))      #2,5는 인수 : 함수를 호출할 때 전달하는 입력값

여러개의 입력값을 받는 함수

 def 함수이름(*매개변수):
     <수행할 문장>
     ...
def many_add(*num):     #매개변수 이름 앞에 *을 붙이면 입력값을 전부 모아서 튜플로 만들어 주
    sum=0
    for i in num :
        sum=sum+i
    return sum

print(many_add(1,2,3,))
def add_mul(choice, *num) :
    if choice=='add':
        result=0
        for i in num:
            result=result+i
    elif choice=='mul':
        result=1
        for i in num:
            result=result*i
    else: result='오류'
    return result


print(add_mul('add', 1,2,3,4,5,6,7,8,9,10,))
print(add_mul('mul', 1,2,3,4,5,6,7,8,9,10,))
print(add_mul('mul'))       #인수와 매개변수의 수가 일치하지 않아도 함수 실행
#print(add_mul())            #인수가 없으면 오류
print(add_mul('??'))

### 함수의 결과값은 1개이다

def add_and_mul(a,b):
     return a+b, a*b

print(add_and_mul(3,5))     # 튜플로 결과 값을 갖게됨

result1,result2=add_and_mul(3,5)    #튜플로 된 값을 분리
print(result1)
print(result2)

### 매개 변수에 초깃값 설정하기

def say_myself(name, old, man=True):
    print("나의 이름은 %s 입니다." % name)
    print("나이는 %d살입니다." % old)
    if man:
        print("남자입니다.")
    else:
        print("여자입니다.")


say_myself('홍길동',27)
say_myself('영심이',24,False)
say_myself('고길동',30, True)

### 초기화시키고 싶은 매개변수를 항상 뒤쪽에 놓는 것을 잊지 말자.
IndentationError: unexpected indent

def say_myself(name, man=True, old):
     print("나의 이름은 %s 입니다." % name)
     print("나이는 %d살입니다." % old)
     if man:
         print("남자입니다.")
     else:
         print("여자입니다.")

 say_myself('김길',27)

###함수 안에서 함수 밖의 변수를 변경하는 방법

1. return 사용하기
a = 1
def vartest(a):
    a = a +1
    return a

a = vartest(a)
print('return1',a)
a = vartest(a)
print('return2',a)
a = vartest(a)
print('return3',a)
# 2. global 명령어 사용하기
a = 10
def vartest():
    global a    # 함수 안에서 함수 밖의 a 변수를 직접 사용하겠다는 뜻(좋은 방법은 아니다)
    a = a+1

vartest()
print('global1',a)
vartest()
print('global2',a)
vartest()
print('global3',a)

### lambda

def a(a,b):
    return a+b

add=lambda a,b:a+b
print(add(3,5))
print(add)

## 내장함수

enumerate() - 순서가 있는 자료형(리스트,튜플, 문자열) 입력하면 인덱스를 포함한 요솟값을 반환

num=(10,20,30,40,50)
for i in num :
    print(i)

print(enumerate(num))
for i in enumerate(num) :
    print(i)
for i,v in enumerate(num) :
    print('index:%d value:%d' %(i,v))

str() - 입력으로 들어온 데이터를 문자열 객체로 반환

print(type(20))
print(type(str(20)))
a=[1,2,3]
print(str(a))   # 리스트 [1,2,3]을 -> '[1,2,3]' 으로 변환하여 반환

join() - 리스트의 요소들을 지정한 구분자로 구분해 문자열로 반환(리스트 내 요소들을 문자열로 합칠 때 많이 사용)

split() - 문자열을 특정 구분자를 기준으로 분리해 리스트로 반환

v=['cat', 'dog','monkey','tiger']
v1='/'.join(v)
print(v1)
print(type(v1))

v2=v1.split('/')
print(v2)
print(type(v2))

id() - 객체를 입력받아 객체의 고유 주솟값(레퍼런스)을 반환

print(id('str'))

find() - 특정 문자열을 찾기 위해 사용 / 그 문자열의 시작 위치를 반환하고 찾지 못하면 -1을 반환

str='hello'
print(str.find('l'))
print(str.find('a'))

strip() - 주어진 문자열 양쪽 끝의 공백을 제거

str='  hello my name is gildong  '
print(str)
print(str.strip())

filter() - 개별 요소를 반복적으로 셀 수 있는 객체(iterable object)를 입력받아 각 요소를 함수로 수행한 후 결과가 True인것만 묶어서 반환

def func(num) :
    list=[]
    for i in num:
        if(i%2==0) : list.append(i)
        else : pass
    return list
number=(1,2,3,4,5,6,7,8,9,10)
print(func(number))

def ev(num) :
    return num%2==0 #짝수면 true 반환


print(filter(ev,number))
print(list(filter(ev,number)))      #list() -> 인자로 들어온 데이터(객체)를 리스트로 반환

lambda - 함수를 생성할 때 사용 - 익명 함수

def t2(num):
    return num*2
t=lambda x: x*2

print(t2(10))
print(t(10))

print(list(filter(lambda num :num%2==0, number)))

map - 개별 요소를 반복적으로 셀 수 있는 객체를 입력받아 각 요소를 함수로 수행한 후 결과를 묶어서 반환

number=[1,2,3,4,5,6]
print(list(map(lambda x:x**3, number)))
반응형

'파이썬' 카테고리의 다른 글

6. 파이썬 예외(python exception)  (0) 2021.02.07
5. 파이썬 모듈(python module)  (0) 2021.01.30
4. 파이썬 클래스 (python class)  (0) 2021.01.29
2. 파이썬 제어문(python control)  (0) 2021.01.25
1. 파이썬 데이터 타입(python data type)  (0) 2021.01.21
    '파이썬' 카테고리의 다른 글
    • 5. 파이썬 모듈(python module)
    • 4. 파이썬 클래스 (python class)
    • 2. 파이썬 제어문(python control)
    • 1. 파이썬 데이터 타입(python data type)
    세모이
    세모이
    개발 공부!

    티스토리툴바