💬 오늘의 공부시간 PM 10:00 ~ AM 1:00

기초를 이해를 다 하기도 전에 중급이라니...
정말이지 이해하면서 강의 듣는 건 무리일까?
더 나를 악착같이 몰아야하나...


♥ 좋은말
애매한 재능을 뛰어 넘는 유일한 방법은 꾸준히, 주구장창, 질리더라도 계속,
멈추지 않고 그냥 계속 하는 것.

🔥 2주차 todo 리스트 (5/8~5/14)

파이썬 기초문풀4
파이썬 기초문풀5
파이썬 중급1
함수란
함수선언과 호출
함수내에서 또 다른 함수 호출
인수와 매개 변수
데이터변환
파이썬 중급2
지역변수와 전역변수
중첩함수
lambda함수
모듈
모듈제작
파이썬 중급3
파이썬 중급5~6
파이썬 중급7
파이썬 중급8~9
파이썬 중급문풀1~2
파이썬 중급문풀3
파이썬 중급문풀4

💻 핵심 내용 정리

📝 함수는 기능이라고 생각하자.

  • 파이썬의 함수는 수학의 함수와 동일하다.
  • 기본으로 제공하는 내장함수, 사용자가 직접 선언하는 사용자 함수가 있다.
  • 함수의 특정 기능을 반복 사용하기 위해서 사용한다.
  • 함수의 입력은 한 개가 아니라 여러 개가 되어도 상관없다.
  • 입력 변수가 여러개이면 쉼표, 영어로 comma 를 사용하여 함수를 정의한다.
  • 입력 변수는 원하는 만큼 얼마든지 만들 수 있다.
  • 힘수내에서 또 다른 함수를 호출 할 수 있다.
  • pass를 이용해서 실행문을 생략 할 수 있다.

함수 선언

def 함수이름 (입력변수이름):
    출력변수를 만드는 명령
  	return 출력변수이름
def 함수이름(입력변수1, 입력변수2, 입력변수3):
   출력변수를 만드는 명령
   return 출력변수이름

함수 호출

함수이름 (입력변수이름)
함수이름(입력변수1, 입력변수2, 입력변수3):

예시

# 오늘 날씨를 출력하는 함수를 선언하고 3번 호출하자.
def printWeatherInfo():
    print('오늘 날씨는 맑습니다. 기온은 25도 입니다.')

printWeatherInfo()
printWeatherInfo()
printWeatherInfo()


# 정수 두개를 입력하면 곱세과 나눗셈 연산 결과를 출력하는 함수를 만들고 호출해보자.
def calfun():
    n1 = int(input('n1 입력: '))
    n2 = int(input('n2 입력: '))

    print(f'n1 * n2 = {n1 * n2}')
    print(f'n1 / n2 = {round(n1 / n2, 2)}')

calfun()

📝 인수와 매개변수

  • 함수 호출시 함수에 데이터를 전달 할 수 있다.
  • 함수에 대입할 데이터 → 인수(파라미터)
  • 함수 선언문에서 호출문으로 갈때 필요한 만큼 연결(관계)해주는 함수 → 매개변수
  • 인수와 매개변수 개수는 일치해야한다.
  • 매개변수 개수가 정해지지않은 경우 '*'를 이용한다.
  • return 키워드를 이용하면 함수 실행 결과를 호출부로 반환 할수 있다.
  • 함수가 return를 만나면 실행을 종료한다.

📝 전역변수

  • 함수 밖에 선언된 변수
  • 어디에서나 사용은 가능 하지만 함수 안에서 수정 할 수 는 없다.
  • 바깥의 변수와 같은 이름의 변수를 함수 안에 만들면 안 된다.
  • 함수 안에서는 함수 바깥에 있는 변수의 값을 바꿀 수 없다.
  • 함수 안에서 함수 바깥에 있는 변수의 값을 꼭 바꿔야만 한다면 함수 이름 앞에 global 키워드를 선언해 주면 된다.

예시

z = 3

def f2(x):
    y = z * x
    print("y =", y)
    print("z =", z)
    return y
z = 3

def f4(x):
    global z
    z = 99
    y = z * x
    print("y =", y)
    print("z =", z)
    return y

📝 지역변수

  • 함수 안에 선언된 변수
  • 함수 안에서만 사용가능하다.
  • 이름이 같은 변수가 있다고 하더라도 별개의 변수가 된다.
  • 함수 바깥에 혹시라도 y라는 변수가 있으면 del 명령으로 지운다.
    만약 기존에 y라는 변수가 있었으면 오류가 출력되지 않고 지워지기만 한다.

📝 중첩함수

  • 함수 안에 또다른 함수가 있는 형태이다.
  • 내부함수를 함수 밖에서 호출 할 수 없다.

📝 중첩함수

  • 함수 안에 또다른 함수가 있는 형태이다.
  • 내부함수를 함수 밖에서 호출 할 수 없다.

📝 lambda함수

  • 함수 선언을 보다 간단하게 할 수 있다.

예시

def calculator(n1, n2):
    return n1 + n2
returnValue =calculator(10, 20)
print(f'returnValue: {returnValue}')


calculator = lambda n1, n2: n1 + n2
returnValue = calculator(10,20)
print(f'returnValue: {returnValue}')

문제풀이_01

다음과 같이 출력 될수 있도록 이동거리와 이동시간을 반환하는 함수를 만들어 보자.
 산술연산 계산기를 함수를 이용해서 만들어보자
 
def add(n1, n2) :
    return n1 + n2
def sub(n1, n2) :
    return n1 - n2
def mul(n1, n2) :
    return n1 % n2
def div(n1, n2) :
    return n1 / n2
def mod(n1, n2) :
    return n1 * n2
def flo(n1, n2) :
    return n1 // n2
def exp(n1, n2) :
    return n1 ** n2

while True:
    print('-' * 60)
    selectNum = int(input('1.덧셈, 2. 뺼셈, 3.곱셈, 4.나눗샘, 5.나머지, 6.몫, 7.재곱승, 8.종료'))
    if selectNum == 8:
        print('Bye~~')
        break

    num1 = float(input('첫번째 숫자 입력 : '))
    num2 = float(input('두번째 숫자 입력 : '))

    if selectNum == 1:
        print(f'{num1} + {num2} = {add(num1, num2)}')

    elif selectNum == 2:
        print(f'{num1} - {num2} = {sub(num1, num2)}')

    elif selectNum == 3:
        print(f'{num1} * {num2} = {mul(num1, num2)}')

    elif selectNum == 4:
        print(f'{num1} / {num2} = {div(num1, num2)}')

    elif selectNum == 5:
        print(f'{num1} % {num2} = {mod(num1, num2)}')

    elif selectNum == 6:
        print(f'{num1} // {num2} = {flo(num1, num2)}')

    elif selectNum == 7:
        print(f'{num1} ** {num2} = {exp(num1, num2)}')

    else:
        print('잘못 입력했습니다. 다시 입력해주세요!')

print('-' * 60)

💡 오늘을 마무리하면서 ...

건강상태가 안좋아서 집중이 잘 안된다 ㅠㅠ
이겨내야해 제인아 ㅠ

😃 Busy Study _ 새벽반 PM 10:00 ~ AM 2:30

여러분 화이팅!! 우리 모두 다 잘 될거예요!

profile
늦깎이 DA/DS 취준생, 이곳은 스터디노트 겸 성장기록장(소통환영이요💜)

0개의 댓글