파이썬 기본 _ 제어문 : if문, while문, for문

2025. 2. 9. 23:46LG U+ why not SW 5/python

 

 

 

 

파이썬

 

 

 

 

 

제어문

 

 

 

1. if문

1) 기본 구조

 

if 조건문:
    수행할_문장1
    수행할_문장2
else:
    수행할_문장A
    수행할_문장B

 

조건문 : 참과 거짓을 판단하는 문장으로

if 이하의 문장이 참이면 하위 문장1, 2를 실행,

거짓이면(아니면else ) 하위 문장A, B를 실행.

 

'돈이 있으면 택시를 타고 가고, 돈이 없으면 걸어간다.’

 

money = True
if money:
    print("택시를 타고 가라")
else:
    print("걸어 가라")

>>> 택시를 타고 가라

 

a = 'money'
if a:
    print("참입니다")
else:
    print("거짓입니다")

>>> 참입니다

: a라는 변수에 값 money가 들어있어, 그 속성 자체로 참이다.

 

a = ''
if a:
    print("참입니다")
else:
    print("거짓입니다")

>>> 거짓입니다

: a라는 변수에 값이 없으므로, 그 속성 자체가 거짓이다.

 

 

2) 비교 연산자를 이용 : <, >, ==, !=, >=, <=

 

'만약 3000원 이상의 돈을 가지고 있으면 택시를 타고 가고, 그렇지 않으면 걸어가라.'

 

money = 2000
if money >= 3000:
    print("택시를 타고 가라")
else:
    print("걸어가라")
>>> 걸어가라

 

: 만약 money >= 3000이 참True이면, "택시를 타고 가라"를 출력하고,

거짓False이면 "걸어가라"를 출력하라.

 

 

3) and, or, not을 이용

 

3-1) or : x or y

: 둘중 하나만 참이어도 참

 

'만약 3000원 이상의 돈이나 카드를 가지고 있으면 택시를 타고 가고, 그렇지 않으면 걸어가라.'

 

money = 2000
card = True
if money >= 3000 or card:
    print("택시를 타고 가라")
else:
    print("걸어가라")
>>> 택시를 타고 가라

: 만약 money >= 3000이 참True 혹은 card가 있다면, "택시를 타고 가라"를 출력하고,

거짓False이면 "걸어가라"를 출력하라.

 

 

3-2) and : 둘 다 참이어야 참

: x and y

 

 

3-3) not : x가 거짓이면 참

: not x

 

 

4) in과 not in을 이용

: x in 리스트/튜플/문자열

: x not in 리스트/튜플/문자열

 

1 in [1, 2, 3]
>>> True
1 not in [1, 2, 3]
>>> False

 

'a' in ('a', 'b', 'c')
>>> True
'j' not in 'python'
>>> True

 

"만약 주머니에 돈이 있으면 택시를 타고 가고, 없으면 걸어가라."

 

pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket:
    print("택시를 타고 가라")
else:
    print("걸어가라")
>>> 택시를 타고 가라

 

5) 아무 것도 실행하지 않음 : pass

 

"만약 주머니에 돈이 있으면 택시를 타고 가고, 없으면 걸어가라."

 

pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket:
    pass
else:
    print("걸어가라")

>>>

 

 

1. elif

1) 기본 구조

: elif를 이용해 여러개의 조건과 실행을 제시

 

if 조건문:
    수행할_문장1 
    수행할_문장2
elif 조건문:
    수행할_문장1
    수행할_문장2
elif 조건문:
    수행할_문장1
    수행할_문장2
else:
   수행할_문장1
   수행할_문장2

 

>>> pocket = ['paper', 'cellphone']
>>> card = True
>>> if 'money' in pocket:
...      print("택시를 타고가라")
... elif card: 
...      print("택시를 타고가라")
... else:
...      print("걸어가라")
...
택시를 타고가라

 

 

 

2. while문

1) 기본 구조

 

while 조건문:
    수행할_문장1
    수행할_문장2
    수행할_문장3

 

coffee = 10
while True:
    money = int(input("돈을 넣어 주세요: "))
    if money == 300:
        print("커피를 줍니다.")
        coffee = coffee -1
    elif money > 300:
        print("거스름돈 %d를 주고 커피를 줍니다." % (money -300))
        coffee = coffee -1
    else:
        print("돈을 다시 돌려주고 커피를 주지 않습니다.")
        print("남은 커피의 양은 %d개 입니다." % coffee)
    if coffee == 0:
        print("커피가 다 떨어졌습니다. 판매를 중지 합니다.")
        break

: 강제로 while문을 중지시킴.

 

a = 0
while a < 10:
    a = a + 1
    if a % 2 == 0:

        continue
    print(a)

: 처음으로 돌아가 수행하게 함.

 

 

 

3.  for문

 

1) 기본 구조

: 리스트의 첫 값부터 하나씩 변수에 '수행할 문장'하는 것을 마지막 값까지 반복.

: 따라서 리스트 안의 값을 다 돌 때까지 반복.

 

for 변수 in 리스트(또는 튜플, 문자열):
    수행할_문장1
    수행할_문장2
    ...

 

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

 

marks = [90, 25, 67, 45, 80]          # 학생들의 시험 점수 리스트
number = 0   # 학생에게 붙여 줄 번호
for mark in marks:          # 90, 25, 67, 45, 80을 순서대로 mark에 대입
    number = number +1 
    if mark >= 60: 
        print("%d번 학생은 합격입니다." % number)
    else: 
        print("%d번 학생은 불합격입니다." % number)

>>> 1번 학생은 합격입니다.

        2번 학생은 불합격입니다.

        3번 학생은 합격입니다.

        4번 학생은 불합격입니다.

        5번 학생은 합격입니다.

 

marks = [90, 25, 67, 45, 80]
number = 0 
for mark in marks: 
    number = number +1 
    if mark < 60:
        continue 
    print("%d번 학생 축하합니다. 합격입니다. " % number)

>>> 1번 학생 축하합니다. 합격입니다.

         3번 학생 축하합니다. 합격입니다.

         5번 학생 축하합니다. 합격입니다.

 

 

2) 이중 for문

 

for i in range(2,10):          # 1번 for문
for j in range(1, 10):          # 2번 for문
    print(i*j, end=" ") 
print('') 
... 
2 4 6 8 10 12 14 16 18 
3 6 9 12 15 18 21 24 27 
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54 
7 14 21 28 35 42 49 56 63 
8 16 24 32 40 48 56 64 72 
9 18 27 36 45 54 63 72 81

: 1번 for문의 첫번째 값이 2번 for문의 값 처음부터 끝까지를 다 돌아야,

1번 for문의 두번째 값으로 넘어감.

 

for i in range(2,10):
for j in range(1, 10):
    print(i*j) 
print('') 
... 
2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54  7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81

: print('')에서 ''에는 줄바꿈이\n이 기본으로 들어가 있는 상태로,

줄띄움을 하고 싶다면 print(x, end=' ')형태로 end를 넣어 줌.

*end=''은 end'\n'이 기본이므로 end=' '스페이스를 넣어 줘야 함.