for in문 왜 실행이 안되는지 질문

조회수 756회
menu = 0
friendList = []
phonenumber = []
#전화번호부 메뉴를 함수로 작성한다.
def print_menu():
    print("------------------------------------------------")
    print("1. 친구 리스트 출력")
    print("2. 친구 이름/전화번호 추가")
    print("3. 친구 전화번호 검색")
    print("4. 친구 이름/전화번호 삭제")
    print("5. 친구 이름/전화번호 변경")
    print("9. 종료")
    print("------------------------------------------------")
    menu = int(input("*** 메뉴를 선택하시오: "))
    print("------------------------------------------------")
    return int(menu)

class FDirectory:
    def _init_(self):
        self.friendList = []
    def append(self):
        self.friendList = friendList
        print("------------------------------------------------")
        nf = input("이름을 입력하시오: ")
        self.friendList.append(nf)
        print("------------------------------------------------")
        a_phonenumber = input("전화번호를 입력하시오: ")
        self.friendList.append(a_phonenumber)
        print("------------------------------------------------")
        print("*** 추가 완료 ***")
        print("------------------------------------------------")
    def printFList(self):
        for i in self.friendList:
            i.printF()
    def searchIndex(self):
        index = 0
        for i in range(len(self.friendList)):
            if Friend.getName[i]==sName:
                return index
            index=index+1
        return -1
    def searchNumber(self):
        sName = None
        print("------------------------------------------------")
        sName = input("검색하고 싶은 친구 이름을 입력하시오: ")
        if sName in name:
            order = name.index(sName)
            print("------------------------------------------------")
            print('"',name[order],'"',"전화번호: ",phonenumber[order])
            print("------------------------------------------------")
            print("*** 검색 완료 ***")
            print("------------------------------------------------")
        num = searchIndex(sName)
        return friendList[num].getNumber()
    def eraseIndex(self):
        index = 0
        for i in range(len(self.friendList)):
            if Friend.getName==eName:
                del(eName)
            index=index+1
        return -1
    def eraseNumber(self):
        num = eraseIndex(eName)

    def run(self):
        while(1):
            menu=print_menu()
            if menu == 1:
                FDirectory.printFList(self)
            elif menu == 2:
                FDirectory.append(self)
            elif menu == 3 :
                FDirectory.searchIndex(self)
                FDirectory.searhNumber(self)
            elif menu == 4:
                FDirectory.eraseIndex(self)
                FDirectory.eraseNumber(self)
            elif menu == 9:
                print("*** 프로그램 종료 ***")
                print("-------------------------------------------------")
                break

#전화번호부 메뉴대로 기능하는 클래스를 구현한다.
class Friend:
    #초기 이름과 전화번호가 존재하지 않는다고 한다.
    def __init__(self,name=None,phonenumber=None):
        self.name = name
        self.phonenumber = phonenumber
    def printF(self):
        for i in range(len(self.friendList)):
            print("== 친구 ",i+1,"================================")
            print("이름:",self.name[i])
            print("전화번호:",self.phonenumber[i])
            print("===================================")
        print("*** 출력 완료 ***")
        print("------------------------------------------------")

    def getName(self):
        return self.name
    def getNumber(self):
        return self.number

myList = FDirectory()
myList.run()

여기에서 def printFList(self): for i in self.friendList: i.printF()

부분이 실행안되고 'str' object has no attribute 'printF' 이렇게 뜨는데 어디에서 잘못된지 모르겠어서요 질문합니다.ㅜㅜstrong text

  • friendList에는 string 타입인 nf, a_phonenumber 가 저장되고 있습니다. 아마도 Friend 객체를 등록하고 싶은 모양인데...다시 한번 살펴보고 Frend 객체를 이름과 전화번호를 생성자에 대입하여 생성후 그것을 friendList 에 저장하세요. 정영훈 2018.11.12 01:01

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)