본문 바로가기
KNOU/요약정리

[python] 함수

by bottlesun 2023. 5. 16.
728x90

함수의 개념

특정 작업을 수행하는 명령문의 집합

→ 특정 작업을 함수의 이름으로 대체

→ 유사한 유형의 문제를 해결할 수 있도록 고려

사용자 정의 함수

→ 내장 함수와 달리 사용자의 목적에 따라 정의된 함수

반환 값에 따른 함수의 종류

→ 반환 값이 없는 함수 : print

→ 반환 값이 있는 함수 : input, format, int

반환 값이 없는 함수 정의

def 함수이름(매개변수 리스트):
		내용

→ 함수의 이름은 식별자

→ 매개변수 리스트는 0개 이상의 값을 함수 내부로 전달

→ 함수 내부에서 매개변수 리스트는 변수와 동일하게 사용

반환 값이 있는 함수 정의

def 함수이름(매개변수 리스트) :
		명령 블록
		return 반환값 리스트

→ 실행 후 결과 값을 남기는 함수

→ return 명령어와 반환 값을 열거

→ 함수 내부에 여러 개의 return 사용 가능

format 함수

실수 데이터 형식화

# 형식 지정자
format(3.141592,">10.2f")
# > = 정렬 방향
# 10 = 필드 폭
# .2 = 소수점 이하 자리수
# f = 데이터 타입
 
# 출력 값 [][][][][]3.142 // [] 는 공백

동시 할당의 개념

복수 개의 변수에 값을 동시에 할당

→ 변수의 개수에 상응하는 값을 콤마(,)로 나열

# 변수 할당
temp = 27
season = "summer"

# 이렇게 사용 가능
temp,seacon = 27,"summer"

교환(swap)

복수 개의 변수에 할당하는 값을 맞바꿈

# 일반적인 교환 방법
temp = hei
hei = rad
rad = temp

#파이썬의 교환 방법
rad, hei = hei , rad 
## 오름차순 예시
a = int(input("첫번째 숫자를 입력하세요: "))
b = int(input("두번째 숫자를 입력하세요: "))
c = int(input("세번째 숫자를 입력하세요: "))

def sort3(a, b, c) :
    if a > b :
        a,b = b,a
    if a > c :
        a,c = c,a
    if b > c :
        b,c = c,b

    print(a,b,c)

sort3(a,b,c)

함수의 확장

값의 전달

함수가 호출될 때, 값이 형식 매개변수에 전달 ( 변수 전달 x === 값이 전달 o )

x = 1
print("x의 값은" , x)
inc(x) #error inc가 선언되기 전

def inc(x):
		x = x + 1
		print("x의 값은 " , x)
print("x 의 값은" , x)

변수의 스코프

프로그램에서 변수가 참조 될 수 있는 영역

전역변수 : 프로그램 전체 영역에서 접근

지역변수 : 선언된 함수 내부에서만 접근

x = 1
print("x의 값은" , x)

def inc(x):
		y = x + 1
		print("y의 값은 " , y)

inc() 
print("x 의 값은" , x)
print("y 의 값은" , y) #error y 가 없음

기본 매개변수

함수 호출 시 매개변수가 전달되지 않을 경우

기본 값이 전달되는 매개변수

→ 일반 매개변수 앞에 위치할 수 없음

def 함수이름(매개변수 리스트, 매개변수 = 값 리스트) : 
		명령 블록
		return 반환값 리스트
print("hello" , "i am python")

print("hello","i am python" , sep=" ") #sep=" " 가 기본 매개변수

가변 매개변수

변수의 개수가 한정되어 있지 않음

→ 일반 매개변수 앞에 위치 할 수 없다

→ 1개만 사용 가능하다

728x90

'KNOU > 요약정리' 카테고리의 다른 글

[python] 모듈  (0) 2023.05.16
[python] 객체지향  (0) 2023.05.16
[python]구조적 프로그래밍 패러다임  (0) 2023.05.16
[python] 파이썬의 이해  (0) 2023.05.16
[C 프로그래밍] 메모리 동적 할당  (0) 2023.05.10

댓글