2017-11-20 2 views
0

사용자가 목록에 새 항목을 추가하기를 원합니다. 사용자가 "q"를 입력하면 프로그램을 종료하고이 목록을 다른 기능의 입력으로 사용합니다. 하지만 "Q"와 루프 벗어날 수 목록에 추가된다함수 밖에서 종료하기 위해 사용자가 "q"를 입력 한 후에 프로그램이 종료되지 않습니다. while 루프

또한
base = ["item1", "item2"] 

def add_item(item, base=base): 
    item=item.upper() 
    base.append(item) 
    return base 

while True: 
    user_input = add_item(input("Add an item or enter q to finish: ")) 
    if user_input == "Q": 
     break 

    else: 
     print(f"New item added: {user_input}") 
print("Added") 

어떻게 나중에 다른 함수의 입력으로 최종 출력 (최종리스트)를 사용합니까? 항목이 이미 목록에 있는지 확인한 다음이 항목으로 무언가를하고 싶습니다. 더 나은 방법이

def check(item): 
    global base 
    if item in base: 
    print("in the list") 
    else: 
    print("not here") 

있습니까 : 나는 어쩌면 내가 이런 식으로 "세계"를 사용해야한다는 일반적인 생각을 가지고?

+3

'user_input'은'add_item'의 리턴 값을 가지고 있습니다. 'add_item'은 문자열''Q "'를 반환하지 않습니다. 'add_item'을 호출하기 전에 사용자 입력을 검사해야합니다. – khelwood

+2

또한 코드에서 대문자 Q를 확인하고 질문에'사용자가 "q"'(밑줄 q)를 입력하면 말합니다. 밑줄 q는 프로그램을 절대로 종료하지 않습니다. –

+0

하지만 대문자로 변경하고 있습니다. – Ank12

답변

0

user_input은 사용자가 입력 한 프로그램의 실제 입력이 아닌 함수의 반환 값이기 때문에!

in = input("Add an item or enter q to finish: ") 
if in == "Q": 
     break 
else: 
     user_input = add_item() 
관련 문제