본문 바로가기
지식공학/Python

python 독학 기본편 #5 조건문과 반복문 (If & For)

by Eric87 2020. 10. 13.
반응형

오늘 해볼 명령어는 조건문과 반복문입니다. 이 두 명령어는 상당히 유용해서 많이 쓰이는 명령어이니깐 잘 따라오세요.

조건문(if) 먼저 시작할게요. 날씨 예보를 예로 들어보겠습니다. 비가 오는 날씨에는 우산을 챙기고, 미세먼지가 많은 날에는 마스크를 챙기는 것을 해볼게요. 우선 변수를 하나 선언해야 됩니다.

weather="비"

그리고 if를 사용해서 비와 같다면 출력을 하고 같지 않으면 출력하지 않는 코드를 작성해줍니다.

if weather == "비":
       print("우산을 챙기세요")

print앞에 꼭 tab키로 공간을 주어야 합니다. 출력을 하면 "우산을 챙기세요"가 출력이 됩니다. 만약에 변수 weather에 맑음이라고 쓰고 실행을 하면 에러가 발생할 거예요.

weather = "맑음":
if weather == "비"
      print("우산을 챙기세요")

이처럼 if는 해당 조건이 참 일 때만 아래 입력 어를 실행시킵니다. 여기에 다른 조건을 추가시킬 수가 있습니다. elif를 사용해서 변수 weather의 조건을 추가해볼게요

elif weather == "미세먼지":
      print("마스크를 챙기세요")

이렇게 입력을 하고 변수 weather를 "미세먼지"로 바꿔줍니다. if 조건에서 false가 나오면 다음 if 조건을 판단하여 true값이 되면 출력을 하게 됩니다. 만약에 해당 조건이 다 만족하지 않는다면 다른 것을 출력하게 할 수 있어요 바로 else를 사용하면 됩니다.

weather = "맑음"
if weather == "비":
      print("우산을 챙기세요")
elif weather == "미세먼지":
      print("마스크를 챙기세요")
else:
      print("준비물 필요 없어요")

이렇게 되면 if문의 조건들이 모두 false이기 때문에 에러가 되지 않고 else로 넘어가 출력을 하게 됩니다.

이번에는 온도 값을 입력해서 조건에 맞는 출력을 하는 것을 해볼게요 input이라는 명령어를 사용하면 미리 코드로 선언하지 않고 사용자가 직접 입력한 것을 변수로 설정을 해줍니다.

temp = int(input("기온이 몇 도 인가요?"))

이렇게 입력을 하고 실행시키면 terminal창에 본인이 원하는 숫자를 입력하면 됩니다. 여기서 30도 이상은 "너무 더워요 이요 나가지 마세요"를 출력하고 10도 이상 30도미만은 "괜찮은 날씨에요", 0도이상 10도 미만은 "외투를 챙기세요", 0도 미만은 "너무 추워요 나가지 마세요"로 해보겠습니다.

if 30 <= temp:
      print("너무 더워요. 나가지 마세요")
elif 10 <= temp and temp <30:
      print("괜찮은 날씨에요")
elif 0 <= temp <10:
      print("외투를 챙기세요")
else:
      print("너무 추워요 나가지 마세요")

변수로 36, 25, 3, -7을 각각 입력하여 출력이 제대로 되는지 확인해봅시다.

이처럼 조건문은 서로 다른 조건에 대해서 다른 코드를 실행시키는 명령어입니다. 다음은 반복문(For)을 해봅시다. 결과 출력을 할 때마다 print를 사용해왔습니다.

print("대기번 : 1")
print("대기번 : 2")
print("대기번 : 3")
print("대기번 : 4")

이렇게 번호만 다른 출력을 하기 위해 print를 4번씩이나 사용해야 했었죠 하지만 for 문을 쓰면 이렇게 쓰면 간단하게 출력할 수 있습니다.

for waiting_no in [1, 2, 3, 4]:
      print("대기번호 : {0}". format(waiting_no))

for를 쓰고 변수를 선언하고 in 다음으로 해당 값을 나열해줍니다. 나열은 range를 사용해서 나타낼 수도 있습니다.

for waiting_no in range(1,5): # 1, 2, 3, 4
      print("대기번호 : {0}".format(waiting_no))

세 가지 방법 모두 동일한 결과가 출력되는 것을 확인할 수 있습니다. 이처럼 for문은 해당 값만큼 반복적으로 코드를 실행시키는 명령어입니다. 간단하게 for문을 사용해서 변수를 변경시킬 때에도 활용할 수 있습니다. 이미 선언된 변수에 특정 수를 더한다든지 형태를 변하거나 문자를 바꿀 수 있습니다.

students = [1,2,3,4,5]
print(students)
students = [i+100 for i in students]
print(students)
students = ["iron man","thor","spider man"]
print(students)
students = [len(i) for i in students]
print(students)
students = ["iron man","thor","spider man"]
print(students)
students = [i.upper() for i in students]
print(students)

조건문과 반복문을 혼합시킨 while문이라는 명령어도 있습니다 while문은 어떤 조건이 성립할 때까지 반복적으로 실행시키는 명령어입니다. 예를 들어 토르라는 영웅의 HP(health point)가 5이고 싸울 때마다 1씩 감소하는 것을 출력해 보겠습니다.

hero = "토르"
HP = 5
while HP >=1:
      print("{0}, 싸울 수 있습니다. 체력 {1} 남았어요".format(hero, HP))
      HP -=1
if HP ==0:
      print("{0}가 죽었습니다".format(hero))

마지막으로 continue와 break에 대해 알아보겠습니다. 예를 들어 1번부터 10번까지 학생들이 있는데 이 중 2번과 5번이 결석을 했습니다. 출석을 부른데 2번과 5번은 빠지겠죠? if와 for문을 사용해서 아래와 같이 코딩을 할 수 있습니다.

absent = [2,5]
for student in range(1,11): #1,2,3,4,5,6,7,8,9,10
      if student in absent:
            continue
      print("{0}번 왔습니다 ".format(student))

이처럼 continue는 조건문을 통해서 실행이 되면 continue아래에 있는 코드는 실행하지 않고 다음 for문으로 넘어가서 계속 반복적으로 수행하는 명령어입니다. Break는 이름에서 알 수 있듯이 break가 발동되면 반복문을 중단시키는 명령어입니다. 오늘은 여기까지 하겠습니다. 수고했습니다.

반응형

댓글