Million Dreams
100만개의 꿈을 꾸는 개발자 지망생
Python (14)
Day14 Do it! 점프 투 파이썬 스터디 노트

1. 공부한 쪽수

326 ~ 354

 

2. 공부 내용 요약

파이썬 초보 탈출 코딩 면허 시험

⑪ 모듈 사용 방법

모듈 사용방법은 크게 3가지가 있다.

1) sys 모듈 사용하기

- sys.path에 해당 모듈이 들어있는 폴더를 추가하면 사용 가능

2) PYTHONPATH 환경 변수 사용하기

- PYTHONPATH 환경 변수에 해당 모듈이 들어있는 폴더를 추가하면 사용 가능

3) 현재 디렉터리 사용하기

- 파이썬 셸을 모듈이 들어있는 폴더로 이동해 사용하면 사용가능

 

⑫ 오류와 예외처리

result = 0
try:
[1,2,3][3]
"a"+1
4 / 0
except TypeError:
result +=1
except ZeroDivisionError:
result +=2
except IndexError:
result +=3
finally:
result += 4

print(result)

코드 실행결과 result 값은 7이 나온다.

 

그 이유는처음 result 값은 0으로 초기화되고,

 try문 첫번째 실행문 [1,2,3][3]에서 에러가 발생해

exception IndexError로 이동해 result 값에 3이 더해지며

이후 finally 문이 실행돼 4가 더해지므로

result값은 7이된다.

 

⑬ DashInsert함수 (for문, if문, 리스트 사용)

- DashInsert함수는 숫자로 구성된 문자열을 입력받은 뒤 

문자열 안에서 홀수가 연속되면 두 수 사이에 -를 추가하고, 짝수가 연속되면 *를 추가하는 기능을 갖고 있다.

for i, num in enumerate(numbers):
result.append(str(num))
if i < len(numbers)-1:
is_odd = num % 2 == 1
is_next_odd = numbers[i+1] % 2 == 1
if is_odd and is_next_odd:
result.append("-")
elif not is_odd and not is_next_odd:
result.append("*")
print("".join(result))

 

⑭ 문자열 압축하기

- 문자열을 입력받아 같은 문자가 연속적으로 반복되는 경우, 그 반복 횟수를 표시해 문자열을 압축하여 표시하시오.

- 입력 문자열의 문자를 확인해 동일한 문자가 들어올 경우, 해당 문자의 숫자 값을 증가시킨다.

다른 문자가 들어올 경우 해당 문자 숫자값을 1로 초기화한다.

 

⑮ Duplicate Numbers

0~9의 문자로 된 숫자를 입력받았을 때, 

이 입력값이 0~9의 모든 숫자를 각각 한 번씩만 사용한 것인지 확인하는 함수

def chkDupNum(s):
result = []
for num in s:
if num not in result:
result.append(num)
else:
return False
return len(result) == 10
print(chkDupNum("0123456789"))
print(chkDupNum("01234"))
print(chkDupNum("01234567890"))
print(chkDupNum("6789012345"))
print(chkDupNum("012322456789"))

16) 모스부호 해독

- 딕셔너리로 모두 작성한 후 그 결괏값을 도출함 -딕셔너리 연습

 

17) 기초 메타 문자

- 정규식 a[.]{3,}b과 매치되는 문자열은? -정규식 복습

(a....b)

 

18) 문자열 검색 (코드의 결괏값 예측하기)

import re

p = re.compile("[a-z]+")

m = p.search("5 python")

m.start() + m.end()

 

- m은 python가 매치될 것이므로, m.start()는 python의 첫번째 인덱스 2, end는 마지막 index 8을 도출해 답은 10이된다.

 

19) 그루핑, 20) 전방탐색 (정규식 복습 후 공부 예정)

  Comments,     Trackbacks
Day13 Do it! 점프 투 파이썬 스터디 노트

Do it! 점프 투 파이썬

박응용

이지스퍼블리싱 2019.06.20

 

1. 공부한 쪽수

321~325

 

2. 공부 내용 요약

파이썬 초보 탈출 코딩 면허 시험

① 문자열 바꾸기 (split과 join을 사용하여 바꾸기)

* split 사용 예 :

a="a:b:c:d"

