프로그램의 흐름 제어하기
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
출력하기 - %를 이용해 형식에 맞춰 출력하기
%를 이용하면 문자열 내 형식 문자열이 놓인 위치에 원하는 형식의 값을 출력할 수 있다.
형식 문자열 | 내용 | 예시 | 출력 |
---|---|---|---|
%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부터 시작하는 인수 번호가 차례로 부여된다.
#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
햄버거를 만들어보자.
햄버거의 기본 재료는 ('빵', '토마토', '야채', '소스')이고,
핵심재료에 따라 이름이 달라져.
핵심재료가 새우면 새우버거
핵심재료가 불고기면 불고기버거
핵심재료가 한우면 한우버거
핵심재료가 피자면 피자버거