728x90
01. 재귀 호출 함수
- 자기자신을 계속 호출하는 로직으로 일반적으로 1000회 이상 반복하면 에러가 발생함으로
재귀호출을 중지하는 제어문이 필용함.
PyDev setting
project name: crawler
1. 모든 처리를하고 재귀함수를 호출하는 경우
[실행 화면]
recursionLevel: 5
recursionLevel: 4
recursionLevel: 3
recursionLevel: 2
recursionLevel: 1
recursionLevel: 0
▷ /basic/recursion1.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
def process(recursionLevel):
print('recursionLevel: ' + str(recursionLevel))
recursionLevel = recursionLevel - 1
if (recursionLevel < 0):
return
process(recursionLevel) # 자기 자신 호출
if __name__ == '__main__':
process(5)
-------------------------------------------------------------------------------------
2. 재귀호출을 먼저하고 로직을 처리하는 경우
[실행 화면]
recursionLevel: 0
recursionLevel: 1
recursionLevel: 2
recursionLevel: 3
recursionLevel: 4
▷ /basic/recursion2.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
def process(recursionLevel):
recursionLevel = recursionLevel - 1
if (recursionLevel < 0):
return
process(recursionLevel)
print('recursionLevel: ' + str(recursionLevel))
if __name__ == '__main__':
process(5)
-------------------------------------------------------------------------------------
02. 람다 표현식(익명 함수(lambda function))
- 한줄로 표현하는 함수
- lambda 라는 키워드로 익명 함수를 정의할 수 있다.
- 형식: lambda 인자1,인자2, … : 표현식
- map: list의 요소를 순차적으로 가져올 수 있는 Iterator 객체 생성
[실행 화면]
람다 함수 실습
3
-----------------------------------
<class 'list'>
10
15
20
25
30
-----------------------------------
8
12
16
20
24
-----------------------------------
6
9
12
15
18
-----------------------------------
▷ /basic/lamdaExam.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
print('람다 함수 실습')
add = lambda a, b : a+b # 람다 함수 선언
print(add(1,2))
print('-----------------------------------')
x = [2, 3, 4, 5, 6] # list
y = [] # list
for v in x : # list 요소 순차적 추출 2, 3, 4, 5, 6
y = y + [v * 5]
print(type(y)) # <class 'list'>
for i in y:
print(i)
print('-----------------------------------')
x = [2, 3, 4, 5, 6]
y = [v * 4 for v in x]
for i in y:
print(i)
print('-----------------------------------')
data = [2, 3, 4, 5, 6]
# map: list의 요소를 순차적으로 가져올 수 있는 Iterator 객체 생성
# data list에서 su 변수로 원소를 꺼낸후 3을 곱해 map의 요소로 사용
mapresult = map(lambda su : su * 3, data)
# print(str(list(mapresult)))
for i in mapresult: # map
print(i)
-------------------------------------------------------------------------------------
03. random 난수 발생
[실행 화면]
0.8792920747978517
0.8925141487274022
0.41608222846384024
0.9763061019930674
0.5175325632759177
-----------------------------
6
7
4
2
7
-----------------------------
7
9
7
9
9
-----------------------------
7
8
7
9
7
-----------------------------
-4
4
3
5
-2
-----------------------------
▷ /basic/randomExam.py
-------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
import random
for i in range(5): # 0 ~ 4
print(random.random()) # 0.0 ~ 1.0 미만
print('-----------------------------')
for i in range(5):
print(random.randint(1, 10)) # 1 ~ 10
print('-----------------------------')
for i in range(5):
print(random.randint(0, 5)+5) # 5 ~ 10
print('-----------------------------')
for i in range(5):
print(random.randint(1, 5)+5) # 6 ~ 10
print('-----------------------------')
for i in range(5):
print(random.randint(-80, 0)+40) # -40 ~ +40
print('-----------------------------')
-------------------------------------------------------------------------------------
04. LXML 설치
- whl(휠): 파이썬 패키지 파일(Eclipse Plugin과 비슷함)
- pip: 파이썬 패키지 관리 툴, 설치 및 삭제, update 지원
- whl(휠): 파이썬 패키지 파일(Eclipse Plugin과 비슷함)
- pip: 파이썬 패키지 관리 툴, 설치 및 삭제, update 지원
- Python에서 XML parser로서 주로 이용되는 패키지
- https://pypi.python.org/pypi/lxml -> lxml 3.7.3
1. 다운로드
- lxml-3.7.3-cp36-cp36m-win_amd64.whl (md5) 다운로드
2. 설치
F:\201701_python\setup>pip install lxml-3.7.3-cp36-cp36m-win_amd64.whl
Processing f:\201701_python\setup\lxml-3.7.3-cp36-cp36m-win_amd64.whl
Installing collected packages: lxml
Successfully installed lxml-3.7.3
F:\201701_python\setup>pip list
DEPRECATION: The default format will switch to columns in the future. You can us
e --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.con
f under the [list] section) to disable this warning.
beautifulsoup4 (4.5.3)
lxml (3.7.3)
pip (9.0.1)
setuptools (28.8.0)
six (1.10.0)
wxPython-Phoenix (3.0.3.dev2902+a79cd32)
3. 패키지 인식이 안될시 Eclipse 재시작
728x90
댓글