a.split(":") ----> ['a','b','c','d']

* join 사용 예:

b = ['a','b','c','d']

"#".join(b) -----> "a#b#c#d"

 

② 딕셔너리 값  추출하기

딕셔너리의 get 함수를 사용하면 해당 key가 없을 경우, 두 번쨰 매개변수로 전달된 default 값을 대신 돌려줌

 

③ 리스트의 더하기와 extend 함수

리스트에 + 기호를 더하여 더한 결괏값과, extend를 사용하여 더한 결괏값은 똑같아 보이지만,

차이가 있다.

id 함수를 사용해 둘의 결괏값을 비교해보면, +를 사용한 결괏값은 주소가 변경되지만,

extend를 사용하면 주소가 변경되지 않는 것을 알 수 있다.

즉, +는 두 개의 리스트가 더해진 새로운 리스트가 반환되는 것이며,

extend함수는 기준 리스트의 값이 변경된 것이므로 주소가 변경되지 않는다.

 

④ 리스트 총합구하기

- 리스트에서 특정 조건 값을 뽑아내기 위해서 pop 함수를 사용

(pop함수는 자료형 구조에서 해당되는 값을 뽑아 제거하는 함수)

- 리스트에서 pop으로 뽑은 값을 새로운 변수에 저장하고, 그 값들의 함을 구하면, 특정 조건을 제외한 값들의 합을 구할 수 있다.

 

⑤ 피보나치 함수

- 피보나치 함수는 index 기준으로 

fib(0) -> 0, 

fib(1) -> 1, 

fib(2) -> fib(0) + fib(1), 

fib(3) -> fib(1) + fib(2)

fib(4) -> fib(2) + fib(3)

....

이런 식으로 반복되므로

다음과 같이 함수를 구성한다.

 

출력은 이렇게 한다.

 

⑥ 입력받은 숫자들의 총합 구하기

- 숫자를 입력받으려면 input 함수를 사용한다.

- 단 문제 조건에서는 ,로 구분해 한번에 받으라고 되어있으므로 split함수도 같이 사용한다.

이런식으로 값을 받아 처리해야한다.

 

⑦ 한 줄 구구단

- 사용자로부터 2~9의 숫자 중 하나를 입력 받아 해당 숫자의 구구단을 한 줄로 출력하는 프로그램 작성

(input, for 사용)

 

⑧ 역순 저장

txt 파일을 역순으로 저장

(readlines, reverse사용)

 

⑨ 평균 값 구하기

(readlines, avg 사용)

 

⑩ 사칙연산 계산기

(리스트를 입력받아 연산하는 sum,avg 함수를 만듦)

  Comments,     Trackbacks
Day12 Do it! 점프 투 파이썬 스터디 노트

 

 

Do it! 점프 투 파이썬

박응용

이지스퍼블리싱 2019.06.20

 

1. 공부한 쪽수

309 ~ 320

 

2. 공부 내용 요약

 

강력한 정규 표현식

메타 문자

- +, *, [], {} 등의 메타문자는 매치가 진행될 때 현재매치되고 있는 문자열의 위치가 변경된다.

하지만 문자열 소비가 없는(zero-width assertions) 메타문자가 있다.

* |

- or와 동일한 의미로 사용되며,A|B라는 정규식이 있다면 또는 B라는 의미가된다.

* ^

문자열의 맨 처음과 일치함을 의미, re.MULTILINE을 사용할 경우 여러 줄 문자열일 때 각 줄의 처음과 일치하게 된다.

Ex) ^Life : Life 문자열이 처음에 온 경우에는 매치하지만처음 위치가 아닌 경우 매치되지 않음

 

 

* $

- ^ 메타 문자와 반대으 ㅣ경우,$는 문자열의 끝과 매치함을 의미

 

 

* \A

문자열의 처음와 매치됨을 의미,^메타 문자와 동일한 의미지만, re.MULTILINE 옵션을 사용할 경우 다르게 해석됨

- re.MULTILINE 옵션을 사용할 경우 ^은 각 줄의 문자열의 처음과 매치되지만 \A는 줄과 상관없이 전체문자열의 처음하고만 매치된다.

 

 

* \Z

