파이썬 기초 2. if 문과 반복문(while, for문)

MANBOKWAK·2024년 1월 10일

파이썬 기초

목록 보기
5/15

if문

1. if문이란?

  • 프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 사용됨

  • 조건에 따라 수행하는 기능을 다르게 할 수 있음

2. if문의 기본구조

if 조건문:
	수행할 문장1
    수행할 문장2
else:
	수행할 문장A
    수행할 문장B
  • 위와 같은 형태의 기본 구조를 가짐

  • 조건문을 테스트해서 참이면 if문 내에 문장을 수행하고 거짓이면 else문 내에 문장을 수행함

  • else문은 if문 없이 독립적으로 사용할 수 없음

  • if문또는 else문에 속하는 모든 문장은 들여쓰기를 해주어야함

  • 들여쓰기 한 문장들의 들여쓰기의 너비가 같아야함 즉 형식이 똑같아야함

  • 조건문 다음에는 콜론(:)을 작성해야함을 잊지말자!


3. 조건문이란 무엇인가?

  • 조건문은 참과 거짓을 판단하는 문장을 말함

비교 연산자

비교 연산자설명
x < yx가 y 보다 작다
x > yx가 y 보다 크다
x == yx와 y가 같다
x != yx와 y가 같지 않다
x >= yx가 y보다 크거나 같다
x <= yx가 y보다 작거나 같다
x = 2
y = 1
print(x > y) #True
print(x < y) #False
print(x == y) #False
print(x != y) # True

논리 연산자

연산자설명
x or yx와 y 둘중에 하나만 참이면 참
x and yx와 y 둘다 참이면 참
not xx가 거짓이면 참
  • 논리연산을 수행할때 사용하는 논리연산자
money = 1999
card = True
if money >= 2000 or card:
	print("택시 타자")
else:
	print('돈없다 걸어가자...')
    
 #출력: 택시 타자
  • money는 1999로 2000보다 작지만 card가 True이므로 택시타자가 출력된다.

x 가 존재하는지 확인하는 조건문

innot in
x in 리스트x not in 리스트
x in 튜플x not in 튜플
x in 문자열x not in 문자열
  • 다른 언어에서는 없는 조건문으로 x가 리스트, 튜플, 문자열에 존재하는지 확인해주는 조건문
# 리스트
print(1 in [1,2,3])  # True
print(4 in [1,2,3])  # False
print(1 not in [1,2,3])  # False
print(4 not in [1,2,3])  # True

# 문자열
print(p in 'python') # True
print(a in 'python') # False
print(p  not in 'python') # False
print(a not in 'python') # True

# 튜플
print(a in ('a','b','c')) #True
print(d in ('a','b','c')) #False
print(a not in ('a','b','c')) #False
print(d not in ('a','b','c')) #True

4. elif문

  • if와 else만으로는 다양한 조건을 판단하기 어려움 -> elif문을 사용

  • elif문을 사용하면 다중조건을 판단할 수 있음


card =True
if 'money' in pocket:
    print("택시를 타고 가라")
elif card:
    print("택시를 타고 가라")
else:
    print("걸어가라")
    
 #출력 : 걸어가라
  • elif문은 이전 조건이 거짓일때 실행됨

elif문 형식

if 조건문1:
	수행할 문장1-1
    수행할 문장2-2
    ...
elif 조건문2:
	수행할 문장2-1
    수행할 문장2-2
	...
...
    ...
elif 조건문N:
	수행할 문장 N-1
    수행할 문장 N-2
    ..
else:
	수행할 문장A
    수행할 문장B
  • 위와 같은 형식으로 사용할 수 있음

5. 조건부 표현식

  • 조건문을 좀더 간결하게 작성할 수 있음
# 일반적인 조건문
if score >= 60:
	message = 'success'
else:
	message = 'failure'
    
# 조건부 표현식
message = 'succes' if score >= 60 else 'failure'
  • 조건문이 참인 경우 if 조건문 else 조건문이 거짓인 경우 형식으로 사용할 수 있음

  • 조건부 표현식은 가독성에 유리하고 한줄로 작성할 수 있어 활용성이 좋음


while문

1. while문의 기본 구조

  • 반복해서 문장을 수행해야 할 경우 while문을 사용

  • 반복문이라고도 부름

# while문의 기본구조
while 조건문:
	수행할 문장1
    수행할 문장2
    수행할 문장3
    ....
  • 위와 같은 형식으로 사용할 수 있음

  • 조건문이 참인 동안에 while문속 문장이 반복 수행됨

