이 글은 프로그래머스의 파이썬을 파이썬답게 강의를 수강하고 작성하는 글입니다.
자연수 5개를 받은 뒤 숫자를 차례로 곱해 나온 수가 제곱수가 되면 found를 출력하고
모든 수를 곱해도 제곱수가 나오지 않았따면 not found를 출력하는 코드이다.
(곱해 나온 수의 제곱근이 정수이면 제곱수이다.)
import math
numbers = [int(input()) for _ in range(5)]
multiplied = 1
flag = True
for number in numbers:
multiplied *= number
if math.sqrt(multiplied) == int(math.sqrt(multiplied)):
flag = False
print('found')
break
if flag:
print('not found')
위 코드를 for-else문을 사용하면 더 짧게 나타낼 수 있고, 의미를 알아보기도 쉽다.
import math
numbers = [int(input()) for _ in range(5)]
multiplied = 1
for number in numbers:
multiplied *= number
if math.sqrt(multiplied) == int(math.sqrt(multiplied)):
print('found')
break
else:
print('not found')
for ~ else문은 "for문에서 break가 발생하지 않았을 경우의 동작"을 else문에 적어주는 것이다.
for문 안에서 break가 발생했다면 10~11번째 줄의 else문은 실행되지 않는다.
'Python' 카테고리의 다른 글
[Python] 가장 큰 수, inf (0) | 2021.01.10 |
---|---|
[Python] 두 변수의 값 바꾸기 - swap (0) | 2021.01.10 |
[Python] 2차원 리스트를 1차원 리스트로 만들기 (0) | 2021.01.10 |
[Python] sequence type의 *연산 (0) | 2021.01.10 |
[Python] 알파벳 출력하기 - string 모듈 (0) | 2021.01.09 |