문자열의 끝과 매치됨을 의미한다.이것 역시 \A와 동일하게 re.MULTILINE 옵션을사용할 경우 메타 문자와는 달리 전체 문자열의 끝과매치된다.

 

 

* \b

단어 구분자이며보통단어는 whitespace에 의해 구분된다.

Ex) \bclass\b 앞뒤가 whitespace로구분된 class라는 단어와 치됨

 \b는 파이썬 리터럴규칙에 의하면 백스페이스를 의미하므로 백스페이스가 아닌 단어 구분자임을 알려주기 위해선 Raw string임을알려주는 기호 r을 반드시 붙여줘야 한다.

 

 

* \B

- \b와 반대의 경우로 whitespace로구분된 단어가 아닌 경우에만 매치된다.

 

 

그루핑

그룹을 만들어주는 메타 문자 ()을사용한다.

Ex) p = re.compile(r”\w+\s+\d+[-]\d+[-]\d+”)

m = p.search(“park 010-1234-1234”)

이때이름에 해당하는 \w+ 부분을그루핑해서 (\w+)으로 만들면 match 객체의 group 메서드를 사용해 그루핑된 부분의 문자열만 뽑아낼 수 있다.

 

 

그루핑된 문자열에 이름 붙이기

그룹을 여러 개 만들어서 구분하기 어려워지면 인덱스가 아닌 이름으로참조하는 것이 좋은 방법이 될 수 있다정규식은 그룹을 만들 때 그룹 이름을 지정할 수 있게됐다.

(?P<그룹이름>…) 형태로형성한다.

 

 

전방 탐색

긍정부정 2가지 종류가 있고 다음과 같이 표현한다.

(?=…) 긍정형 전방 탐색 :  …에 해당하는 정규식과 매치되어야 하며 조건이 통과되어도 문자열이 소비되지않는다.

(?!...) 부정형 전방 탐색 :…에 해당하는 정규식과 매치되지 않아야 하며 조건이 통과되어도 문자열이 소비되지 않는다.

 

 

문자열 바꾸기

- sub 메서드를 사용하면 정규식과 매치되는 부분을 다른 문자로쉽게 바꿀 수 있다.

sub(‘바꿀 문자열’, ‘대상문자열’, count=’횟수’)

매개변수로 참조 구문 혹은 함수를 사용하는 것도 가능하다.

 

 

Greedy vs Non-Greedy

- *만 사용하면 매치 결과로 모든 문자열을 돌려주지만 *?을 사용하면 제한할 수 있다.

 



 

  Comments,     Trackbacks
Day11 Do it! 점프 투 파이썬 스터디 노트

Do it! 점프 투 파이썬

박응용

이지스퍼블리싱 2019.06.20

 

1. 공부한 쪽수

290 ~ 308

 

2. 공부 내용 요약

 

정규표현식

- 정규표현식(Regular Expression)은복잡한 문자열을 처리할 때 사용하는 기법으로, 파이썬 고유 문법은 아니며 문자열을 처리하는 모든 곳에서사용한다.

 

정규 표현식의 기초 메타 문자

- 정규 표현식에서 사용하는 메타 문자(meta characters)

Ex) . ^ $ * + ? { } [ ] \ | ( )

 

* 문자 클래스 [ ]

문자 클래스로 만들어진 정규식은 ‘[ ] 사이의 문자들과 매치

- 정규 표현식이 [abc]라면이 표현식의 의미는 ‘a ,b, c 중 한 개의 문자와 매치

- [ ] 안의 두 문자 사이에 하이픈(-)을 사용하면 두 문자 사이의 범위(From – To)를 의미

Ex) [a-zA-Z] : 알파벳 모두 // [0-9] : 숫자

- ^라는 메타문자는 반대(not)의의미를 가진다.

Ex) [^0-9] : 문자만( 숫자의반대이므로)

 

* 자주 사용하는 문자 클래스

\d : 숫자와 매치, [0-9]와 동일한 의미

\D : 문자와 매치, [^0-9]와 동일한 의미

\s : whitespace 문자(space tab처럼 공백을 표현하는 문자)와 매치, [\t\n\r\f\v]와 동일

\S : whitespace 문자가 아닌 것과 매치, [^\t\n\r\f\v]와동일한 표현식

