스터디

[파이썬 벼락치기] if문 | while문 | for문 | 기타 제어문 | 제어문 중첩

imgani 2023. 8. 12. 14:31

- 기간 : 2023-08-11 ~ 2023-08-13 (2일차)

- 목표 : 좀 더 본격적으로 데이터 다뤄보기

 

1. if문 : 특정 조건을 만족할 때와 만족하지 않을 때를 나눠 코드를 실행하는 조건문

        조건이 참일 때 -> 실행

        조건이 거짓일 때 -> 실행x

  • if
num = int(input("숫자를 입력하세요.: "))

if num>0 :
    print("{}은(는) 양수입니다.".format(num))
  • if ~ else
num = int(input("숫자를 입력하세요.: "))

if num%2==0 :
    print("{}은(는) 짝수입니다.".format(num))

else : # 조건을 적지 않는다. False일 때 리턴값만 작성함.
    print("{}은(는) 홀수입니다.".format(num))
  • if ~ elif
age = int(input("나이를 입력하세요. :"))

if age<=7 :
    print("당신은 유아입니다.")

elif age<=19 :
    print("당신은 청소년입니다.")

elif age>=20 : # elif와 else 모두 if 뒤에 사용한다.
    print("당신은 성인입니다.")
age = int(input("나이를 입력하세요. :"))

if age<=7 :
    print("당신은 유아입니다.")

if age<=19 :
    print("당신은 청소년입니다.")

if age>=20 : # elif와 else 모두 if 뒤에 사용한다.
    print("당신은 성인입니다.")
    
당신은 유아입니다.
당신은 청소년입니다.

# if만 사용하면 모든 참인 경우의 리턴 값이 나옴
  • if ~ elif ~ else
text = input("알파벳을 입력하세요.: ")

if text.isupper() :
    print("대문자")

elif text.islower() :
    print("소문자")

else :
    print("대/소문자 구분 불가능")

 

2. while문 : 조건을 만족할 때 코드를 반복하는 조건문

                   조건이 참일 때 -> 반복

                   조건이 거짓일 때 -> 반복 종료

print("a가 0보다 같거나 크면 실행, 작으면 정지")

a = int(input("a를 입력하세요,: "))

while a>=0 :
    print("실행")
    a = int(input("a를 입력하세요,: ")) # 안 쓰면 무한루프됨

 

  • n번 반복하기
n = int(input("n: "))

while n : # 양수면 참, 0 또는 음수면 거짓
    print(n)
    n=n-1
  • ~까지 반복하기
# (1) 1~10까지 숫자 반복하기

n = 1

while n<=10 :
    print(n)
    n=n+1
    
# (2) yes를 입력하면 반복하기

text = 'yes'

while text=='yes':
    text = input("yes 입력 시 반복: ")

print("종료")

# (3) e 또는 E가 입력되면 종료 --> 어려움 ㅠ

text = input('e 또는 E가 입력되면 종료')

while text!='e' and text!='E' :
    text = input('e 또는 E가 입력되면 종료')

print('종료')

3. for문 : while처럼 반복하는 조건문

- 특정 범위만큼 코드를 반복

- 열거형 데이터(리스트 등)를 하나씩 변수 값에 대입하며 실행

 

  • range() 함수

   - for문에서 많이 씀

   - 인자 값은 모두 정수(int)만 가능

range(11) # 0부터 10까지 1씩 증가
range(1,11) # 1부터 10까지 1씩 증가
range(1,11,2) # 1부터 10까지 2씩 증가
  • for문 활용
# 1에서 n까지 출력

n = int(input('n: '))

for i in range(1,n+1) :
    print(i)
    
# a에서 b까지 출력

a = int(input('a: '))
b = int(input('b: '))
# [응용:한줄로 쓰기] a,b = map(int,input('a b: ').split())

for i in range(a,b+1) :
    print(i)
    
# n에서 0까지 출력

n = int(input('n: '))

for i in range(n,-1,-1):
    print(i)

4. 기타 제어문

  • continue : 해당 단계를 건너뛰고 다음 단계로 간다.
  • break : 제어문을 중단하고 빠져나간다.
  • pass : 아무 작업도 하지 않는다. (일단 비워두고 싶을 때 사용함)
for i in range(1,11):
    if i==5 :
        continue # 이 부분만 다르게 사용
    print(i)

 

5. 제어문 중첩

  • if + if
age = int(input('나이를 입력하세요: '))

if age<=7 :
    print('유아')
elif age<=19 :
    print('청소년')
    if age<=13 :
        print('초등학생')
    elif age<=16 :
        print('중학생')
    else :
        print('고등학생')
else :
    print('성인')
  • for + if
# for + if

n = int(input('n: '))

for i in range(1,n+1) :
    if i%3==0 : # 3의 배수
        print('X')
    else :
        print(i)
  • while + if
# while + if

num1 = 0
num2 = int(input('n: '))

while True : # 무한루프
    num1=num1+1
    print(num1)
    if num1==num2 :
        break # 종료
  • for + for
# for + for (경우의 수 모두 구하기)

for i in range(1,7) :
    for j in range(1,7) :
        print(i,j)