Python/Algorithm

[Python_Algorithm]반복문 건너뛰기와 여러 범위 스캔하기(자료구조와 함께 배우는 알고리즘 입문)

bangle0621 2021. 1. 15. 23:53
# 1~12까지 8을 건너뛰고 출력하기1

for i in range(1,13):
    if i == 8:
        continue
    print(i,end='')
    
print()

위의 결과는 8은 출력되진 않지만 range 범위만큼 반복을 해야하므로 효율적이지진 않다.

# 1부터 12까지 8을 건너뛰고 출력하기2

for i in list(range(1,8))+list(range(9,13)):
    print(i,end='')
print()

여기선 8을 건너뛰고 리스트를 만들어 출력하였다. 하지만 이도 for문에서 리스트의 내용을 하나씩 꺼내서 반복하기에 반복은 여전히 발생한다. 

 

# 2자리 양수(10~99) 입력받기

print('2자리 양수를 입력하세요.')

while True:
    no = int(input('값을 입력하세요.:'))
    if no >= 10 and no <=99:
        break
        
print(f'입력받은 양수는 {no} 입니다.')

연속으로 사용된 비교 연산자는 'and결합'으로 취급하여 

10 <= no <= 99 로 표현할 수도 있다. 

 

드모르간 법칙을 사용

and 를 or 로 변경하고 논리 부정 연산자 not 을 사용하여 표현할 수도 있다.

no >= 10 and no <=99    는 not(no < 10  or no >99) 와 같다

- x and y 와 not(not x or not y)의 논리값은 같다.

- x or y 와 not(not x and not y)의 논리값은 같다.