programming/python

[Python] 제어문

5. 제어문

 

5.1 들여쓰기와 제어문

5.1.1 파이썬은 들여쓰기를 강제하여 코드의 가독성을 높인다.

5.1.2 블록 내부에 있는 문장들은 반드시 들여쓰기가 일치해야 한다.

if a > 1:
    print 'a'
        print 'b'   # 에러

 

5.1.3 블록의 시작은 콜론(:)이며 블록의 끝은 들여쓰기가 끝나는 부분으로 처리된다. - python에는 { }, begin, end 등의 키워드가 존재하지 않는다.

 

5.1.4 들여쓰기를 할 때에는 탭과 공백을 섞어 쓰지 않는다.

 

 

5.2 조건문(if)

if 조건식1:
    statements
elif 조건식2:
    statements
elif 조건식3:
    statements
else
    statements

 

조건식이나 else 다음에 콜론(:) 표기 필요

들여쓰기(indentation)를 잘 지켜야 함

 

switch 문은 없음

실행할 코드가 없는 경우 pass

if not a:
    pass

 

 

5.3 반복문

5.3.1 for

for <타켓> in <컨테이너 객체>:
    statements
else:
    statements

 

5.3.2 for 루프의 중첩

for x in range(2, 10):
    print("=== {0}단 ===".format(x))
    for y in range(1, 10):
        print("{0} x {1} = {2:2d}".format(x, y, x * y))

    # 빈 라인 출력
    print()


5.3.3 while 조건식이 만족하는 동안 while 블록내의 문장들을 반복 수행한다.

count = 1
while count < 11:
    print(count)
    count = count + 1
else:
    print('else block')

 

 

5.4 실습문제

if Statements

color = input('색상을 입력하세요: ')
if color == 'blue':
    print('건너가세요.')
else:
    print('기다리세요.')

 

num = 100

# 조건문 다음에 콜론(:)
# 탭을 쓰거나 공백 4개를 쓴다.
if num % 2 == 0:
    print("짝수입니다")
else:
    print("홀수입니다")

 

# 들여쓰기를 하지 않으면 에러 발생
money = 10000

if money:
    print("택시를")
print("타고")
    print("간다.")

 

elif

color = input('색상을 입력하세요: ')

if color == 'blue':
    print('건너가세요.')
elif color == 'red':
    print('기다리세요.')
else:
    print('잘못된 색상입니다.')

 

numbers = [1, 2, 3, 4, 5];

for i in number:
    print(i)

 

The range() function

# 0부터 9
a = range(10)
print(type(a))
print(a)

# 리스트로 저장
a = list(range(10))
print(a)

# range(start, end - 1)
a = range(1, 11)
print(a)

# range(start, end - 1, step)
a = list(range(1, 11, 2))
print(a)

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

 

# 다중 for 문
# 2 ~ 4단
for x in range(2, 5):
    print("=== {0}단 ===".format(x))
    for y in range(1, 10):
        print("{0} x {1} = {2:2d}".format(x, y, x * y))

    # 빈 라인 출력
    print()

 

리스트의 요소가 튜플인 경우

# 리스트의 요소가 튜플인 경우
a = [(1, 2), (3, 4), (5, 6)]
for (first, last) in a:
    print("{0} + {1} = {2}".format(first, last, first + last))

 

points = [90, 25, 67, 45, 80]
number = 0

for point in points:
    number = number + 1
    result = ""

    if point >= 60:
        result = "합격"
    else:
        result = "불합격"

    print("%d번 학생: %d점, %s입니다." % (number, point, result))

 

# 딕셔너리 내부에 for 반복문 사용
a = { x: x ** 2 for x in (2, 4, 6) }
print(a)

 

break 예제

# break 예제
# 커피 자판기 예제
coffee = 10
money = 30000

while money:
    print("커피를 드립니다.")
    coffee = coffee - 1
    money = money - 3000
    print("남은 커피는 %d개이고 잔액은 %d원입니다.\n" % (coffee, money))
    if not coffee:
        print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
        break

 

continue

a = 0

while a < 10:
    # a = a + 1
    a += 1
    
    if a % 2 == 0:
        continue
    print(a)

 

break

a = 0

while a < 10:
    # a = a + 1
    a += 1
    
    if a % 2 == 0:
        break
    print(a)

 

무한 루프

# 무한 루프
while True:
    s = input('내용을 입력하세요(종료하려면 x 버튼을 누르세요): ')

    if s == 'x':
        break

 

while 1:

# 0 False, 0이 아니면 True
while 1:
    # dan = eval(input('단을 입력하세요(종료하려면 0을 입력하세요): '))
    dan = int(input('단을 입력하세요(종료하려면 0을 입력하세요): '))
    if dan == 0:
        break
    for n in range(1, 10):
        print(dan, 'x', n, '=', dan * n)