(수업내용 : 유용한 모듈
-
파이썬에는 많은 모듈들이 제공된다. 이들 모듈은 다양한 분야에 걸쳐서 전문가들이 작성한 것으로 많은 테스트
를 거쳤기 때문에, 안정되고 효율적인 코드이다. 따라서 가능하면 이들을 찾아서 적극적으로 사용하는 것이 좋다.
개발자들은 어떤 코드를 작성하기에 앞서서 유사한 기능을 하는 코드가
파이썬 모듈에 있는지를 먼저 확인하는
것이 좋다. 잘 정리되고 충분한 테스트를 거친 좋은 모듈들이 제공되고 있는데 굳이 코드를 재 작성할 필요는 없
는 것이다.
프로그래밍에서 중요한 원칙 중의 하나는 이전에 개발된 코드를 적극적으로 재활용하는 것이다. 이 절
에서는
파이썬에서 제공하는 모듈 중에서 가장 많이 사용되는 것을 중심으로 몇 개만 살펴보도록 하자.
① copy 모듈
;
파이썬에서는 객체를 복사할 때, 2가지 방법으로 복사할 수 있다.
▶ 얇은 복사(shallow copy) - 객체의 참조값(주소)만 복사되고 객체 자체는 복사되지 않는다.
▶ 깊은 복사(deep copy) - 객체까지 복사된다.
유용한 모듈
① copy 모듈
; 우리가 리스트와 같은 객체를 복사할 때, 단순히 리스트를 참조하는 변수만 하나 더 만든다.면 이것은 얕
은 복사가 된다. 이것은 리스트에서 설명한 바 있다.
; 만약 얕은 복사가 개발자가 원하는 것이 아니라면 깊은 복사를 할 수 있다. 한 가지 방법이 Copy 모듈의
deepcopy() 함수를 사용하는 것이다.
② random 모듈
; random 모듈은 난수를 발생할 때 사용하는 모듈이다. 난수는 다양한 용도로 사용된다. 예를 들어서 카
드를 덱에서 뽑을 때도 사용하고 동전 던지기를 할 때도 난수를 이용한다. 아니면 일회용 패스워드를 생
성할 때나 웹사이트에서 사용자에게 랜덤하게 어떤 상품을 소개할 때도 사용된다.
import copy
colors = ["red", "blue", "green"]
clone = copy.deepcopy(colors)
clone[0] = "white"
print(colors)
print(clone)
출력결과
['red', 'blue', 'green']
['white', 'blue', 'green']
유용한 모듈
② random 모듈
; random 모듈에서는 난수를 발생하는 다양한 함수들이 지원된다.
▶ randint() - 정수 범위의 난수를 생성하려면 randint()를 사용한다. randint(1, 6)와 같이 정수 구간을
인수로 줄 수 있다. randint(1, 6)는 1, 2, 3, 4, 5, 6 중의 하나를 랜덤하게 생성한다.
► random() – 0.0에서 1.0 미만의 난수를 반환한다. 민약 더 큰 수를 원한다면 원하는 범위를 곱하면
된다.) import random
random.random()*100
출력결과
81.1618515880431
import random
print(random.randint(1, 6))
출력결과
6
print(random.randint(1, 6))
출력결과
유용한 모듈
② random 모듈
; random 모듈에서는 난수를 발생하는 다양한 함수들이 지원된다.
▶ choice() - 주어진 시퀀스의 항목을 랜덤하게 반환한다. 예를 들어서 다음과 같은 코드는 “red", “gr
een", "blue" 중에서 하나를 랜덤하게 반환한다.
▶ shuffle() - 리스트의 항목을 랜덤하게 섞는다.
▶ randrange(start, stop[, step]) - range(start, stop, step) 구간으로부터 랜덤하게 요소를 생성한다.
import random
random.randrange(0, 101, 3)
출력결과
81
import random
myList = [ [x] for x in range(10) ]
random.shuffle(myList)
print(myList)
출력결과
[[3], [2], [7], [9], [8], [1], [4], [6], [0], [5]] # 매번 달라짐
import random
myList = [ "red", "green", "blue" ]
random.choice(myList)
출력결과
'blue'
import sys
print(sys.path)
출력결과
['D:\\
파이썬 작업\\21장(이터레이터,제너레이터,연산자오버로딩,모듈)', 'D:\\
파이썬 작업', 'C:\\Users\\1\\AppData\\Local\\Programs\\
python\\
python38\\
python38.zip', 'C:\\Users\\1\\AppData\\Local\\Programs\\
python\\
python38\\DLLs', 'C:\\Users\\1\\AppData\\Local\\Programs\\
python\\
python38\\lib', 'C:\\Users\\1\\AppData\\Local\\Programs\\
python\\
python38', 'C:\\Users\\1\\AppData\\Local\\Programs\\
python\\
python38\\lib\\site-packages'] 안녕하세요 강사님 오늘도 수고많으셨습니다. 항상 친절하고 자세하게 하는 강의 잘 듣고 있습니다 .저도 강사님의 열정에 보답하기 위해 열심히 공부하겠습니다 .감사합니다 .수고 많으셨습니다.^^