3-1-3-4. Solution: Conditional Statements

퀴즈 솔루션: 어떤 상

이 퀴즈에 대한 내 솔루션은 다음과 같습니다!

points = 174

if points <= 50:
    result = "Congratulations! You won a wooden rabbit!"
elif points <= 150:
    result = "Oh dear, no prize this time."
elif points <= 180:
    result = "Congratulations! You won a wafer-thin mint!"
else:
    result = "Congratulations! You won a penguin!"

print(result)

산출:

Congratulations! You won a wafer-thin mint!

상한이 포함된다고 명시되어 있기 때문에 연산자 <=대신 사용 <합니다. 각 조건에서 가 상한보다 작거나 같은지 points확인하여 가 경품 브래킷에 있는지 확인합니다 points. 하한보다 큰지 확인할 필요가 없었습니다. 왜 이런 일이 일어나는지 봅시다.

  • 때 points = 174, 최초로 확인하는 경우 points <= 50, 평가하여 False로. 문제에서 points항상 200까지의 양의 정수 가 되도록 명시되어 있기 때문에 0보다 큰지 확인할 필요가 없습니다 .
  • 첫 번째 조건이 False로 평가되므로 다음 조건을 확인하기 위해 이동합니다 points <= 150여기서도 50보다 큰지 확인할 필요가 없습니다! 이 지점에 도달하려면 첫 번째 조건이 False로 평가되어야 하기 때문에 이것이 사실임을 이미 알고 있습니다. 우리 points <= 50가 False 를 알고 있다면 points > 50True여야 합니다!
  • 마지막으로 points <= 180true로 평가되는 if를 확인합니다 . 이제 그것이 points151 – 180 대괄호에 있다는 것을 압니다 .
  • else이전 조건을 확인한 후 상금의 다른 가능한 가치가 없기 때문에 마지막 경품 브래킷인 181-200이 절에 갇히게 됩니다 .
%d 블로거가 이것을 좋아합니다: