개발공부/SK Networks Family AI bootcamp 강의노트

3일차 [ 파이썬 기초(조건문,반복문) ]

HyunJung_Jo 2025. 1. 9. 16:51

1. bool

bool은 파이썬에서 불리언(Boolean) 값을 나타내는 데이터 타입입니다. 불리언 값은 True 또는 False 두 가지 값만 가질 수 있습니다. 이는 논리 연산이나 조건문에서 자주 사용됩니다.

불리언 값 생성

불리언 값은 다음과 같이 생성할 수 있습니다:

is_true = True
is_false = False

불리언 연산자

불리언 값은 논리 연산자와 함께 사용됩니다:

  • and: 두 값이 모두 참일 때 참
  • or: 두 값 중 하나라도 참일 때 참
  • not: 값의 반대
a = True
b = False

print(a and b)  # False
print(a or b)   # True
print(not a)    # False

조건문에서의 사용

불리언 값은 조건문에서 조건을 평가하는 데 사용됩니다:

if a:
    print("a는 참입니다.")
else:
    print("a는 거짓입니다.")
if ((1,2) and False) or ([] or (1)):
    # (1,2) and False -> False
    # [] or (1) -> True
    # False or True -> True
    print("True")


# else
if not (3>5 or [1,2]):
    print('Hi')
else:
    print('else')

불리언으로 변환

다른 데이터 타입을 불리언으로 변환할 수 있습니다. 파이썬에서는 다음 값들이 False로 평가됩니다:

  • None
  • False
  • 0 (정수형, 부동 소수점형, 복소수형)
  • 빈 시퀀스 (빈 문자열, 빈 리스트, 빈 튜플 등)
  • 빈 매핑 (빈 딕셔너리 등)

그 외의 값들은 모두 True로 평가됩니다:

print(bool(0))        # False
print(bool(1))        # True
print(bool(""))       # False
print(bool("Hello"))  # True

이와 같이 불리언 값과 연산자는 파이썬에서 매우 중요한 역할을 합니다.

2. 조건문

# if 문을 쓸 때는 위에서 아래로 갈 수록 범위가 좁아지도록 써야한다.
lst=[]
s="Hello"

if lst and s:
    print('hi')
elif lst:
    print('qwer')
elif s:
    print('asdf')

age=40
if age >= 40:
    print('안녕하세요 ^^') # 40<=age
if age >= 30:
    print('hi 30대') # 30<=age<=40
if age >= 20: # 20<=age<=30  이런식으로 안써도 됨.
    print('hi 20대')

3. 반복문, for 문

range()

# list, tuple, dict, set, str -> size()가 존재함.

# for 변수 in size 있는 데이터:
    # 반복할 코드

# 구구단
for i in range(2,10):
    for j in range(1,10):
        print(i*j, end=" ")

keys(), values(), items()

personal_info ={
    'name':'홍길동',
    'age':25,
    'address':'서울'
}
for i in personal_info.keys():
    print(i)

for i in personal_info.items():
    print(i)

"""
name
age
address
('name', '홍길동')
('age', 25)
('address', '서울')
"""

get()

lst =[
    {'name':'홍길동','age':25},
    {'name':'김길동','age':30},
    {'name':'박길동','age':35},
    {'age':40},
    {'name':'이길동'},
]

for i in lst:
    print(f'이름은 {i.get("name","몰라요")}이고, 나이는 {i.get("age","없어요")}입니다.')

isinstance()

x=('10',)
if isinstance(x,str): # x ===str
    print('문자열입니다.')
elif isinstance(x,int):
    print('정수입니다.')
else:
    print('모르겠어요.')

enumerate()

for i in enumerate(['a','b','c']):
    print(i) # (0, 'a') (1, 'b') (2, 'c')

for k,v in enumerate(['a','b','c']):
    print(k,v) # 0 a 1 b 2 c

 

pass

  • 설명: 아무 작업도 하지 않는 문.
  • 사용 예시: 코드 블록을 비워둘 때 사용.
    for i in range(5):  
      if i == 2:  
          pass  # 아무 작업도 하지 않음  
      print(i)  

break

  • 설명: 반복문을 즉시 종료.
  • 사용 예시: 특정 조건에서 반복문을 종료할 때 사용.
    for i in range(5):  
      if i == 2:  
          break  # 반복문 종료  
      print(i)  

continue

  • 설명: 현재 반복을 건너뛰고 다음 반복을 시작.
  • 사용 예시: 특정 조건에서 다음 반복으로 넘어갈 때 사용.
    for i in range(5):  
      if i == 2:  
          continue  # 다음 반복으로 건너뜀  
      print(i)  

이렇게 pass, break, continue는 반복문과 조건문에서 제어 흐름을 조작하는 데 사용됩니다.

else

else 블록이 for 루프 외부에 위치할 수 있는 이유는 Python의 for 루프가 else 절을 지원하기 때문입니다. 이 else 절은 루프가 정상적으로 완료되었을 때 실행됩니다. 즉, 루프가 break 문에 의해 중단되지 않고 끝까지 실행된 경우에만 else 블록이 실행됩니다.

다음은 코드의 동작을 설명하는 예제입니다:

lst = [1, 2, 3, 4, 5]  
for i in lst:  
    if i % 2 == 0:  
        print("i는 짝수입니다.")  
else:  
    print('Hello World')   
    # for문이 정상적으로 끝나면 else문 실행  

이 코드에서 for 루프는 리스트 lst의 모든 요소를 순회합니다. 각 요소가 짝수인지 확인하고, 짝수일 경우 "i는 짝수입니다."를 출력합니다. 루프가 끝까지 정상적으로 완료되면 else 블록이 실행되어 "Hello World"를 출력합니다.

만약 for 루프가 break 문에 의해 중단되었다면 else 블록은 실행되지 않습니다. 예를 들어:

lst = [1, 2, 3, 4, 5]  
for i in lst:  
    if i % 2 == 0:  
        print("i는 짝수입니다.")  
        break  
else:  
    print('Hello World')   
    # for문이 break로 중단되면 else문 실행 안됨  

이 경우 첫 번째 짝수인 2를 만나면 "i는 짝수입니다."를 출력하고 break 문이 실행되어 루프가 중단되므로 else 블록은 실행되지 않습니다.

이와 같은 구조는 while 루프에서도 동일하게 적용됩니다.