📗 5일차 공부 내용 요약
[ 파이썬 ]
1. 함수 : 함수의 개념과 선언 및 호출 방법, 인수와 매개변수, 데이터반환, 중첩함수, lambda함수에 대해 배웠다.
2. 변수 : 모듈의 개념, 모듈 제작 및 사용 방법, 실행파일에 대해 배웟다
3. 패키지 : 패키지의 개념과 생성 방법에 대해 배웠다
📖 5일차 공부 내용 자세히
1. 함수
■ 함수의 개념
- 함수는 '기능'이라고 생각하자
- 파이썬의 함수는 수학의 함수와 동일하다고 생각하면 되는데, input을 넣으면 output이 나온다
- 파이썬에서 기본적으로 제공하는 내장함수와 사용자가 직접 선언하는 사용자 함수가 있다
- 함수는 특정 기능을 재사용하기 위해서 사용한다
■ 함수의 선언과 호출
def 함수명( ) :
실행문
- def 키워드, 함수명 , : , 들여쓰기를 이용해서 선언한다
- 함수 호출 시에는 함수명( )을 쓰면 된다
- 함수 내에서 또 다른 함수를 호출할 수 있다
- pass를 이용해서 실행문을 생략할 수 있다.
#오늘 날씨를 출력하는 함수를 선언하고 3번 호출해보자
def todayWether():
print('오늘 날씨는 맑습니다. 기온은 25도입니다.')
todayWether()
todayWether()
todayWether()
#함수 내에 또 다른 함수 호출
def fun1():
print('fun1 호출!')
fun2()
def fun2():
print('fun2 호출!')
fun3()
def fun3():
print('fun3 호출!')
fun1()
'''
fun1 호출!
fun2 호출!
fun3 호출!
■ 인수와 매개 변수
def greet(customer) :
print(f'{customer} 고객님 안녕하세요.')
greet('홍길동')
- 위 코드에서 customer은 매개변수, 홍길동이 인수이다
- 인수와 매개변수의 개수는 일치해야 한다
- 매개 변수 개수가 정해지지 않은 경우 *을 이용한다
def printNumber(*numbers) :
for number in numbers : #numbers에 들어온 인수의 개수만큼 반복
print(number, end='')
print()
printNumber()
printNumber(1)
printNumber(1,2)
printNumber(1,2,3)
'''
1
12
123
'''
💡 위 예제를 작성하면서, 기존에 for문은 range와 함께 사용하는 법 밖에 안배워서 for문의 기본 구조에 대해 알아보고 기록해보았다.
[파이썬] for문 / 기본 구조
📌 for문의 기본구조 for 변수 in 리스트(또는 튜플,문자열): 실행문 리스트(또는 튜플, 문자열)의 첫번재 요소부터 마지막 요소까지 차례로 변수에 대입되면서 실행문이 수행된다 odd = [ 1, 3, 5, 7, 9
kim-dem-dem.tistory.com
■ 데이터 반환
- return 키워드를 이용하면 함수 실행 결과를 호출부로 반환할 수 있다
- 함수가 return을 만나면 실행을 종료한다
#사용자가 길이(cm)를 입력하면 mm로 환산한 값을 반환하는 함수를 만들어보자
def cmToMm(cm):
mm = cm * 10
return mm
lenth = float(input('길이(cm) 입력 :'))
returnVlue = cmToMm(lenth)
print(f'returnValue : {returnVlue}mm')
■ 지역변수와 전역변수
- 전역변수 : 함수 밖에서 선언된 변수로 어디서나 사용 가능하지만 함수 안에서 수정할 수 없다
- 지역변수 : 함수 안에 선언된 변수로 함수 안에서만 사용가능하다
- global 키워드 : 함수 안에서 전역변수의 값을 수정할 수 있다
#방문객 수를 카운트하는 함수를 만들어보자
totalVisit = 0
def countTotalVisit():
global totalVisit
totalVisit = totalVisit + 1
print(f'누적 방문객 : {totalVisit}')
countTotalVisit() #실행한 순간 totalVisit의 데이터가 1로 바뀜
countTotalVisit() #실행한 순간 totalVisit의 데이터가 2로 바뀜
countTotalVisit() #실행한 순간 totalVisit의 데이터가 3로 바뀜
countTotalVisit() #실행한 순간 totalVisit의 데이터가 4로 바뀜
countTotalVisit() #실행한 순간 totalVisit의 데이터가 5로 바뀜
'''
누적 방문객 : 1
누적 방문객 : 2
누적 방문객 : 3
누적 방문객 : 4
누적 방문객 : 5
'''
■ 중첩함수
- 중첩함수는 함수 안에 또 다른 함수가 있는 형태이다
- 중첩함수 내부 함수를 함수 밖에서 호출할 수 없다
#calculator()함수를 선언하고 calculator()안에 덧셈,뺄셈,곱셈,나눗셈 함수를 선언하자
def calculator(n1,n2,operator):
def addCal():
print(f'덧셈 연산 : {n1+2}')
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 = int(input('1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 5.종료'))
if operatorNUm == 5:
print('종료')
break
calculator(num1,num2,operatorNUm)
'''
실수(n1) 입력 : 4
실수(n2) 입력 : 5
1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 5.종료1
덧셈 연산 : 6.0
실수(n1) 입력 : 56
실수(n2) 입력 : 4
1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 5.종료3
곱셈 연산 : 60.0
실수(n1) 입력 : 5
실수(n2) 입력 : 6
1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 5.종료5
종료
Process finished with exit code 0
'''
■ lambda 함수
함수 = lambda 매개변수 : 리턴값
- lambda함수를 이용하면 함수 선언을 보다 간단하게 할 수 있다
# 삼각형, 사각형, 원의 넓이를 반환하는 lamda함수를 만들어보자
getTriArea = lambda n1,n2 : n1*n2/2
getSquArea = lambda n1,n2 : n1*n2
getCirArea = lambda n : n*n*3.14
width = int(input('가로 길이 입력 : '))
height = int(input('세로 길이 입력 : '))
radius = int(input('반지름 길이 입력 : '))
triValue = getTriArea(width,height)
squValue = getSquArea(width,height)
cirValue = getCirArea(radius)
print(f'삼각형 넓이 : {triValue}')
print(f'사각형 넓이 : {squValue}')
print(f'원 넓이 : {cirValue}')
'''
가로 길이 입력 : 20
세로 길이 입력 : 30
반지름 길이 입력 : 6
삼각형 넓이 : 300.0
사각형 넓이 : 600
원 넓이 : 113.04
'''
2. 모듈
■ 모듈이란
- 모듈은 이미 만들어진 기능으로 사용자가 쉽게 사용할 수 있다
- 내부 모듈, 외부 모듈, 사용자 모듈로 구분할 수 있다
#random 모듈을 이용해서 1부터 10까지의 정수 중 난수 1개를 발생시켜보자
import random
rNUm = random.randint(1,10)
print(f'rNUm = {rNUm}')
#rNUm = 7
■ 모듈 제작
- 모듈은 특정 기능을 가지고 있는 파이썬 파일을 말하므로, 파이썬 파일을 생성해 만들면된다
#로또 번호 (6개)를 출력하는 모듈을 만들어보자.
#모듈파일
import random
def getLottoNumbers():
result = random.sample(range(1,46),6)
return result
#실행파일
import lotto
lottoNumbers = lotto.getLottoNumbers()
print(f'lottoNUmbers : {lottoNumbers}')
'''
lottoNUmbers : [37, 41, 3, 2, 42, 12]
'''
■ 모듈 사용
import 모듈명
- 원하는 모듈을 임포트 한다
import 모듈명 as 단축하고 싶은 이름
- as 키워드를 통해 모듈 이름을 단축한다
from 모듈명 import 함수
- 모듈의 특정 기능만 사용할 수 있다
#국어, 영어, 수학 점수를 입력하면 총점, 평균을 출력하는 모듈을 만들어보자
#모듈
scores = []
def addScore(s):
scores.append(s)
def getScores():
return scores
def getTotalScore():
total = 0
for s in scores:
total += s
return total
def getAvgScore():
avg = getTotalScore()/len(scores)
return avg
#실행
import score as s
korScore = int(input('국어 점수 입력 : '))
ingScore = int(input('수학 점수 입력 : '))
matScore = int(input('영어 점수 입력 : '))
s.addScore(korScore)
s.addScore(ingScore)
s.addScore(matScore)
print(s.getScores())
print(s.getTotalScore())
print(s.getAvgScore())
💡 위 예제를 작성하면서, list 자료형에 대해 아직 학습하지 않아 따로 찾아 기록해보았다
[파이썬] list 자료형 / 리스트 자료형 개념, 리스트 인덱싱, 리스트 길이 구하기, 리스트 요소 추
📌 List 자료형 리스트명 = [ 요소1, 요소2, 요소3, ... ] 리스트를 만들 때 대괄호로 감싸주고, 쉼표로 요솟값을 구분해주면 된다. #비어있는 리스트 생성 a = list() a = [] #리스트 예시 odd = [ 1, 3, 5, 7, 9
kim-dem-dem.tistory.com
■ 실행(메인)파일
- __name__에 실행되면 __main__이 아니면, 모듈명이 저장된다
3. 패키지
- 패키지를 이용하면 관련있는 모듈을 그룹으로 관리할 수 있다
- site-packages에 있는 모듈은 어디서나 사용할 수 있다
➰ 5일차 후기
함수, 모듈을 학습하며 기존에 배웠던 파이썬의 문법들을 활용하며 작성할 수 있었는데,
기존 학습 내용에서 다루지 않은 것들이 약간 있어서 직접 검색을 하며 이해하기도 해보았다.
벌써(?) 공부 1주차가 마무리 되었다, 다음주도 이어지는 파이썬 공부 잘해봐야겠다 ~
※본 내용은 제로베이스 데이터 취업 스쿨에서 제공하는 학습 내용에 기반합니다.
'제로베이스 데이터 스쿨 > 일일 스터디 노트' 카테고리의 다른 글
7일차 스터디노트 / 파이썬 텍스트 파일 쓰기, 읽기, 함수 연습문제 풀이/제로베이스 데이터 취업스쿨 (0) | 2023.01.11 |
---|---|
6일차 스터디노트/ 파이썬 객체 지향 프로그래밍, 클래스, 예외 / 제로베이스 데이터 취업스쿨 (0) | 2023.01.09 |
4일차 스터디노트 / 파이썬 연습 문제 풀이(조건문, 반복문) / 제로베이스 데이터 취업 스쿨 (0) | 2023.01.07 |
3일차 스터디노트/ 파이썬 반복문, 연습 문제 풀이(데이터와 변수, 연산자) / 제로베이스 데이터 취업 스쿨 (0) | 2023.01.06 |
2일차 스터디노트 / 파이썬 데이터 입·출력, 연산자, 조건문 / 제로베이스 데이터 취업 스쿨 (0) | 2023.01.05 |