\w : 문자 + 숫자(alphaneumeric)와매치, [a-zA-Z0-9_]와 동일한 표현식

\W : 문자 + 숫자(alphanumeric)이아닌 문자와 매치, [^a-zA-Z0-9_]와 동일한 표현식

Dot(.)

- 정규 표현식의 Dot(.)의메타 문자는 줄바꿈 문자인 \n을 제외한 모든 문자와 매치됨을 의미

Ex) a.b <- a b 사이에줄바꿈 문자를 제외한 어떤 문자가 들어가도 모두 매치

a[.]b <- a b 사이에Dot(.) 문자가 있으면 매치

([ ] 안에 .이 있으면Dot 메타 문자가 아닌 글자 . 자체를 의미)

 

반복 (*)

- 바로 앞에 있는 문자가 반복될 수 있음을 의미

Ex) ca*t <- *문자가 바로 앞에 있는 a 0번 이상 반복되면 매치

 

반복 (+)

- + *와 달리 최소1번 이상 반복될 때 사용. * 0부터라면, + 1부터임

 

반복({m, n}, ?)

- 반복 횟수를 제한하고 싶다면 {} 메타 문자를 사용 {m ,n}이라면 반복 횟수가 m부터n까지 매치 가능

Ex) {3,} -> 반복횟수 3이상인 경우, {,3} -> 반복횟수 3 이하

ca{2}t -> a 2번반복되면 매치

ca{2,5}t -> a 2번이상 5번 이하로 반복되면 매치

 

?가 의미하는 메타문자는 {0,1}

Ex)ab?c -> b 0~1번사용되면 매치

 

파이썬에서 정규 표현식을 지원하는 re 모듈

- 파이썬은 정규 표현식을 지원하기 위해 re(regular expression) 모듈을 제공한다.

사용법은 import re, re.compile을 사용한다.

 

정규식을 사용한 문자열 검색 (메서드 4가지)

- match() : 문자열의 처음부터 정규식과 매치되는지 조사

- search() : 문자열 전체를 검색하여 정규식과 매치되는지조사

- findall() : 정규식과 매치되는 모든 문자열(substring)을 리스트로 돌려줌

- finditer() : 정규식과 매치되는 모든 문자열(substring)을 반복 가능한 객체로 돌려줌

 

Match 객체의 메서드

- match 메서드와 search메서드를수행한 결과로 돌려준 match 객체에 대해 여러 메소드를 통해 활용할 수 있다.

- group() : 매치된 문자열을 돌려준다.

- start() : 매치된 문자열의 시작 위치를 돌려준다.

- end() : 매치된 문자열의 끝 위치를 돌려준다.

- span(): 매치된 문자열의 (시작, )에 해당하는 튜플을 돌려준다.

 

컴파일 옵션 ()안은 약어

- DOTALL (S) : dot 문자(.)가 줄바꿈 문자를 포함하여 모든 문자와 매치한다.

- IGNORECASE (I) : ·소문자에관계 없이 매치한다.

- MULTILINE(M) : 여러 줄과 매치한다. (^, $ 메타 문자의 사용과 관계가 있는 옵션)

- VERBOSE(X) : verbose 모드를 사용한다(정규식을 보기 편하게 만들 수도 있고 주석 등을 사용)

DOTALL, S

- 메타 문자는 줄바꿈 문자(\n)을제외한 모든 문자와 매치되는 규칙이 있다.

- 줄바꿈 만자도 포함하여 매치하고 싶다면 re.DOTALL 또는 re.S 옵션을 사용해 정규식을 컴파일

 

IGNORECASE, I

- re.IGNORECASE 또는 re.I옵션을 사용하면 [a-z] 정규식은 소문자를 의미하지만 대·소문자구분 없이 매치된다.

 

MULTILINE, M

- ^은 문자열의 처음을 의미하고,$는 문자열의 마지막을 의미한다.

Ex) ‘^python’ 문자열의 처음은 항상 python으로 시작

‘python$’ 문자열의 처음은 항상 python으로 끝남

- ^메타 문자를 문자열 전체의 처음이 아니라 각 라인의 처음으로인식시키고 싶은 경우, re.MULTILINE 또는 re.M이다.

 