# ex1
hit = 0
while hit < 10: #조건이 참이면 반복
    hit = hit + 1
    print("나무를 %d번 찍었습니다." % hit)
    if hit == 10:
        print("나무 넘어갑니다.")

  • 열번찍어 안넘어가는 나무 없다를 파이썬 프로그램으로 작성한 예제

  • hit가 10이 되는 순가 while문의 조건이 거짓이 되므로 반복문이 종료됨


2. while문 강제로 빠져나가기

  • 반복문을 강제로 종료하고싶을때 break문을 사용
# ex 커피자판기

coffee =10
money =300
while money:
    print("돈을 받았으니 커피를 줍니다.")
    coffee = coffee -1
    print("남은 커피의 양은 %d개입니다." %coffee)
    if not coffee:
        print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
        break
  • 커피자판기의 커피가 다떨어지면 반복문을 종료하는 코드

  • 커피가 주문될때마다 커피 개수가 1씩 줄어들고 커피가 0이 되는 순간 if not coffe문에 조건이 참이므로 커피가 떨어졌다는 안내문과 함께 반복문이 종료된다.


3. while문의 맨 처음으로 돌아가기

  • continue 문을 사용하면 조건은 만족하게하지만 문장을 수행하지 않고 while문의 처음으로 되돌아갈 수 있음
a = 0
while a < 10:
	a = a +1
    if a % 2 ==0: continue
    print(a) 
   
   
   # 출력:
    # 1
    # 3
    # 5
    # 7
    # 9
  • a가 짝수일 때는 continue문을 통해 while문의 처음으로 돌아가므로 a가 홀 수 일때마다 값이 출력됨

4. 무한 루프

  • 무한히 반복되는 루프 즉 반복문이 끝없이 반복될대 무한루프라고 한다.

  • 파이썬에서 무한 루프는 while문을 활용해서 구현할 수 있음

  • while True 으로 하면 조건이 항상 참이므로 무한 루프를 구현할 수 있다

#Example
while True:
	print("please input ctrl + c to exit this program")

for문

  • while문처럼 반복문을 수행하는데 사용됨

  • for문은 문장 구조가 직관적이라 이해가 쉬움

    1. for문 기본 구조

# 기본 구조
for 변수 in 리스트(or 튜플,문자열):
	수행할 문장1
    수행할 문장2
    ...

전형적인 for문

test_list = ['one', 'two', 'three']
for i in test_list:
	print(i)

출력결과

  • i에는 리스트의 첫번째 요소부터 마지막 요소까지 하나씩 대입 됨

  • i에 값이 대입 된후 문장을 수행하고 다음 요소로 넘어간다.

다양한 for문의 사용

a = [(1,2), (3,4), (5,6)]
for (first, last) in a:
	print(first+last)

  • first에는 각 인덱스 튜플의 앞에값이, last에는 각 인덱스 튜플의 뒤에 값이 대입된 후 문장이 수행됨

2. for문과 continue문

  • while문에서 사용한 continue문과 동일하게 사용할 수 있음

  • continue문을 만나면 for문의 처음으로 되돌아감

scores = [90,25,67,45,80]
number = 0
for score in scores:
	number = number + 1
	if score < 60: continue
	print("%d번 학생 축하합니다. 합격입니다." % number)
  • 60점 이하인 경우 continue문이 실행되어 합격 메시지가 출력되지 않고 다음 인덱스에 대한 수행할 문장으로 넘어간다

3. rnage함수

  • for문은 숫자 리스트를 자동으로 만들어 주는 range 함수와 함께 사용하는 경우가 많음
# 간단한 range 함수 예제
a = range(10)
print(a) # range(0,10) 0~9

b = range(1,11)
print(b) range(1,11) 1~10
  • range(n)은 0부터 n-1 까지의 숫자를 포함하는 range객체를 만들어줌

  • range(시작 숫자, 끝 숫자) 이때 끝 숫자는 포함되지 않음

# for문에 range함수를 사용하는 Example

add = 0
for i in range(1,11):
	add = add + i


print(add) # 55
  • range(1,11)은 숫자 1부터 10까지의 숫자를 데이터로 갖는 객체

  • 위 코드는 1~10 까지의 수를 모두 더하는 코드


4. 리스트 내포

  • 리스트 안에 for문을 포함하는 것을 리스트 내포라고함

  • 리스트 내포를 사용하면 좀 더 편리하고 직관적으로 보이는 효과가 있음

  • 표현식 for 항목 in 반복 가능 객체 if 조건 형식으로 사용할 수 있음

# 그냥 for문
a = [1,2,3,4]
result = []
for num in a:
	resutl.append(num*3)
print(result) # [3,6,9,12]
    
# 리스트 내포
a = [1,2,3,4]
rsult = [num * 3 for num in a]
print(result) # [3,6,9,12]
profile
Backend/ DevOps를 지망하는 곽희상입니다.

0개의 댓글