I'm Electronic Engineer :)
[Do it] 점프 투 파이썬 - 08일차 본문
1. 기본 내용
공부 날짜: 2019년 8월 9일 (금)
2. 스터디 내용
공부 범위:
1장 파이썬이란 무엇인가?
2장 파이썬 프로그래밍의 기초, 자료형
3장 프로그램의 구조를 쌓는다! 제어문
4장 프로그램의 입력과 출력은 어떻게 해야 할까?
5장 파이썬 날개 달기
6장 파이썬 프로그래밍, 어떻게 시작해야 할까?
7장 정규 표현식
공부 내용:
5-5 내장 함수
--- Python 내장 함수
외부 모듈과 다르게 import할 필요 없이 사용 가능하다.
--- Don’t reinvent the wheel.
이미 있는 것을 만드느라 시간 낭비하지 말라
--- abs(x) 함수
x의 절댓값을 반환해주는 함수
--- all(x) 함수
반복 가능한 자료형을 인수로 입력 받고
인수 x가 모두 True이면 True, 하나라도 False가 있으면 False이다.
--- 반복 가능한 자료형 (iterable)
for문으로 값을 출력할 수 있는 자료형.
(리스트, 튜플, 문자열, 딕셔너리, 집합)
--- any(x) 함수
인수 x가 모두 False이면 False, 하나라도 True가 있으면 True이다.
--- chr(i) 함수
인수로 아스키 코드 값을 받아서 그 코드에 해당하는 문자를 반환한다.
--- dir(객체) 함수
인수로 받는 객체가 자체적으로 갖고 있는 변수나 함수(메서드)를 반환한다.
(인수로 리스트를 전달하면 리스트 관련 함수를 알 수 있다.)
--- divmod(a, b) 함수
2개의 숫자를 입력 받고, a를 b로 나눈 몫과 나머지를 튜플 형태로 반환한다.
--- enumerate(x) 함수
인수로 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력 받아서
인덱스 값을 포함하는 enumerate 객체를 반환한다.
보통 for문과 함께 사용한다.
--- eval(expression) 함수
실행 가능한 문자열을 인수로 받아서 문자열을 실행한 결과값을 반환한다.
eval은 입력 받은 문자열로 Python 함수, 클래스를 동적으로 실행하고 싶을 때 사용한다.
--- filter(함수 이름, 반복 가능한 자료형)
filter함수는 위와 같이 2개의 인수를 받고, 반복 가능한 자료형의 요소들 중
첫번째 인수의 함수에 입력한 결과가 True인 요소들만 묶어서 반환한다.
위의 코드에서 lambda함수를 사용하면 간단하게 작성할 수 있다.
--- hex(x) 함수
정수 x를 16진수로 바꿔서 반환한다.
--- id(객체) 함수
객체를 입력 받아서 객체의 고유 주소 값을 반환한다.
--- input( [prompt] ) 함수
사용자의 입력을 받는 함수이다.
--- int(x) 함수
문자열 형태의 숫자나 소수점이 있는 숫자를 정수로 반환한다.
int(x, radix)형태로 인수를 입력하면 x를 radix진법으로 보고, 10진법으로 바꿔서 반환한다.
--- isinstance(객체, 클래스) 함수
2개의 인수를 받아서 입력 받은 객체가 입력 받은 클래스의 인스턴스인지 판단 후 True 또는 False를 반환한다.
--- len(s) 함수
입력 값(요소의 전체 개수) s의 길이를 반환한다.
--- list(s) 함수
반복 가능한 자료형 s를 리스트로 바꿔서 반환한다.
--- map(f, iterable) 함수
함수 f와 반복 가능한 자료형을 입력 받고, 요소들에 대해 함수 f를 수행한 뒤 결과 값들을 묶어서 반환한다.
lambda를 사용하면 간단히 작성할 수 있다.
--- max(iterable) 함수
반복 가능한 자료형을 입력 받고, 그 중 최댓값을 반환한다.
--- min(iterable) 함수
반복 가능한 자료형을 입력 받고, 그 중 최솟값을 반환한다.
--- oct(x) 함수
정수 x를 8진수 문자열로 바꿔서 반환한다.
--- open(filename, [mode] ) 함수
파일의 이름과 읽기 방법을 인수로 입력 받고, 파일 객체를 반환한다.
[mode]의 기본값은 ‘r’(읽기)이며, ‘w’(쓰기), ‘a’(추가), ‘b’(바이너리 모드) 가 있다.
‘b’는 ‘w’, ‘r’, ‘a’와 함께 사용한다.
--- ord(c) 함수
입력 받은 문자 c의 아스키 코드 값을 반환하는 함수.
--- pow(x, y) 함수
x의 y제곱을 계산한 결과 값을 반환한다.
--- range( [start,], stop[, step] ) 함수
for문과 함께 자주 사용하며, 입력 받은 숫자의 범위 값을 반복 가능한 객체로 반환한다.
start를 정하지 않으면 0부터 시작한다.
끝 숫자는 범위에 포함되지 않는다.
세 번째 인수(step)는 숫자 사이의 거리를 의미한다.
--- round( number [, ndigits] )
입력 받은 number를 반올림한다.
ndigits 인수에 입력한 값을 n이라고 하면,
round 함수는 number를 소수점 n번째자리 까지만 반올림해서 반환한다.
--- sorted(iterable) 함수
입력 값을 정렬한 후 리스트로 반환한다.
(리스트의 sort 함수는 리스트 객체 자체를 정렬할 뿐, 리스트를 반환하지 않는다.)
--- str(객체) 함수
입력 받은 객체를 문자열 형태로 바꿔서 반환한다.
--- sum(iterable) 함수
입력 받은 ‘리스트나 튜플’의 모든 요소들의 합을 반환한다.
--- tuple(iterable) 함수
반복 가능한 자료형을 튜플로 바꿔서 반환한다.
--- type(객체) 함수
입력 받은 객체의 자료형을 반환한다.
--- zip(*iterable) 함수
동일한 개수의 요소를 갖는 반복 가능한 자료형들을 묶어서 반환한다.
5-6 외장 함수
--- 파이썬 라이브러리
파이썬 사용자들이 만든 유용한 프로그램을 모아 놓은 것으로,
도서관이라는 뜻 그대로 원하는 정보를 찾아볼 수 있는 곳이다.
따라서 모든 라이브러리를 다 알 필요는 없고 언제 어떤 것이 필요한지만 알면 된다.
--- sys 모듈
Python 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해준다.
--- 명령 행에서 인수 전달하기 ( sys.argv )
python 명령어 뒤의 모든 것들이 공백을 기준으로 나뉘어 sys.argv리스트의 요소가 된다.
--- 명령 프롬프트 창에서는 /나 \를 상관없이 사용 가능하다.
--- 소스 코드 안에서는 반드시 /또는 \\기호를 사용해야한다.
--- 강제로 스크립트 종료하기 ( sys.exit )
프로그램 파일 안에서 사용하면 프로그램을 중단시킨다.
--- 자신이 만든 모듈 불러와 사용하기 ( sys.path )
sys.path는 Python 모듈들이 저장되어 있는 위치를 나타낸다.
따라서 이 위치에 있는 Python 모듈은 경로에 상관없이 어디에서나 불러올 수 있다.
첫번째 요소 ‘’는 현재 디렉터리를 의미한다.
위와 같이 sys.path객체를 append 함수를 사용해서
내 모듈이 있는 디렉터리 경로를 추가하면 내 모듈을 import할 수 있게 된다.
--- pickle 모듈
객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올 수 있다.
--- OS 모듈
환경 변수나 디렉터리, 파일 등의 OS 자원을 제어할 수 있게 해준다.
--- 내 시스템의 환경 변수 값을 알고 싶을 때 ( os.environ )
os.environ은 환경 변수에 대한 정보를 딕셔너리 객체로 반환한다.
딕셔너리이므로 위와 같이 PATH 환경 변수의 정보를 호출할 수 있다.
--- 디렉터리 위치 변경하기 ( os.chdir )
os.chdir()는 현재 디렉터리 위치를 바꿀 수 있다.
--- 디렉터리 위치 반환하기 ( os.getcwd )
os.getcwd()는 현재 자신의 디렉터리 위치를 반환한다.
--- 시스템 명령어 호출하기 ( os.system )
os.system(“명령어”)로 시스템 자체의 프로그램이나 명령어를 Python에서 호출할 수 있다.
--- 실행한 시스템 명령어의 결과값 반환하기 ( os.popen )
os.popen(“명령어”)는 시스템 명령어 수행 결과값을 읽기 모드 형태(‘r’)의 파일 객체로 반환한다.
--- 유용한 OS 관련 함수
os.mkdir(디렉터리) -> 디렉터리를 생성한다.
os.rmdir(디렉터리) -> 디렉터리가 비어 있다면 삭제한다.
os.unlink(파일 이름) -> 파일을 지운다.
os.rename(src, dst) -> src라는 파일의 이름을 dst로 바꾼다.
--- shutil 모듈
shutil.copy(src, dst)메서드로 src파일을 dst파일로 복사할 수 있다.
이미 dst파일이 존재한다면 덮어쓰기 한다.
dst가 디렉터리 이름이면 그 디렉터리에 src파일을 복사한다. (원본과 같은 이름)
--- glob 모듈
특정 디렉터리의 파일 이름 모두를 알아야할 때 사용하는 모듈이다.
--- 디렉터리에 있는 파일들을 리스트로 만들기 ( glob.glob(pathname) )
glob.glob(pathname)는 디렉터리 안의 파일들을 읽어서 반환한다.
(*, ? 등 메타 문자를 사용해서 원하는 파일만 읽어들 일 수 있다.)
--- tempfile 모듈
파일을 임시로 만들어서 사용할 때 유용한 모듈이다.
tempfile.mktemp()는 중복되지 않는 임시 파일의 이름을 무작위로 반환한다.
tempfile.TemporaryFile()은 임시 저장 공간으로 사용할 파일 객체를 반환한다.
반환된 파일은 기본적으로 ‘wb’모드이고, f.close()가 호출되면 자동으로 사라진다.
--- time 모듈
시간과 관련된 모듈이다.
--- time.time() 함수
UTC를 사용하여 현재 시간을 실수 형태로 반환한다.
(1970년 1월 1일 0시 0분 0초를 기준으로 지난 시간을 초 단위로 반환한다.)
--- time.localtime() 함수
time.time()이 반환한 값을 사용해서 연도, 월, 일, 시, 분, 초, … 형태로 바꿔서 반환한다.
--- time.asctime() 함수
time.localtime()에서 반환된 튜플을 인수로 받아서 날짜와 시간을 알아보기 쉬운 형태로 바꿔서 반환한다.
--- time.ctime() 함수
time.ctime() 메서드는 time.asctime() 처럼 날짜와 시간을 보기 좋게 바꿔서 반환해준다.
항상 현재 시간만 반환한다는 것이 다른 점이다.
--- time.strftime() 함수
시간에 관계된 것을 세밀히 표현하는 여러가지 포맷 코드를 제공한다.
--- time.sleep() 함수
주로 루프 안에서 많이 사용하며, 일정한 시간 간격을 두고 프로그램을 수행할 수 있다.
--- calendar 모듈
달력을 볼 수 있게 해주는 모듈이다.
--- calendar.calendar(연도) 함수
해당 연도의 전체 달력을 볼 수 있다.
--- calendar.prcal(연도) 함수
해당 연도의 전체 달력을 볼 수 있다.
--- calendar.prmonth(연도, 월) 함수
해당 연도, 해당 월의 달력을 볼 수 있다.
--- calendar.weekday(연도, 월, 일) 함수
인수로 받은 날짜에 해당하는 요일 정보를 반환한다.
( 0: 월 // 1: 화 // 2: 수 // 3: 목 // 4: 금 // 5: 토 // 6: 일 )
--- calendar.monthrange(연도, 월) 함수
입력 받은 달의 1일이 무슨 요일인지와 그 달이 며칠까지 있는지를 튜플로 반환한다.
(1일 요일, 며칠까지)
--- ramdom 모듈
random() 함수 // randint() 함수 // choice() 함수 // shuffle() 함수
--- webbrowser 모듈
자신의 시스템에서 사용하는 기본 웹 브라우저를 자동으로 실행하는 모듈이다.
--- webbrowser.open() 함수
웹 브라우저를 해당 URL로 가게 해준다.
웹 브라우저가 실행되지 않은 상태면 새로 실행한 후 해당 주소로 이동한다.
--- webbrowser.open_new() 함수
새로운 창에 해당 주소가 열리게 한다.
--- threading 모듈
thread를 사용하여 한 프로세스 안에서 2가지 이상의 일을 동시에 처리할 수 있다.
threading.Thread(target=동시 처리할 일) // (스레드).start() // (스레드).join()
3. 스터디 후기
스터디 도중 발생한 문제, 어려웠던 점을 어떻게 해결했는지?
X
간단한 소감
기본적인 문법 공부가 끝났다.
둘째 마당을 통한 프로그래밍 공부가 기대된다.
다음 스터디 예정일
2019년 8월 10일 (토)
'Study code & programming > Python' 카테고리의 다른 글
[Do it] 점프 투 파이썬 - 3장 연습문제 code (0) | 2019.08.11 |
---|---|
[Do it] 점프 투 파이썬 - 09일차 (0) | 2019.08.11 |
[Do it] 점프 투 파이썬 - 07일차 (0) | 2019.08.08 |
[Do it] 점프 투 파이썬 - 06일차 (0) | 2019.08.07 |
[Do it] 점프 투 파이썬 - 05일차 (0) | 2019.08.05 |