2023. 3. 15. 00:47ㆍ카테고리 없음

#01강. 함수란?
■파이썬에서 함수 정의하기
def addFun(x,y):
return x+y
print(addFun(100,500))
■함수는 파이썬에서 기본으로 제공하는 내장함수와 사용자가 직접 선언하는 사용자 함수가 있다.
내장 함수 | 사용자 함수 |
print('hello python!') str = input() # 어떠한 데이터를 입력받기 위해 존재 numbers = [1,2,3,4,5] # 리스트 numbers.sort() # 데이터 정렬 numbers.reverse() # 반대로 정렬 numbers.clear # 모든 아이템 삭제 |
사용자 스스로 특정기능의 함수를 만드는것. def printUserName(name): # 함수선언, 매개변수는 name print(f'{name}고객님, 안녕하세요.') def addCal(n1,n2): result = n1 + n2 |
■ 함수는 특정 기능을 재사용하기 위해서 사용한다.
추후에 반복해서 사용하기 위해 기능을 함수로 정의하고 필요할 때마다 씀
<예시>
def addCal():
n1 = int(input('n1 입력 : '))
n2 = int(input('n2 입력 : '))
print(f'n1+n2 = {n1+n2}')
addCal()
#02강. 함수 선언과 호출
함수는 def키워드, 함수명, : , 들여쓰기를 이용해서 선언한다.
정수 두 개를 입력하면 곱셈과 나눗셈 연산 결과를 출력하는 함수를 만들고 호출해보자.
def calFuc():
n1 = int(input('n1 입력: '))
n2 = int(input('n2 입력: '))
print(f'n1 * n2 = {n1 * n2}')
print(f'n1 / n2 = {round(n2 / n2)}')
calFuc()
#03강. 함수 내에서 또 다른 함수 호출
함수 내에서 또 다른 함수를 호출할 수 있다.
fun1()은 fun2()를 호출하고 fun2()는 fun3()을 호출한다.
def fun1():
print('fun1 호출!')
fun2()
print('fun2 호출 후에 실행!!')
def fun2():
print('fun2 호출!')
fun3()
def fun3():
print('fun3 호출!')
fun1()
▶ pass 를 이용해서 실행문을 생략할 수 있다. # 함수 선언 후 비워 두면 에러가 남.
def printTodayWeather():
pass
printTodayWeather()
다음과 같이 구구단 출력함수가 연쇄적으로 호출되도록 함수를 선언해보자.
def guguDan2(): # 2단
for i in range(1,10):
print('2 * {} = {}'.format(i, 2*i))
def guguDan3(): # 3단
for i in range(1,10):
print('3 * {} = {}'.format(i, 3*i))
guguDan2()
guguDan3()
#04강. 인수와 매개변수. 함수 호출 시 데이터를 넘겨주자!
def --> 함수 선언부
greet() --> 함수 호출부 / 호출부와 선언부의 관계를 맺어주는 것이 매개변수이다.
def greet(customer):
print('{}님, 안녕하세요'. format(customer))
greet('홍길동')
def greet2(customer1, customer2):
print('{},{}님 안녕하세요'.format(customer1, customer2))
greet2('홍길동', '박찬호')
매개변수의 개수에 맞게 인수를 입력해 주어야 합니다.
매개변수 개수가 정해지지 않은 경우 '*'를 이용한다.
def printNumber(*numbers): #데이터가 몇개인지 모르기 때문에 tuple형태이다.
for number in numbers:
print(number , end = "")
print()
printNumber()
printNumber(10)
printNumber(10,20)
printNumber(10,20,30)
Q) 국어, 영어, 수학 점수를 입력받고, 입력받은 점수를 이용해서 총점과 평균을 출력하는 함수를 만들어보자.
1. 함수를 선언한다.
2. 총점과 평균에 대한 변수를 선언하고 출력 형식을 써준다
3. 입력받을 데이터 변수명을 선언해준다.
def score(kor,eng,mat):
sum = kor+eng+mat
avg = sum/3
print(f'총점: {sum}')
print(f'평균: {round(avg,2)}')
kor = int(input('국어 점수 입력: '))
eng = int(input('영어 점수 입력: '))
mat = int(input('수학 점수 입력: '))
score(kor,eng,mat) # def의 출력결과를 가져온다
#05강. 데이터 반환. 함수 실행결과를 돌려주자
return 키워드를 이용하면 함수 실행 결과를 호출부로 반환할 수 있다.
함수가 return을 만나면 실행을 종료한다.
Q) 사용자가 길이(cm)를 입력하면 mm로 환산한 값을 반환하는 함수를 만들어보자.
1. cm를 mm로 환산하는 함수 선언하기.
2. 길이 입력 받기
3. returnValue 출력
def cm_mm(cm):
result = cm * 10
return result
length = float(input('길이(cm)입력: '))
returnValue = cm_mm(length)
print('returnValue : {}mm'.format(returnValue))
Q) 1부터 100까지의 정수 중에서 홀수인 난수를 반환하는 함수를 선언하자.
1. random 모듈을 import한다
2. 함수를 선언한다. 난수를 변수로 할당받은 후 조건문을 이용한다. --> return 난수
3. returnValue를 출력한다
def cm_mm(cm):
result = cm * 10
return result
length = float(input('길이(cm)입력: '))
returnValue = cm_mm(length)
print('returnValue : {}mm'.format(returnValue))
#06강. 지역변수와 전역변수. 함수 내에서만 사용할 수 있는 변수가 있다
* 전역변수 : 함수 밖에 선언된 변수로 어디에서나 사용은 가능하지만 함수 안에서 수정저장되지 않는다.
* 지역변수 : 함수 안에 선언된 변수로 함수 안에서만 사용 가능하다.
* global 키워드 : global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.
global 은 전역변수의 값을 수정한다
Q) 사용자가 가로, 세로를 입력하면 삼각형과 사각형의 넓이를 출력하는 항수를 만들어보자.
1. 함수 선언
2. 입력 변수 선언
3. 함수 호출
def area():
triangle = width * height / 2
square = width * height
print(f'삼각형의 넓이 : {triangle}')
print(f'사각형의 넓이 : {square}')
width = int(input('가로 길이 입력: '))
height = int(input('세로 길이 입력: '))
area()
Q) 방문객 수를 카운트하는 함수를 만들어보
전역변수 선언
방문객 증가할 때마다 1씩 증가하는 함수 선언 --> 함수 내부에서 변수 수정
totalVisit = 0
def count_Visitors():
global totalVisit
totalVisit += 1
print(f'누적 방문객: {totalVisit}')
count_Visitors()
count_Visitors()
count_Visitors()
count_Visitors()
count_Visitors()
#07강. 중첩함수
함수안에 또 다른 함수가 있는 형태이다.
Q) calculator()함수를 선언하고 calculator() 안에 덧셈, 뺄셈, 곱셈, 나눗셈 함수를 선언하자.
def calculator(n1, n2, operator):
def addCal():
print(f'덧셈 연산: {n1 + n2}')
def subCal():
print(f'뺄셈 연산: {n1 - n2}')
def mulCal():
print(f'곱셈 연산: {n1 * n2}')
def divCal():
print(f'나눗셈 연산: {n1 / n2}')
if operator == 1:
addCal()
elif operator == 2:
subCal()
elif operator == 3:
mulCal()
elif operator ==4:
divCal()
while True:
num1 = float(input('실수(n1) 입력: '))
num2 = float(input('실수(n2) 입력: '))
operatorNum = input('1. 덧셈, 2. 뺄셈, 3. 곱셈, 4. 나눗셈, 5.종료')
if operatorNum == 5:
print('Bye~~')
break
calculator(num1, num2, operatorNum)
#08강. lambda 함수. 함수 선언을 보다 간단하게 하자!!
Q) 삼각형, 사각형, 원의 넓이를 반환하는 lambda함수를 만들어보자.
1. lambda 함수 정의 --> 변수 지정
2. 가로, 세로, 반지름 길이 입력
3. print 넓이 하기 위해 변수 지정
4. print
getTriangleArea = lambda n1, n2 : n1 * n2 / 2
getSquareArea = lambda n1, n2 : n1 * n2
getCircleArea = lambda r : radius * radius * 3.14
width = int(input('가로 길이 입력: '))
height = int(input('세로 길이 입력: '))
radius = int(input('반지름 길이 입력: '))
triangleValue = getTriangleArea(width, height) # 삼각형의 넓이 = 삼각형함수(n1, n2)
squareValue = getSquareArea(width,height) # 사각형의 넓이 = 사각형함수(n1, n2)
radiusValue = getCircleArea(radius) # 원의 넓이 = 원넓이함수(radius)
print(f'삼각형 넓이: {triangleValue}')
print(f'사각형 넓이: {squareValue}')
print(f'원 넓이: {radiusValue}')
※ 이 게시물은 제로베이스 취업 스쿨 강의를 참고하여 작성된 스터디 노트입니다.