2017-03-18 1 views
0

나는 파이썬에서 초보자이며 사용자가 입력 한 제품 목록을 인쇄하는 코드를 만들었지 만 인쇄 할 때마다 마지막 요소에 도달하면 중단되지 않습니다 ...
EDIT : 문자열은 공백이 없어야합니다. 예 : 당신은 목록 인쇄하기 유지 이유는 무한 루프를 가지고목록의 항목을 한 번만 인쇄하는 방법 (파이썬 2.7)

def menu(): 
    print "1. View products" 
def view(products): 
    print products 
def main(): 
    str1 = raw_input("") 
    products =str1.split(',') 
    menu() 
    choice = input("") 
    while (choice != 0): 
     if(choice == 1): 
      view(products) 
main() 
+0

while 루프 내에서 절대로 변경하지 않으므로 루프가 계속 실행됩니다 – ArchiFloyd

+1

선택 사항을 업데이트하지 마십시오 while 루프 내부에는 항상 첫 번째 선택 항목과 함께 실행됩니다. 루프의 끝에'choice = input ("")'을 넣으시오. –

답변

1

: 코티지 치즈, 베이컨
다음은 내 코드입니다. 한 번, 그렇지 않으면 루프가이 코드에서는에만 인쇄 목록을

choice = None 
while (choice != 0) and (choice != 1): 
    if(choice == 1): 
     view(products) 
    choice = input("Type 1 to view products, 0 to quit: ") 
+0

이 코드는 작동하지 않을까 걱정됩니다. while 루프 전에 while 선택을 1로 설정하면 while 루프에 들어 가지 않게됩니다. – darvark

+0

정확함, 지적 해 주셔서 고맙습니다. –

1

을 종료하지 않습니다보다 더 많은 입력을 요구해야하고,이 경우에있는 동안은 무한 루프를 생성합니다. 예제 제품에는 목록이 있습니다. 그렇다면 왜 함수를보기 위해 전달하지 않고 루프에 전달하여 제품의 내용을 인쇄하십시오

관련 문제