< 수강분량 : 파이썬 중급(1~9), 파이썬 중급문풀(1~8) >
#함수 선언
def 함수명(): #함수명은 보통 동사로 작명
실행문
#함수 호출
함수명() #호출을 꼭 해야 실행됨
def greet(customer): #customer : 매개변수
print(f'{customer} 고객님 안녕하세요!)
greet('홍길동') #홍길동 : 인수
전역변수와 지역변수
1) 전역변수 : 함수 밖에 선언된 변수로 어디에서나 사용은 가능하지만 함수 안에서 수정할 수는 없음
2) 지역변수 : 함수 안에 선언된 변수로 함수 안에서만 사용 가능함
3) global 을 사용하면 함수 안에서도 전역변수의 값 수정 가능
중첩함수 : 함수 안에 또 다른 함수가 있는 형태, 내부 함수를 함수 밖에서 호출할 수는 없음
lambda 키워드를 이용하면 함수 선언을 보다 간단하게 할 수 있음
#함수명 = lambda 매개변수 : 식
getTriangleArea = lambda n1, n2: n1 * n2 / 2
getSquareArea = lambda n1, n2: n1 * n2
getCircleArea = lambda r: r * r * 3.14
from calculator import add
from calculator import sub
from calculator import * #모든 기능 가져오기
from calculator import add, sub #일부 기능 가져오기
add(10,20)
sub(10, 20)
#__name__ 에는 모듈 이름(파일명)이 저장되거나, 실행파일인 경우 '__main__'이 저장됨
#아래와 같은 조건문을 통해 일정 기능을 실행파일일 때만 실행하도록 설정 가능
if __name__ == '__main__':
실행문
-패키지란?
1) 모듈을 묶어서 관리하는 것
2) from 패키지 import 모듈
3) site-packages : 어디서나 접근가능한 모듈
4) 수학, 난수, 시간 모듈은 코딩할 때 유용하게 사용
#클래스 만들기
class Car:
#속성(변수)
def __init__(self, col, len): #객체 초기화
self.color = col
self.length = len
#기능(함수)
def doStop(self):
print('STOP!!')
#객체 생성
# car1 = Car('red', 200)
# car2 = Car('blue', 300)
얕은 복사와 깊은 복사
1) 얕은 복사 : 객체 주소를 복사하는 것으로 객체 자체가 복사되지 않음
2) 깊은 복사 : 객체 자체를 복사하는 것으로 또 하나의 객체가 만들어짐
클래스 상속 : 다른 클래스의 기능을 내 것처럼 사용
1) _ init _() 가 속성을 초기화함
2) 상위 클래스의 속성을 초기화하기 위해 super() 사용
3) 다중상속 : 2개 이상의 클래스 상속. 잘 사용하면 중복되는 코드를 줄일 수 있으나 남발하면 다중상속의 늪에 빠질 수 있음.
4) 추상 클래스 : 상위 클래스에서 하위 클래스에 메서드 구현을 강요
#속성 초기화
class NewRobot(Robot):
def __init__(self, c, h, w):
super().__init__(c, h, w)
def fire(self):
print('레이저 발사!!')
#추상 클래스
from abc import ABCMeta
from abc import abstractmethod
class Airplane(metaclass=ABCMeta):
@abstractmethod
def flight(self):
pass
#예외처리
try:
print(n1 / n2)
except:
print('예상치 못한 문제가 발생했습니다!')
print('다음 프로그램이 정상 실행됩니다.')
#raise 키워드로 예외발생 시키기도 가능
def divCalculator(n1, n2):
if n2 != 0:
print(f'{n1} / {n2} = {n1 / n2}')
else:
raise Exception('0으로 나눌 수 없습니다.')
num1 = int(input('input number1: '))
num2 = int(input('input number2: '))
try:
divCalculator(num1, num2)
except Exception as e:
print(f'Exception : {e}')
#파일 열기
file = open('파일 경로', 'w') #쓰기 전용 (파일이 있으면 덮어씌움)
file = open('파일 경로', 'a') #쓰기 전용 (파일이 있으면 덧붙임)
file = open('파일 경로', 'x') #쓰기 전용 (파일이 있으면 에러 발생)
file = open('파일 경로', 'r') #읽기 전용 (파일이 없으면 에러 발생)
#읽기 또는 쓰기
file.read()
file.write()
file.readline() #한줄 읽기
file.readlines() #여러줄 읽기
file.writelines() #리스트 또는 튜플 데이터를 파일에 쓰기 위함
#파일 닫기
file.close()
#with ~ as문 활용하면 close() 생략가능
with open(uri + 'languages.txt', 'r') as f:
print(f.read())
with open(uri + 'scores.txt', 'a') as f:
print(scoreList, file=f)
def exampleResult(*s):
passAvgScore = 60; limitScore = 40
def getTotal():
totalScore = sum(s)
print(f'총점: {totalScore}')
return totalScore
def getAverage():
avg = getTotal() / len(s)
print(f'평균: {avg}')
return avg
def printPassOrFail():
for i in s:
print(f'{i}: Pass') if i >= limitScore else print(f'{i}: Fail')
def printFinalPassOrFail():
if getAverage() >= passAvgScore:
if min(s) >= limitScore :
print('Final Pass!!')
else:
print('Final Fail!!')
else:
print('Final Fail!!')
"이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다."