2016-10-18 6 views
1

프로젝트 프로젝트에 문제가있어 도움이 필요했습니다. 반복적으로 숫자를 물어볼 곳에서 코드를 만들어서 목록의 최소값과 최대 값을 출력해야합니다. 우리 선생님은 우리가 원하면 어쨌든 이것을 할 수 있다고 말했다.숫자 목록에서 최소값과 최대 값을 찾는 방법

num_list = [] 
    while True: 
    num = raw_input("Enter a number: ") 
    if num == "done" : break 
    if num >= 0: 
    num_list.append(num) 
    print min(num_list) 
    print max(num_list) 

이것은 내가 지금까지,이 숫자 입력을 요청하고 난 완료 입력 할 때 휴식 무슨이지만 밖으로 인쇄 목록의 최소 및 최대는 "완료"를합니다.

+0

하여 들여 쓰기를 수정합니다. 루프 내부 또는 외부를 파악하는 것은 불가능합니다. –

답변

1

최소/최대를 호출하기 전에 숫자를 정수 또는 부동 소수점 유형으로 변환해야합니다.

# under n >= 0: 
num = int(num) # or num = float(num) 
num_list.append(num) 

때문에 작업 코드의 예는 다음과 같습니다
num_list = [] 
while True: 
    num = raw_input("Enter a number: ") 
    if num == "done" : 
     break 
    try: # use a try except to verify user input is in fact a number 
     num = int(num) + 0 # alternatively use float(num) if non integer numerical inputs will be used 
     if num >= 0: 
      num_list.append(num) 
      print "min: ",min(num_list) 
      print "max: ",max(num_list) 
    except: 
     print "invalid input" 

는 최대/최소마다 반복을 호출하지 않음 :

num_list = [] 
_min, _max = None, None 
while True: 
    num = raw_input("Enter a number: ") 
    if num == "done" : 
     break 
    try: # use a try except to verify user input is in fact a number 
     num = int(num) # alternatively use float(num) if non integer numerical inputs will be used 
     if num >= 0: 
      if not _min or not _max: 
       _min,_max = num, num 
      elif num < _min: 
       _min = num 
      elif num > _max: 
       _max = num 

      num_list.append(num) 

    except: 
     print "invalid input" 

    print "min:", _min 
    print "max:", _max 
+0

왜 0을 추가하고 계속 min과 max를 호출합니까? –

+0

숫자가 사실 숫자 값이고 삭제되었음을 확인하는 폼에 0을 추가하고있었습니다. min/max 함수를 반복적으로 호출하는 대신 _min, _max 참조를 사용하면 훨씬 효율적입니다. – nick

+0

나는 루프가 끝날 때 min과 max를 출력해야한다는 것을 의미한다. –

관련 문제