VERBOSE, X

- 정규식을 주석 또는 줄 단위로 구분할 수 있는 옵션

 

백슬래시

- 예를들어 “\section” 의문자열을 찾기 위한 정규식을 만들면 \s문자가 whitespace로해석된다.

[\t\n\r\f\v]section

-> \\section

- 정규식에 Raw String임을알려주려면 r문자를 삽입하면 된다.

 

 

 

 

3.

data = """
park 800905-1049118
kim 700905-1059119
"""

result = []

for line in data.split("\n"):
word_result = []
for word in line.split(" "):
if len(word) == 14 and word[:6].isdigit() and word[7:].isdigit():
word = word[:6] + "-" + "*******"
word_result.append(word)
result.append(" ".join(word_result))

  Comments,     Trackbacks
Day10 Do it! 점프 투 파이썬 스터디 노트

Do it! 점프 투 파이썬

박응용

이지스퍼블리싱 2019.06.20

 

1. 공부한 쪽수

276 ~ 289

 

2. 공부 내용 요약

 

* 게시판 페이징하기

함수 이름 : getTotalPage

파라미터 : 게시물 총 건수(m),한 페이지에 보여 줄 게시물 수(n)

출력값 : 총 페이지 수

 

 

 

 

 

- 총 페이지 수 = (총건수 / 한 페이지당 보여 줄 건수) + 1

 

 

* 간단한 메모장 만들기

기능 : 메모 추가, 메모조회하기

입력받는 값 : 메모 내용, 프로그램실행 옵션

출력값 : memo.txt

 

 

# c:/doit/memo.py
import sys

option = sys.argv[1]

if option == '-a':
memo = sys.argv[2]
f = open('memo.txt', 'a')
f.write(memo)
f.write('\n')
f.close()
elif option == '-v':
f = open('memo.txt')
memo = f.read()
f.close()
print(memo)

 

 

* 탭을 4개의 공백으로바꾸기

기능 : 문서 파일 읽어 들이기, 문자열변경하기

입력받는 값 : 탭을 포함한 문서 파일

출력값 : 탭이 공백으로 수정된 문서 파일

 

# c:/doit/tabto4.py
import sys

src = sys.argv[1]
dst = sys.argv[2]

f = open(src)
tab_content = f.read()
f.close()

space_content = tab_content.replace("\t", " "*4)
print(space_content)

f = open(dst, 'w')
f.write(space_content)
f.close()

 

 

 

* 하위 디렉터리 검색하기

 

# C:/doit/sub-dir/search.py
import os

def search(dirname):
try:
filenames = os.listdir(dirname)
for filename in filenames:
full_filename = os.path.join(dirname, filename)
if os.path.isdir(full_filename):
search(full_filename)
else:
ext = os.path.splitext(full_filename)[-1]
if ext == ".py":
print(full_filename)
except PermissionError:
pass

search("c:/")

  Comments,     Trackbacks
Day9 Do it! 점프 투 파이썬 스터디 노트

 

Do it! 점프 투 파이썬

박응용

이지스퍼블리싱 2019.06.20

1. 공부한 쪽수

266 ~ 275

2. 공부 내용 요약

파이썬 프로그래밍, 어떻게 시작해야 할까?

- 프로그램을 만들려면 가장 먼저 ‘입력’과 ‘출력’을 생각하라

Ex) 구구단 프로그램 짜기 순서

① 결괏값을 입력받는 변수 result를만든다. (result = GuGu(2))

② 결괏값 형태를 고려한다 (리스트- 방식)

③ 함수 생성

>>> def GuGu(n): print(n)

④ 결괏값을 담은 리스트 생성

>>> def GuGu(n):

result= []

⑤ append 함수를 사용해 result에결괏값을 담는다.

>>> def GuGu(n):

result= []

result.append(n*1)

result.append(n*2)

⑥ 반복을 줄이기 위해 while 반복문을만든다.

>>> I = 1

>>> while I < 10:

Print(i)

I= I + 1

⑦ 함수를 완성한다.

 

3과 5의 배수 합하기

Ex) 10미만의 자연수에서 3과5의 배수를 구하면 3, 5, 6, 9이다. 이들의 총합은 23이다.

