콘텐츠로 이동

프로그램의 흐름 제어하기

1. 형 변환과 출력하기

형변환

다른 형태의 자료로 변경하는 것을 형 변환이라고 한다.

  • 문자열→정수형으로 변환하려면, 내장함수int()를 사용
  • 문자열 → 실수형으로 변환하려면, 내장 함수 float()를 사용
  • 정수,실수→문자열형으로 변환하려면, 내장함수str()을 사용
  • 리스트는 내장 함수 tuple()을 사용하여 언제나 튜플로,
    튜플은 내장 함수 list()를 사용하여 언제나 리스트로 변환할 수 있다.
  • 변수값이 어떤 자료형인지 확인하려면, type( ) 함수를 사용한다.
#section 046.py

# 숫자와 문자열 사이의 형변환
iNumber = int('7')
print(iNumber, type(iNumber))

fNumber = float(iNumber)
print(fNumber, type(fNumber))

sNumber = str(iNumber)
print(sNumber, type(sNumber))
# print (sNumber + 1) #오류 발생

print('-' * 20)
# 리스트와 튜플 사이의 형변환
myList = [1, 2, 3]
print(myList, type(myList))

myTuple = tuple(myList)
print(myTuple, type(myTuple))

Output

    7 <class 'int'>
    7.0 <class 'float'>
    7 <class 'str'>
    --------------------
    [1, 2, 3] <class 'list'>
    (1, 2, 3) <class 'tuple'>

출력하기 - %를 이용해 형식에 맞춰 출력하기

%를 이용하면 문자열 내 형식 문자열이 놓인 위치에 원하는 형식의 값을 출력할 수 있다.

형식 문자열 내용 예시 출력
%s 문자열 출력 school="광문"
print('%s' % school)
광문
%d 십진 정수 출력 number = 255
print('%5d) % number)
255
%f, %F 실수 출력 pi = 3.141592654319
print('%6.2F' % pi)
3.14
%o 8진수 출력 number = 255
print('%3o' % number)
377
%x, %X 16진수 출력 number = 65535
print('%4X' % number)
FFFF
%e, %E 실수를 지수승 형태로 출력 enumber = 0.000123
print('%e' % enumber)
1.230000e-04
#section 047.py

print('%s, %s' % ('하나', '둘'))
print('%d, %d, %d' % (1, 2, 3))
print()
print('작품 번호: %5d, 작품 선호도: %6.2f' % (365, 9.22811))
print('작품 번호: %5d, 작품 선호도: %6.2f' % (468, 8.124))
print()

print('체 질량지 수 (BMI)를 계산해 보아요')
weight = int(input('체중 (Kg)을 입력 하세요: '))
height = float(input('키(m)를 입력 하세요: '))
bmi = weight / (height * height)
comment = 'BMI 는 %d/ (%.2f + %.2f)이므로 %6.2f이다.'

print(comment % (weight, height, height, bmi))

Output

하나, 둘
1, 2, 3

작품 번호: 365, 작품 선호도: 9.23
작품 번호: 468, 작품 선호도: 8.12

출력하기 - format( ) 이용해 형식에 맞춰 출력하기

  • % 연산자를 이용하는 방식보다 format( )을 이용하는 것이 더 효율적이다.
  • format()을 이용해 형식에 맞춰 출력하려면, 출력하려는 문장 안에서 값을
    넣고싶은 위치에 인수번호를 가지는 중괄호({ })를 기재하여야 한다.
  • format( ) 메서드의 괄호 안에는 출력할 값이나 출력할 값을 가지는 변수 등을 인수로 지정하며, 각 인수에는 첫 번째 인수부터 0부터 시작하는 인수 번호가 차례로 부여된다.
print('{1}, {0}'.format ('하나', '둘')

# 둘, 하나
#section 048.py

print('{0}, {1}'.format('하나', '둘 '))
print('{0}, {1}, {2}'.format(1, 2, [3, 4, 5]))
print('칸이 비어도 {}, {}, {}'.format('하나', '둘', '셋'))
print()

print('{2}, {1}, {0}'.format('a', 'b', 'c'))
print('{0} {1} {0}'.format('오렌지', '를 먹은 지 얼마나'))

print('체질량 지수 (BMI)를 계산해 보아요')
weight = int(input('체중을 입력 하세요: '))
height = float(input('키를 입력 하세요: '))

bmi = weight / (height * height)
comment = 'BMI는 {0} / ({1} * {1})이므로 {2:6.2f}이다.'

print(comment.format(weight, height, bmi))

Output

하나, 둘
1, 2, [3, 4, 5]
칸이 비어도 하나, 둘, 셋

c, b, a
오렌지 를 먹은 지 얼마나 오렌지
체질량 지수 (BMI)를 계산해 보아요
체중을 입력 하세요: 77
키를 입력 하세요: 1.77
BMI는 77 / (1.77 * 1.77)이므로 24.58이다.

출력하기 - format( ) 더 알아보기

  • format()을 사용할 때 중괄호 안에 인수 번호 대신 키워드 인수를 사용할 수 있다.
  • format()은 여러 줄 문자열에도 사용할 수 있다.
# section_049.py

print('햄버거를 만들어보자.')

basemat = ('빵', '토마토', '야채', '소스')
coremat = ('새우', '불고기', '한우', '피자')

print('''{food}의 기본 재료는 {base}이고, 
핵심재료에 따라 이름이 달라져.'''.format(food='햄버거', base=basemat))
print()

for item in coremat:
    print('핵심재료가 {core}{core}버거'.format(core=item))

Output

햄버거를 만들어보자.
햄버거의 기본 재료는 ('빵', '토마토', '야채', '소스')이고,
핵심재료에 따라 이름이 달라져.

핵심재료가 새우면 새우버거
핵심재료가 불고기면 불고기버거
핵심재료가 한우면 한우버거
핵심재료가 피자면 피자버거