Maron's DATA Log

[Python] 조건문 - If / 반복문 - For & While 본문

Python

[Python] 조건문 - If / 반복문 - For & While

maron2ee 2020. 11. 30. 16:20

# If : 조건문

: 프로그램의 흐름을 제어하는 문법

 

# if ~ else

: 참 또는 거짓을 가지는 값, 조건(condition)에 따라 다른 명령을 수행

 

if 조건:

  조건이 참일 때 실행되는 명령들

else:

   조건이 거짓일 때 실행되는 명령들

 

weather = input("오늘 날씨는 어때요?")     # 사용자가 입력한 값이 str 값으로 weather 에 저장

 

 

# if ~ elif ~ else

: 조건으로 나누어야 할 경우의 수가 여러가지 일 때

 

if 조건1:

   조건1이 참일 때 실행되는 명령

elif 조건2:

   조건2이 거짓이고 조건2가 참일 때 실행되는 명령

elif 조건3:

   조건1과 조건2가 거짓이고 조건3이 참일 때 실행되는 명령

...

else:

   어떤 조건도 참이 아니면 실행되는 명령

 

if weather == "비" or "눈":

   print("우산을 챙기세요")

elif weather == "미세먼지":

   print("마스크를 챙기세요")

else:

   print("준비물 필요 없어요.")

 

 

temp = int(input("기온은 어때요?"))     # 사용자가 입력한 값을 정수(int)형태로 바꿔줌

 

if 30 <= temp:

   print("너무 더워요. 나가지 마세요")

elif 10 <= temp and temp < 30:

   print("괜찮은 날씨에요")

elif 0 <= temp <10:

   print("외투를 챙기세요")

else:

   print("너무 추워요. 나가지 마세요")

 

 

# 중첩 (nesting) 조건문 

: 조건문 안에 조건문이 포함

 

if 조건1:

   조건1이 참일 때 실행되는 명령

   if 조건2:

     조건1과 조건2가 모두 참일 때 실행되는 명령

   else:

     조건1은 참이고 조건2는 거짓일 때 실행되는 명령

else:

   조건1이 거짓일 때 실행되는 명령

 

e.x) 구구단

for i in range(2, 10):

   for j in range(1, 10):

     print(i, "X", j, "=", i * j)

   print( )

 

 

* 코드의 block (블록)을 indent (들여쓰기)로 지정 

조건문 바깥쪽은 들여쓰기 X  -> 무조건 실행

 

 

# For : 반복문 (loop)

: 반복적으로 실행하고자 할 때

특정한 변수를 이용해 in 뒤에 오는 데이터 (리스트, 튜플 등)에 포함되어 있는 원소를 첫 번째 인덱스부터 차례대로 하나씩 실행

 

for 변수 in 리스트:

   실행할 소스코드

 

# range(시작 값, 끝 값 + 1) : 연속적인 값을 차례대로 순회할때 (인자를 하나만 넣으면 자동으로 시작값은 0)

for 카운터변수 in range(반복횟수):  

   반복해서 실행할 명령

 

for waiting_no in [0, 1, 2, 3, 4]:

   print("대기번호 : {0}".format(waiting_no))

 

# randrange( )

for waiting_no in range(1, 6):     # 1, 2, 3, 4, 5 (1부터 6미만까지)

   print("대기번호 : {0}".format(waiting_no))

 

starbucks = ["아이언맨", "토르", "그루트"]

for customer in starbucks:

   print("{0}, 커피가 준비되었습니다.".format(customer))

 

* 반복을 수행하되 반복을 위한 변수의 값을 무시하고 싶을 때,  '_' (under bar) 사용

e.x)  for _in range(5):

             print("Hi")

 

* Infinite Loop (무한루프) : 끊임없이 반복되는 반복 구문

반복문 작성시 반복문을 탈출할 수 있는지 확인해야

 

 

# While : 조건이 만족할때까지 반복

customer = "토르"

index = 5

while index >= 1:

   print("{0}, 커피가 준비 되었습니다. {1}번 남았어요.".format(customer, index))

   index -= 1

   if index == 0:

      print("커피는 폐기처분되었습니다.")

 

customer = "아이언맨"

index = 1

while True:

   print("{0}, 커피가 준비 되었습니다. 호출 {1}회.".format(customer, index))

   index += 1     # 무한루프 -> ctrl + c : 강제 종료

 

customer = "토르"

person = "Unknown"

 

while person != customer:

   print("{0}, 커피가 준비 되었습니다.".format(customer))

   person = input("이름이 어떻게 되세요?")

 

 

# Continue 와 Break

absent = [2, 5]     # 결석

no_book = [7]     # 책을 안 가져옴

for student in range(1, 11):     # 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

   if student in absent:

     continue     # contine 를 만났을 때에는  더 이상 그 이후 남은 코드의 실행은 건너뛰고, 다음 반복으로 넘어가 진행

   elif student in no_book:

     print("오늘 수업 여기까지. {0}는 교무실로 따라와".format(student))

     break     # break를 만났을 때에는 더 이상의 반복값과 상관 없이 반복문 즉시 탈출

   print("{0}, 책을 읽어봐".format(student))

 

 

# 한 줄 for

# 출석 번호가 1, 2, 3, 4,,, 앞에 100을 붙임 -> 101, 102, 103, 104,,,

 

students = [1, 2, 3, 4, 5]

 

students = [i+100 for i in students]

print(students)

 

# 학생 이름을 길이로 변환

 

students = ["Iron man", "Thor", "I am groot"]

 

students = [len(i) for i in students]

print(students)

 

# 학생 이름을 대문자로 변환

students = ["Iron man", "Thor", "I am groot"]

students = [i.upper( ) for i in students]

print(students)

   

 

 

* 비교 연산자

: 특정한 두 값을 비교할 때

X == Y X와 Y가 서로 같다
X != Y X와 Y가 서로 다르다
X > Y X가 Y보다 크다
X < Y X가 Y보다 작대
X >= Y X가 Y보다 크거나 같다
X <= Y X가 Y보다 작거나 같다

-> True

 

* 파이썬은 x > 0 and x < 5 와 0 < x < 5 은 같은 결과를 반환

 

 

* 논리 연산자

: True / False 사이의 연산을 수행할 때

X and Y   X와 Y가 모두 True 일 때
X or Y X와 Y 중 하나만 True 이어도
not X X가 False 일 때

-> True

 

 

* in / not in

X in 리스트 리스트 안에 X가 들어가 있을 때
X not in 문자열 문자열 안에 X가 들어가 있지 않을 때

-> True

* 리스트, 튜플, 문자열, 딕셔너리 모두에서 사용 가능

 

 

* pass

: 아무것도 처리하고 싶지 않을 때

'Python' 카테고리의 다른 글

[Python] 입출력  (0) 2020.11.30
[Python] 함수  (0) 2020.11.30
[Python] 자료 구조 - List, Dictionary, Tuple, Set  (0) 2020.11.29
[Python] 문자열 함수  (0) 2020.11.27
[Python] Random (랜덤) 함수  (0) 2020.11.27
Comments