1000 미만의 자연수에서 3의배수와 5의 배수 총합을 구하라.

- 문제의 2가지 포인트를분석한다. 하나는 1000미만의 자연수를 구하는 것, 다른 하나는 3과 5의배수를 구하는 것

① n = 1

While n < 1000:

print(n)

n+= 1

for n in range(1, 1000):

print(n)

② result = 0

For n in range(1, 1000):

Ifn % 3 == 0 or n % 5 ==0:

result+= n

Print(result)

3.

#GuGu.py

def GuGu(n):

result = []

i = 1

while i < 10:

result.append(n * i)

i = i + 1

return result

print(GuGu(2))

# 결괏값 : [2, 4, 6, 8, 10, 12, 14, 16, 18]

#GetMultiple.py

result = 0

for n in range(1, 1000):

if n % 3 == 0 or n % 5 == 0:

result += n

print(result)

#결괏값 : 233168</pre>

  Comments,     Trackbacks
Day8 Do it! 점프 투 파이썬 스터디 노트

Do it! 점프 투 파이썬

박응용

이지스퍼블리싱 2019.06.20

1. 공부한 쪽수

222 ~ 265

2. 공부 내용 요약

예외 처리

- 때때로 발생하는 오류를 무시하고 싶을 때 파이썬은 try, except를 사용해 오류를 처리할 수 있게 해준다.

- 오류의 종류는 다양하다.

Ex) 없는 파일을 열려고 하면 FileNotFoundError오류,

4를 0으로 나누려고 하면ZeroDivisionError,

리스트 [1,2,3]인데 a[4]를얻으려고 하면 IndexError 등

 

- try, except문은 try블록 수행 중 오류가 발생하면 except 블록이 수행되며, 오류가 발생하지 않으면 except 문은 실행되지 않는다.

① try, except만쓰는 방법

②발생 오류만 포함한 except문

③발생 오류와 오류 메시지 변수까지 포함한 except문

 

- try, finally절에서 finally절은try문 수행 도중 예외 발생 여부에 상관없이 항상 수행된다.

일반적으로 finally 절은 사용한 리소스를 close 해야 할 때에 많이 사용한다.

- except문에 pass를적으면 오류를 그냥 회피하도록 작성한다.

- raise 명령어를 사용해 강제로 오류를 발생시킬 수 있다.

(NotImplementedError)

- 특수한 경우에만 예외 처리를 하기 위해 예외를 만들어서 사용하기도한다.

(Exception 클래스 상속)

 

 

 

내장 함수

- abs(x): 어떤 숫자(x)를입력받았을 때, 그 숫자의 절댓값을 돌려준다.

- all(x) : 반복 가능한(iterable)자료형 x를 입력 인수로 받으며 x가 모두 참이면True, 거짓이 있다면 False

- any(x) : x중 하나라도 참이 있으면 True, x가 모두 거짓일 때에만 False, all(x)의 반대

- chr(i) : 아스키(ASCII)코드 값을 입력받아 그 코드에 해당하는 문자를 출력

- dir : 객체가 자체적으로 가지고 있는 변수나 함수를 보여줌

- divmod(a, b) : 2개의 숫자를 입력으로 받고, a를 b로 나눈 몫과 나머지를 튜플 형태로 돌려줌

- enumerate : 열거하다라는 뜻으로 순서가 있는 자료형(리스트·튜플·문자열)을 입력 받아 인덱스를 포함하는 enumerate 객체를 돌려줌, 즉 자료형의 현재 순서과 그 값을 알기

- eval(expression) : 실행 가능한 문자열을 입력 받아문자열을 실행한 결괏값을 돌려줌

- filter : 첫번째 인수로 함수 이름을, 두 번째 인수로 그 함수에 차례로 들어갈 반복가능한 자료형을 입력 받아서 두 번째 인수가 반복 가능한 자료형요소가 첫 번째 인수인 함수에 입력되었을 때 반환 값이 참인 것만 묶어서 돌려줌

- hex(x) : 정수 값을 입력받아 16진수로 변환하여 돌려줌

- id(object) : 객체를 입력받아 객체 고유 주소 값(레퍼런스)를 돌려줌

- input([prompt]) : 사용자 입력을 받음

