코딩고치

[파이썬][기초] 추상화 본문

파이썬/기초

[파이썬][기초] 추상화

코딩고치 2020. 5. 18. 02:17

지정 연산자

  • 지정 연산자(=)
    • 왼쪽의 식을 계산하여 오른쪽의 변수에 입력
x = 8
x = x + 4
print(x)
12

함수 실행 순서

def factorial(n):
    if n <= 1:
        return 1
    else:
        return n * factorial(n - 1)
print("함수 호출 전")
print(factorial(10))
print("함수 호출 후")
함수 호출 전
3628800
함수 호출 후
  • return문
    • 값을 돌려줌과 동시에 함수를 종료시켜줌

옵셔널 파라미터

  • 기본값을 가지고 있는 파라미터
  • 함수 호출 시 해당 파라미터의 값을 적어주지 않을 경우 기본값 출력
def food(name, price, origin = '한국'):
    print(f'음식: {name}')
    print(f'가격: {price}')
    print(f'원산지: {origin}')
food('불고기', '4000원')
음식: 불고기
가격: 4000원
원산지: 한국
food('LA갈비', '5000원', '미국')
음식: LA갈비
가격: 5000원
원산지: 미국
  • 마지막 origin 파라미터의 값을 입력해 주지 않으면 한국이 출력됨.
  • 주의사항
    • 옵셔널 파라미터는 함수 파라미터의 가장 마지막에 써주어야 함
    • 중간에 껴있으면 에러 발생
def food(name, price = '5000원', origin):
    print(f'음식: {name}')
    print(f'가격: {price}')
    print(f'원산지: {origin}')
  File "<ipython-input-14-c80b88c40b63>", line 1
    def food(name, price = '5000원', origin):
            ^
SyntaxError: non-default argument follows default argument
def food(name, price = '5000원', origin = '한국'):
    print(f'음식: {name}')
    print(f'가격: {price}')
    print(f'원산지: {origin}')
food('불고기')
음식: 불고기
가격: 5000원
원산지: 한국

Syntactic Sugar

x = x + 2
-> x += 2

x = x - 2
-> x -= 2

x = x * 2
-> x *= 2

x = x / 2
-> x /= 2

x = x % 2
-> x %= 2

scope

def func():
    # y는 로컬변수
    y = 1
    print(y)
func()
1
print(y)
---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-25-d9183e048de3> in <module>
----> 1 print(y)


NameError: name 'y' is not defined
  • y는 로컬 변수이기 때문에 함수 안에서만 사용되는 변수
  • 함수 밖에서 호출하려고 하면 에러 발생
#z는 글로벌 변수
z = 1

def func2():
    print(z)
func2()
1
print(z)
1
  • z는 글로벌 변수로 전역에서 사용 가능
  • 함수 내에서와 함수 밖에서 같은 값이 출력됨
a = 1

def func3():
    a = 2
    print(a)
func3()
2
print(a)
1
  • 함수를 호출할 때는 함수 내에서 정의한 로컬 변수 a가 출력
  • print(a)는 글로벌 변수 a 출력
  • 함수의 파라미터도 로컬 변수에 해당

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

[파이썬][기초] input()  (0) 2020.05.30
[파이썬][기초] 제어문  (0) 2020.05.18
[파이썬][기초] 자료형  (0) 2020.05.15
[파이썬][기초] 04. 함수  (0) 2020.04.11
[파이썬][기초] 03. 변수  (0) 2020.04.11
Comments