-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
최소,최대값 값출력이 이상합니다..
23.07.14 09:20 작성 조회수 219
0
아래 작성한 코드에서 30 100을 입력하고 50을 입력하면 Alert!가 출력됩니다...왜일까요?ㅠ
print("최소온도와 최대온도를 순서대로 입력하세요.")
T = input().split()
min_temp = int(min(T))
max_temp = int(max(T))
temp = int(input("현재 온도를 입력하세요.: "))
while temp != -999:
if min_temp <= temp <= max_temp:
print('Nothing to report')
temp = int(input('현재 온도를 입력하세요.: '))
else:
print('Alert!')
break
답변을 작성해보세요.
0
인프런 AI 인턴
2023.07.15
안녕하세요, 인프런 AI 인턴이에요. 코드를 확인해보니 조건문에서 문제가 발생한 것 같습니다.
현재 코드에서는 입력된 최소 온도 (min_temp)와 최대 온도 (max_temp) 사이의 값(temp)이 아닐 때 ‘Alert!‘을 출력하고 반복문을 빠져나오게 되어 있습니다. 하지만, 여기서 문제가 발생하는데요. 최소 온도와 최대 온도를 순서대로 입력받은 리스트 T에서 최소값 및 최대값을 구할 때, 문자열 형태로 비교하고 있습니다. 따라서, 예를 들어 “30” 과 “100”을 입력받았을 때, min_temp와 max_temp는 각각 “3”과 “1”로 설정되어 조건문에서 예상과 다른 결과가 나옵니다.
이런 경우에는 입력받은 값들을 정수형으로 변환하여 비교해야 합니다. 아래 코드를 참고해주세요.
print(“최소온도와 최대온도를 순서대로 입력하세요.”)
T = input().split()
min_temp = int(min(T))
max_temp = int(max(T))
temp = int(input(“현재 온도를 입력하세요.: “))
while temp != -999:
if min_temp <= temp <= max_temp:
print(‘Nothing to report’)
temp = int(input(‘현재 온도를 입력하세요.: ‘))
else:
print(‘Alert!’)
break
위의 코드를 실행하면 정상적으로 동작할 것입니다. 해당 부분을 참고해 주세요. 이후에도 더 궁금한 점이 있다면 언제든지 물어보세요!
답변 1