- int(x) : 문자열 형태의 숫자나 소수점이 있는 숫자 등을정수 형태로 돌려줌

- isinstance(object, class) : 첫 번쨰 인수로인스턴스, 두 번째 인수로 클래스 이름을 받아 입력 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여참이면 True, 거짓이면 False를 돌려줌

- len(s) : 입력값 s의길이(요소의 전체 개수)를 돌려줌

- list(s) : 반복 가능한 자료형 s를 입력받아 리스트로 만들어 돌려줌

- map(f, iterable) : 함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받으며, 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려줌

 

- max(iterable) : 인수로 반복 가능한 자료를 입력받아최댓값을 돌려줌

- min(iterable) : max와 반대로 최솟값을 돌려줌

- oct(x) : 정수 형태의 숫자를 8진수 문자열로 바꾸어 돌려줌

- open(filename, [mode]) : ‘파일 이름’과 ‘읽기 방법’을 입력받아파일 객체를 돌려줌

(mode 생략시 기본값은 읽기모드(r))

- ord(c) : 문자의 아스키 코드 값을 돌려줌

- pow(x,y) : x,y의 제곱한 결괏값을 돌려줌

- range([start,] stop [,step])는 for문과 함께 자주 사용되며, 입력 받은 숫자에 해당하는 범위 값을반복 가능한 객체로 만들어줌

- round(number[,ndigits]) : 숫자를 입력받아반올림해 줌

- sorted(iterable) : 입력값을 정렬한 후. 그 결과를 리스트로 돌려줌

- str(object) : 문자열 형태로 객체를 변환하여 돌려줌

- sum(iterable) : 입력받은 리스트나 튜플의 모든 요소의합을 돌려줌

- tuple(iterable) : 반복 가능한 자료형을 입력받아튜플 형태로 바꾸어 돌려줌

- type(object) : 입력값의 자료형이 무엇인지 알려줌

- zip(*iterable) : 동일한 개수로 이루어진 자료형을묶어 주는 역할을 함

 

외장 함수 (자주 사용되는 라이브러리)

sys : 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해줌

- sys.exit : 강제로 스크립트 종료

- sys.path : 자신이 만든 모듈 불러와 사용(모듈 저장 위치)

 

Pickle : 객체의 형태를 그대로 유지하면서 파일에 저장하고 불러올수 있게 하는 모듈

- pickle.dump

 

OS : OS 모듈은 환경 변수나 디렉터리, 파일 등의 OS 자원을 제어할 수 있게 해주는 모듈이다.

- os.environ : 현재 시스템의 환경 변수 값을 보여줌

- os.chdir : 현재 디렉터리 위치를 변경함

- os.getcwd : 현재 자신의 디렉터리 위치를 돌려줌

- os.system : 시스템 자체의 프로그램이나 기타 명령어를파이썬에서 호출 할 수 있다.

- os.open : 시스템 명령어를 실행한 결괏값을 읽기 모드 형태의파일 객체로 돌려줌

- os.mkdir(디렉터리) : 디렉터리를생성함

- os.rmdir (디렉터리) :디렉터리를 삭제한다.(단 디렉터리가 비어있어야 삭제가능)

- os.unlink(파일 이름): 파일을 지운다.

- os.rename(src.dst) : src라는 이름의 파일을dst라는 이름으로 바꾼다.

 

shutil : 파일을 복사해 주는 파이썬 모듈이다.

globa(pathname) : 디렉터리 안의 파일들을 읽어서 돌려줌

tempfile : 파일을 임시로 만들어서 사용할 때 유용한 모듈

time

- time.time : UTC를 사용하여 현재 시간을 실수 형태로돌려줌

- time.localtime : time.time()이 돌려준 실수값을 사용해서 연도,월,일,시,분,초… 의 형태로 바꾸어주는함수

- time.asctime : time.localtime에 의해서반환된 튜플 형태 값을 인수로 받아서 날짜와 시간을 알아보기 쉬운 형태로 돌려줌

- time.ctime : time.asctime을 간편하게 표시해줌단, ctime은 항상 현재 시간만을 돌려줌

 

- time.strftime : strftime은 시간에 관계된 것을세밀하게 표현하는 여러가지 포맷 코드 제공

