Friday, January 05, 2007
Python/파이썬] 함수 정의 방법, 함수 인수(파라미터), 반환값; def Function
def 이라는 키워드(예약어)로 함수를 정의합니다.
C언어나 자바와 달리 { } 이런 중괄호로 함수의 시작과 끝을 정의하지는 않고,
들여쓰기(Indentation) 로, 함수의 본체와 끝을 정의하는데, 들여쓰기가 끝나는 곳이 함수의 끝입니다.
다른 언어에서는 들여쓰기나 공백 문자는 특별한 의미가 없지만, 파이썬에서는 절대적입니다. 따라서 스페이스 키를 마음대로 누를 자유가 없습니다.
단, 들여쓰기를 공백 몇 칸으로 하느냐는 자유입니다. 그러나 만약 공백 2칸으로 들여쓰기를 한다면, 같은 레벨의 들여쓰기에는 항상 2칸이어야 합니다. 3칸이거나 1칸이면 안되고, 그러면 다른 블록으로 간주됩니다. 즉, 들여쓰기에 일관성이 있어야 합니다.
파일명: 0.py
같은 블록에서, 공백 2칸으로 들여쓰기를 했다면 다음줄도 꼭 2칸이어야 합니다.
이렇게 3칸으로 들여쓰면 안됩니다. IndentationError: unexpected indent (들여쓰기 에러, 예상치 못한 들여쓰기) 이런 에러가 납니다. 물론 다른 언어에서도 이런 식의 들여쓰기는 보기에 좋지 않지만, 파이썬에서는 보기 좋지 않은 것에 그치는 것이 아니라 에러를 냅니다.
그리고 함수의, 입출력 자료형을 지정할 수는 없습니다. 숫자든 문자든 파이썬이 자동으로 판단합니다.
C언어나 자바와 달리 { } 이런 중괄호로 함수의 시작과 끝을 정의하지는 않고,
들여쓰기(Indentation) 로, 함수의 본체와 끝을 정의하는데, 들여쓰기가 끝나는 곳이 함수의 끝입니다.
다른 언어에서는 들여쓰기나 공백 문자는 특별한 의미가 없지만, 파이썬에서는 절대적입니다. 따라서 스페이스 키를 마음대로 누를 자유가 없습니다.
단, 들여쓰기를 공백 몇 칸으로 하느냐는 자유입니다. 그러나 만약 공백 2칸으로 들여쓰기를 한다면, 같은 레벨의 들여쓰기에는 항상 2칸이어야 합니다. 3칸이거나 1칸이면 안되고, 그러면 다른 블록으로 간주됩니다. 즉, 들여쓰기에 일관성이 있어야 합니다.
함수 만들기 예제 소스
파일명: 0.py
#!/usr/bin/python
# -*- coding: cp949 -*-
# 가장 간단한 함수 정의
def example():
print "안녕하세요"
# 함수 호출
example()
# 출력 결과: 안녕하세요
# 함수 인수(매개변수;파라미터)와 반환값 사용
def example2(x, y):
z = x + y
return z
# 함수 호출
print example2(2, 3)
# 출력 결과: 5
# 내부 루프의 들여쓰기
def example3():
print "안녕하세요"
for i in range(4):
print i
return 1234567890
# 함수 호출
print example3()
""" 출력 결과:
안녕하세요
0
1
2
3
1234567890
"""
# -*- coding: cp949 -*-
# 가장 간단한 함수 정의
def example():
print "안녕하세요"
# 함수 호출
example()
# 출력 결과: 안녕하세요
# 함수 인수(매개변수;파라미터)와 반환값 사용
def example2(x, y):
z = x + y
return z
# 함수 호출
print example2(2, 3)
# 출력 결과: 5
# 내부 루프의 들여쓰기
def example3():
print "안녕하세요"
for i in range(4):
print i
return 1234567890
# 함수 호출
print example3()
""" 출력 결과:
안녕하세요
0
1
2
3
1234567890
"""
같은 블록에서, 공백 2칸으로 들여쓰기를 했다면 다음줄도 꼭 2칸이어야 합니다.
z = x + y
return z
return z
이렇게 3칸으로 들여쓰면 안됩니다. IndentationError: unexpected indent (들여쓰기 에러, 예상치 못한 들여쓰기) 이런 에러가 납니다. 물론 다른 언어에서도 이런 식의 들여쓰기는 보기에 좋지 않지만, 파이썬에서는 보기 좋지 않은 것에 그치는 것이 아니라 에러를 냅니다.
그리고 함수의, 입출력 자료형을 지정할 수는 없습니다. 숫자든 문자든 파이썬이 자동으로 판단합니다.
tag: python
Python | 파이썬
<< Home