
오늘의 목표
오늘의 달성 목표
오늘을 마치며
- 함수는 피이썬에서 제공하는 내장함수와
사용자가 직접 선언하는 사용자 함수가 있다.- 함수의 예
- 반복 함수 사용 이유는 특정 기능을 재사용하기 위해서 사용한다.
- def addCal():
- round()함수를 통해서 소수점 자리를 제한할 수 있음.
- 함수 안에 또다른 함수를 호출할 수 있음
- 함수 호출 시 함수에 데이터를 전달할 수 있다.
- 인수와 매개변수 개수는 항상 일치해야 한다.
- 개수가 정해져 있지 않았을때 '*'를 이용하여 보류가능 (type은 tuple 형태로 나옴)
- 'return' 키워드를 이용하면 함수 실행 결과를 호출부로 반환할 수 있다.
- return 다음에 나오는 데이터는 출력되지 않는다.
- 함수 밖에 선언된 변수로 어디에서나 사용은 가능하지만 함수 안에서 수정할수는 없다.
- global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.
- 함수 안에서 선언된 변수로 함수 안에서만 사용 가능하다.
- 내부함수를 내부함수 이외에 함수 밖에서는 불가능하다.

모듈의 종류
• 내부모듈 : 파이썬 설치 시 기본적으로 사용할 수 있는 모듈
• 외부모듈 : 별도 설치 후 사용 할 수 있는 모듈
• 사용자 모듈 : 사용자가 직접 만든 모듈
- sample 모듈을 이용해 난수 중에서 범위를 지정해서 출력할 수 있음 그 데이터는 리스트 형태로 반환된다.
- import 키워드를 이용하여 사용자 전용 모듈을 만들 수 있다.
- import , as를 이용하여 단어를 줄여서 사용할 수 있음(import calculator as cal)
- from~as 키워드를 이용해서 모듈의 특정 기능만 사용할 수 있다.
- from calculator import * 을 통해서 add, sub, mul, - div 모두를 가져올 수 있음 또는 ' , '를 통해서도 가능함.
- 파일을 용도에 따라 분리하여 구분할 수 있음
ex)음원 파일, 영화 파일, 독서 파일, 문서 파일 등을 나누어서 관리할 수 있음
합
listVar = [2, 5, 3.14, 50, 10, 2]
#print(f'sum(listVar): {sum(listVar)}')
최댓값
listVar = [2, 5, 3.14, 50, 10, 2]
print(f'sum(listVar): {max(listVar)}')
최소값
listVar = [2, 5, 3.14, 50, 10, 2]
print(f'sum(listVar): {min(listVar)}')
거듭제곱
print(f'pow(13, 2): {pow(13, 2)}')
print(f'pow(13, 3): {pow(13, 3)}')
print(f'pow(13, 4): {pow(13, 4)}')
반올림
print(f'{round(3.141592, 1)}')
print(f'{round(3.141592, 2)}')
절대값
print(f'math.fabs(-10): {math.fabs(-10)}')
print(f'math.fabs(-10): {math.fabs(-0.12345)}')
올림
print(f'math.ceil(-10.903): {math.ceil(-10.903)}')
print(f'math.ceil(10.903): {math.ceil(10.903)}')
내림
print(f'math.floor(10.903): {math.floor(10.903)}')
print(f'math.floor(-10.903): {math.floor(-10.903)}')
버림
print(f'math.trunc(10.903): {math.trunc(10.903)}')
print(f'math.trunc(-10.903): {math.trunc(-10.903)}')
최대공약수
print(f'math.gcd(14, 21): {math.gcd(14, 21)}')
팩토리얼
print(f'math.factorial(10): {math.factorial(10)}'
제곱근
print(f'math.sqrt(12): {math.sqrt(12)}')
lt = time.localtime()
print(f'time.localtime(): {lt}')
print(f'lt_tm_year: {lt.tm_year}')
print(f'lt_tm_year: {lt.tm_mon}')
print(f'lt_tm_year: {lt.tm_mday}')
print(f'lt_tm_year: {lt.tm_hour}')
print(f'lt_tm_year: {lt.tm_sec}')
print(f'lt_tm_year: {lt.tm_wday}')
- 코드 재사용과 모듈화에 좋다?
ex) 자동차를 만들때 1) 배터리 일체형, 2) 배터리 교체형, 3) 배터리 충전형으로 나눠지는데 부품 결합도가 낮은 교체형이 가장 이상적인 프로그래밍
tc1 = Teamclass(10, 'Hi')
tc2 = tc1
tc1.printClsInfo()
tc2.printClsInfo()
tc2.number = 30
tc2.str = 'Adios'
tc1.printClsInfo()
tc2.printClsInfo()
import copy
tc1 = Teamclass(10, 'Hi')
tc2 = copy.copy(tc1)
tc1.printClsInfo()
tc2.printClsInfo()
tc2.number = 30
tc2.str = 'Hello'
tc1.printClsInfo()
tc2.printClsInfo()
import copy
scores = [9, 8, 4, 3, 1]
scoresCopy = []
scoresCopy = scores
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
for s in scores:
scoresCopy.append(s)
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
scoresCopy.extend(scores)
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
scoresCopy = scores.copy()
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')
scoresCopy = scores[:]
print(f'id(scores): {id(scores)}')
print(f'id(scoresCopy): {id(scoresCopy)}')```

- 발생된 예외를 별도 처리함으로써 프로그램 전체 실행에 영향이 없도록 처리함
- try~except을 사용하여 처리가능
- else를 사용하여 예외가 바랭하지 않은 경우 실행하는 구문이다.
- try ~ except ~ else 구문을 사용할때 except를 제외하고 else문 사용 불가능 else는 생략 가능.
- finally는 예외 발생과 상관없이 항상 실행한다.
- Exception as e(error)를 통해서 이용 가능하다.
- raise 키워드를 이용하면 예외를 발생 시킬 수 있다.
- Exception as e + e.args[]함수를 통해서 예외 종류 나누기 가능
- 'w'(파일이 있으면 덮어씌움), 'a'(파일이 있으면 덧붙임),
- 'x'(파일이 있으면 에러 발생)는 쓰기 전용
- 'r'(파일이 있어야함)은 읽기전용
- with ~ as문을 이용하여 텍스트 파일 출력시 close()를 사용하지 않고 데이터를 출력할 수 있다.
- 리스트(list) 또느 튜플 데이터를 파일에 쓰기 위한 함수이다.
- writelines()를 사용할때는 for문 필요없음
- readlines()는 파일의 모든 데이터를 읽어들여 리스트 형태로 반환한다.
- readline()는 한 행을 읽어서 문자열로 반환한다.
- split()함수를 통해 데이터를 추가할 수 있고, stript()함수를 통해 데이터를 제거할 수 있음
[해당 글의 내용은 제로베이스 데이터스쿨의 강의 자료 내용 중 일부가 포함되어 있습니다.]