:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
19/11/13 00:54
마지막 두 줄을 이렇게 바꿔주세요
__if isWord: ____break __else ____print("검색 불가")
19/11/13 01:18
음, 이거는 결과가 없으면 break를 하는 건가요?
저는 결과가 없으면 멈추지 않고 다시 입력 받고 검색하는 걸 반복하고 싶은거라ㅜㅜ
19/11/13 01:01
최소한으로 고쳐서 수정한다면 while True: 대신 while isWord: 를 해주시면 깔끔합니다.
그러나 찾을 때까지 무한으로 돌린다는 말이 이해가 안되는데, 어차피 못찾으면 무한으로 돌려도 계속 못찾는건데 혹시 입력을 다시 받으시려는건가요? 그렇다면 input을 wihle 안에 넣어주시면 되구요.
19/11/13 01:17
네, 제가 "무한"이라고 뜻을 잘못 썼나보네요ㅜㅜ 정확하게 말하자면 1. 입력을 한다. 2. 검색을 한다. 3-1. 결과가 있다-> 결과를 출력한다. 3-2. 결과가 없다 -> "결과 없음"이라고 출력하고 다시 입력받는다 입니다
그러면 while isWord == True: ______k = input("검색어 입력") 이렇게 하고 제가 쓴 코드를 이어서 쓰면 될까요?
19/11/13 01:56
그리고 수정하신 질문에 이미지로 첨부된 코드를 보면 break가 처음과는 다른 곳에(for 밖에) 있는데, 이 break는 for를 나가기 위한 break이므로 처음 쓰신 위치(for 안에)에 있어야 합니다.
19/11/13 02:34
break를 처음에 쓴 위치에 넣으면 제가 다시 첨부한 사진처럼 입력을 계속 받더라구요ㅜㅜ
그래서 안으로 들여썼더니 멈추길래.... 뭐가 잘못됐을까요ㅜㅜ 정말 죄송합니다
19/11/13 02:32
루프가 중첩되어 있을 때, break 는 자신과 가장 가까운 루프에만 영향을 미칩니다. 위의 코드에서는 for s in range(len(L)): 부분.
그래서 중첩된 루프를 벗어나기 위해 isWord 를 사용하는 것인데, 위에 "NameError: name 'isWord' is not defined" 에러가 난 부분은 에러 메시지 내용 대로 isWord 가 정의되지 않는 상태에서 while 을 사용하려고 해서 생긴 에러입니다. 가독성을 위해 변수명을 바꿔서 적으면 아래처럼 while 문에서 찾기 전에 정의를 해주어야 합니다. found_song = False while not found_song: ____# ..... ____if 노래를 찾음: ________found_song = True
|