(p.254 참고)

- time.sleep : 주로 루프안에서 많이 사용하며, 일정한 시간 간겨글 두고 루프 실행 가능

 

Calendar : 파이썬에서 달력을 볼 수 있게 해주는 모듈

- calendar.calendar(연도) : 그 해 전체 달력 추천

- calendar.prcal(연도): calendar.calendar와 동일

- calendar.weekday : 그 날짜에 해당하는 요일 정보를돌려줌 (월:0 ~ 일:6)

- calendar.monthrange : 입력받은 달의 1일이 무슨 요일인지, 그 달이 며칠까지 있는지를 튜플 형태로 돌려줌

 

Random : 난수를 발생시키는 모듈

- random.randit : 정수 값을 돌려줌

- random_pop : random 모듈의 choice 함수를 사용하여 좀 더 직관적으로 만들 수 있음

- random.choice : 입력 받은 리스트에서 무작위로 하나를선택하여 돌려줌

- random.shuffle : 무작위로 섞을 때 사용

 

Webbrowser : 자신의 시스템에서 사용하는 기본 웹 브라우저를자동으로 실행하는 모듈

-webbrowser.opej : 웹 브라우저가 이미 실행된 상태라면입력 주소로 이동, 아니라면 새로 웹 브라우저를 실행후 해당 주소로 이동

- webbrowser.open_new : 웹 브라우저가 실행된 상태이더라도새로운 창으로 해당 주소 열림

 

 

  Comments,     Trackbacks
Day7 Do it! 점프 투 파이썬 스터디 노트

Do it! 점프 투 파이썬

박응용

이지스퍼블리싱 2019.06.20

1. 공부한 쪽수

182 ~ 221

2. 공부 내용 요약

파이썬 날개 달기

클래스와 객체

- 클래스는 과자 틀과 비슷하다. 즉, 클래스란 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계 도면이고(과자틀), 객체란 클래스로 만든 피조물(과자 틀을 사용해 만든과자)을 뜻한다.

 

- 클래스로 만든 객체는 각각이 고유한 성격을 가진다. (다른 객체에 영향을 미치지 않는다.)

 

생성자

- 객체에 초깃값을 설정해야 할 필요가 있을 때는 생성자를 구현하는방법이 안전하다.

- 생성자란 객체가 생성될 때 자동으로 호출되는 메소드를 의미하며, 파이썬에서는 __init__을 사용하면 그 메서드는 생성자가 된다.

 

클래스의 상속

- 물려받는 다는 의미의 상속으로 어떤 클래스가 다른 클래스의 기능을물려받을 수 있게 만드는 것을 의미한다.

- 상속은 기존 클래스를 변경하지 않고 기능추가나 기존 기능 변경시사용하는데, 기존 클래스가 라이브러리 형태로 제공되지 않거나, 수정이허용되지 않는 상황이라면 상속을 사용해야 한다.

- 메서드 오버라이딩이라는 개념이 있는데, 다른 클래스를 상속받은 클래스를 만들어 부모 클래스(상속한 클래스)에 있는 메서드를 동일한 이름으로 다시 만드는 것을 의미한다.

 

클래스 변수

- 클래스 변수는 클래스 안에 함수를 선언하는 것처럼 클래스 안에변수를 선언하여 생성한다.

- 클래스 변수는 클래스로 만든 모든 객체에 공유된다는 특징이 있다.

 

 

모듈

- 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일이다.

- import를 사용해 모듈을 불러와 사용할 수 있다.

- 모듈은 클래스나 변수를 포함할 수도 있다.

 

패키지

- 패키지는 도트를 사용해 파이썬 모듈을 계층적으로 관리할 수 있게해준다.

- 패키지를 구성하면 공동작업이나 유지 보수에서 유리하고, 다른 모듈과 이름이 겹치더라도 안전하게 사용할 수 있다.

- __init__.py 파일은 해당 디렉터리가 패키지의 일부임을알려주는 역할을 한다.

- 해당 패키지에 있는 모든 모듈을 import 하고 싶을 때는 __init__.py 파일에 __all__변수를 설정하고 import 할 수 있는 모듈을 정의해주어야 한다.

3. 실습사진

 

  Comments,     Trackbacks