2014-03-28 3 views
1

값이 목록 내에 있는지 여부를 확인할 수 있는지 알아야합니다. 그리고 그것을 어떻게 할 수 있습니다.목록의 내용 확인

기본적으로 프로그램에서는 사용자가 완료를 지정할 때까지 일련의 숫자를 목록에 입력 할 수 있어야합니다. 일련의 숫자를 입력함으로써 그들이 할 수있는 일은 -123입니다.

여기는 지금까지 가지고있는 코드입니다. while 구문이 필요합니다. 어떤 도움을 주시면 감사하겠습니다.

enterNum = input() 
userList = [] 
while enterNum != -123: 
    for i in range(enterNum): 
     userList.append(float(input())) 

나는 간단한 것을 놓치고있는 것처럼 느껴집니다. 당신은 같은 것을 할 수

답변

2

당신은 거의했다 그것을 :

userList = [] 
while True: 
    enterNum = input() 
    if enterNum != -123: 
     userList.append(enterNum) 
    else: 
     break 

또는

userList = [] 
while enterNum != -123: 
    enterNum = input() 
    userList.append(enterNum) 

하지만 나는 이런 식으로 뭔가 할 거라고 목록은 사용자 믿을 수 없기 때문에 오류가 잡기

에서 -123하게 될 겁니다 :

userList = [] 
while True: 
    try: 
     enteredNum = float(input()) 
     if enteredNum == -123: 
      break 
     userList.append(enteredNum) 
    except ValueError: 
     print("Invalid number") 
+0

필연적으로 발생하는 ValueError를 잡을 수도 있습니다.) – mdadm

0

: 뭔가가 목록에없는 경우에도

if num in your_list: 
    #do_something 

, 확인, 당신은 할 수 있습니다 :

if num not in your_list: 
    #do_something_else 
1

예를, 그것은 in 연산자를 사용하여 수행 할 수 있지만 처음에는 -123을 목록에 추가하지 않는 것이 가장 좋습니다. 또한 몇 가지 추가 개선 사항을 제안합니다. 가장 중요한 것은 번호가 아닌 다른 것이 입력 된 경우 exceptions을 처리해야한다는 것입니다.

userList = list() 

while True: 
    try: 
     enteredNum = float(input()) 
     if enteredNum == -123: 
      break 
     userList.append(enteredNum) 
    except ValueError: 
     print ("Invalid number")