파이썬 myLineEditor

성규이·2021년 10월 16일
0
post-thumbnail

Data structure 과제였어요!

코드는 다음과 같아요

class ArrayList:
    def __init__(self):
        self.items = []
    def insert(self, pos, elem): self.items.insert(pos, elem)
    def delete(self, pos): return self.items.pop(pos)
    def isEmpty(self): return len(self.items)==0

class Another:
    def clear(): 
        global items
        items = []
    def find(item): return items.index(item)
    def replace(pos,elem): items[pos] = elem
    def sort(): items.sort()
    def merge(lst): items.extend(lst)
    def display(msg='ArrayList:') : print(msg, size(), items)
    def insert(pos, elem): items.insert(pos, elem)
    def delete(pos): return items.pop(pos)
    def getEntry(pos): return items[pos]
    def isEmpty(): return len(items)==0
    def size(): return len(items)
class Set:
    def __init__(self):
        self.items = []
    def size(self): return leng(self.items)
    def display(self, msg): print(msg, self.items)
    def contains(self, item): return item in self.items
    def insert(self,elem):
        if elem not in self.items:
            self.items.append(elem)
    def delete(self, elem):
        if elem in self.items:
            self.items.remove(elem)
    def union(self, setB):
        setC = Set()
        setC.items = list(self.items)
        for elem in setB.items :
            if elem not in self.items:
                setC.items.append(elem)
        return setC
    def intersect(self, setB):
        setC = Set()
        for elem in setB.items:
            if elem in self.items:
                setC.items.append(elem)
        return setC
    def difference(self, setB):
        setC = Set()
        for elem in self.items:
            if elem not in setB.items:
                setC.items.append(elem)
        return setC

def myLineEditor():
    list = ArrayList()
    while True:
        command = input("[메뉴선택] i-입력, d-삭제, r-변경, p-출력, l-파일읽기, s-저장, q-종료=> ")

        if command == 'i':
            pos = int(input(" 입력행 번호: "))
            str = input(" 입력행 내용: ")
            list.insert(pos,str)
        elif command == 'd':
            pos = int(input(" 삭제행 번호: "))
            list.delete(pos)
        elif command == 'r':
            pos = int(input(" 변경행 번호: "))
            str = input(" 변경행 내용: ")
            list.replace(pos, str)
        elif command == 'p':
            print('Line Editor')
            for line in range(list.size()):
                print('[%2d] '%line, end='')
                print(list.getEntry(line))
        elif command =='l':
            filename = 'text.txt'
            infile = open(filename, "r")
            lines = infile.readlines()
            for line in lines:
                list.insert(list.size(), line.rstrip('\n'))
            infile.close()
        elif command == 's':
            filename = 'text.txt'
            outfile = open(filename, "w")
            for i in range(list.size()):
                outfile.wrtie(list.getItem(i)+'\n')
                outfile.close()
        elif command == 'q': 
            return

myLineEditor()
profile
안녕 눈 코 입 달린 감자야

0개의 댓글