from itertools import permutations
def getPermutations(ns, r):
plist = list(permutations(ns, r))
print(f'{len(ns)}P{r} 개수: {len(plist)}')
for n in permutations(ns, r):
print(n, end='')
import permutation as pt
listVar = [1, 2, 3, 4, 5, 6, 7, 8]
rVar = 3
pt.getPermutations(listVar, rVar)
-> 바로 순열 구해주는 모듈을 가져와 사용(순열 리스트를 뽑을 수 있음)
def getPermutationCnt(n, r):
result = 1
for n in range(n, n-r, -1):
print('n: {}'.format(n))
result = result * n
return result
import permutation as pt
numN = int(input('numN 입력: '))
numR = int(input('numR 입력: '))
print(f'{numN}P{numR}: {pt.getPermutationCnt(numN, numR)}')
-> 순열 구하는 공식을 써서 모듈 만들어 사용하기
def getCombinationCnt(n, r):
for n in range(n, (n-r), -1):
resultP = resultP * n
for n in range(r, 0, -1):
resultR = resultR * n
resultC = int(resultP / resultR)
return resultC
class NormalTv:
def __init__(self, i=32, c='black', r='full-HD'):
self.inch = i
self.color = c
self.resolution = r
self.smartTv = 'off'
self.aiTv = 'off'
def turnOn(self):
print('TV power on!!')
def turnOff(self):
print('TV power off!!')
def printTvInfo(self):
print(f'inch: {self.inch}inch')
print(f'color: {self.color}')
print(f'resolution: {self.resolution}')
print(f'smartTV: {self.smartTv}')
print(f'aiTV: {self.aiTv}')
class Tv4K(NormalTv):
def __init__(self, i, c, r='4k'):
super().__init__(i, c, r)
def setSmartTv(self, s):
self.smartTv = s
class Tv8K(NormalTv):
def __init__(self, i, c, r='8k'):
super().__init__(i, c, r)
def setSmartTv(self, s):
self.smartTv = s
def setAiTv(self, a):
self.aiTv = a
from abc import ABCMeta
from abc import abstractmethod
class AbsDictionary(metaclass=ABCMeta):
def __init__(self):
self.wordDic = {}
@abstractmethod
def registWord(self, w1, w2):
pass
@abstractmethod
def removeWord(self, w1):
pass
@abstractmethod
def updateWord(self, w1, w2):
pass
@abstractmethod
def searchWord(self, w1):
pass
class KorToEng(AbsDictionary):
def __init__(self):
super().__init__()
def registWord(self, w1, w2):
print(f'[KorToEng] registWord() : {w1} to {w2}')
self.wordDic[w1] = w2
def removeWord(self, w1):
print(f'[KorToEng] removeWord() : {w1}')
del self.wordDic[w1]
def updateWord(self, w1, w2):
print(f'[KorToEng] updateWord() : {w1} to {w2}')
self.wordDic[w1] = w2
def searchWord(self, w1):
print(f'[KorToEng] searchWord() : {w1}')
return self.wordDic[w1]
def printWords(self):
for k in self.wordDic.keys():
print(f'{k} : {self.wordDic[k]}')
-> 책 등록, 삭제, 수정, 검색, 출력 가능
-> 추상메소드를 쓰는 이유 : 이 메소드를 쓰라고 강제하기 위함
from time import sleep
import random
class Song:
def __init__(self, t, s, pt):
self.title = t
self.singer = s
self.play_time = pt
def printSongInfo(self):
print(f'title: {self.title}, singer: {self.singer}, play_time: {self.play_time}')
class Player:
def __init__(self):
self.songList = []
self.isLoop = False
def addSong(self, s):
self.songList.append(s)
def play(self):
if self.isLoop:
for s in self.songList:
print(f'Title: {s.title}, Singer: {s.singer}, Play_time: {s.play_time}sec')
sleep(s.play_time)
else:
for s in self.songList:
print(f'Title: {s.title}, Singer: {s.singer}, Play_time: {s.play_time}sec')
sleep(s.play_time)
def shuffle(self):
random.shuffle(self.songList)
def setIsLoop(self, flag):
self.isLoop = flag
import mp3player as mp3
s1 = mp3.Song('신호등', '이무진', 3)
s2 = mp3.Song('Permission to Dance', 'BTS', 4)
s3 = mp3.Song('Butter', 'BTS', 2)
s4 = mp3.Song('Weekend', '태연', 3)
s5 = mp3.Song('좋아좋아', '조정석', 3)
player = mp3.Player()
player.addSong(s1)
player.addSong(s2)
player.addSong(s3)
player.addSong(s4)
player.addSong(s5)
player.setIsLoop(False)
player.shuffle()
player.play()
<제로베이스 데이터 취업 스쿨>