- Python의 input() 함수는 데이터를 입력하는 함수로써 프로그램이 실행되면 데이터를 입력 할 수 있게 해줌
- 기본적으로 입련한 데이터는 문자열(str) 자료형으로 입력되며, 이를 수치형이나 논리형으로 이용하기 위해선 데이터를 형변환(casting이라고 함)을 실시해 줘야함
- 이렇게 입력된 데이터를 변수로 저장함으로써 목적에 맞게 사용할 수 있음!
print('데이터를 입력하세요 : ')
input_data = input()
print(input_data)
'''
데이터를 입력하세요 :
'''
입력된 데이터는 문자열로 출력됩니다.
'''
입력된 데이터는 문자열로 출력됩니다.
'''
- input 함수에 입력 문구를 설정할 수 있음
input_data = input('데이터를 입력하세요 : ')
print(input_data)
print(type(input_data))
'''
데이터를 입력하세요 : 입력된 데이터는 문자열로 출력됩니다.
입력된 데이터는 문자열로 출력됩니다.
<class 'str'>
'''
- 데이터 형변환(casting) : 형변환 함수로 감싸주거나 변수를 따로 형변환
input_data = input('데이터를 입력하세요 : ')
print(input_data)
print(type(input_data))
'''
데이터를 입력하세요 : 입력 데이터
입력된 데이터
<class 'str'>
'''
input_data = int(input('데이터를 입력하세요 : '))
print(input_data)
print(type(input_data))
'''
데이터를 입력하세요 : 10
10
<class 'int'>
'''
input_data = input('데이터를 입력하세요 : ')
input_data = float(input_data)
print(input_data)
print(type(input_data))
'''
데이터를 입력하세요 : 3.14
3.14
<class 'float'>
'''
input_data = bool(input('데이터를 입력하세요 : '))
print(input_data)
print(type(input_data))
'''
데이터를 입력하세요 : True
True
<class 'bool'>
'''
- 응용 : 입력한 숫자가 숫자형인지 판단하여 실행하기 (조건문과 결합)
input_data = input('데이터를 입력하세요 : ')
if input_data.isdigit():
input_data = float(input_data)
print(input_data)
print(type(input_data))
else:
print('잘 못 입력 하셨습니다.')
'''
데이터를 입력하세요 : string
잘 못 입력 하셨습니다.
'''
'''
데이터를 입력하세요 : 10
10.0
<class 'float'>
'''
- 응용2 : 숫자형을 입력할 때까지 반복 수행 (반복문과 조건문 활용)
flag = True
while flag:
input_data = input('숫자를 입력하세요 : ')
if input_data.isdigit():
input_data = float(input_data)
print(input_data)
print(type(input_data))
flag = False
else:
print('잘 못 입력 하셨습니다.')
print('입력을 다시 진행해주세요.\n')
'''
숫자를 입력하세요 : string
잘 못 입력 하셨습니다.
입력을 다시 진행해주세요.
숫자를 입력하세요 : 50
50.0
<class 'float'>
'''
데이터 출력 함수 : print()
- pyhton의 출력함수 print()함수는 변수나 연산결과를 결과창 및 터미널에 출력할 수 있도록 해주는 함수이며, 가장 기본적이면서도 가장 많이 쓰이는 함수이기도 함.
- 다양한 활용 방법들이 있고, 일반적으로 문자열을 출력하는 형태이기 때문에, 문자열 활용을 통해 다양한 방법으로 활용하여 출력을 실시할 수 있음
print()함수의 기본적인 사용법
- print() 함수 내부에 직접 변수를 담아서 출력하기
print('홍길동')
'''
홍길동
'''
user_name = '홍길동'
print(user_name)
'''
홍길동
'''
user_name = '홍길동'
user_age = 20
print('User name :', user_name)
print('User age :', user_age)
print('User name :', user_name, ',', 'User age :', user_age)
'''
User name : 홍길동
User age : 20
User name : 홍길동 , User age : 20
'''
f
나 F
를 앞에 붙여서 변수를 담을 수 있도록 함
- 변수의 데이터를 그대로 출력하는 경우에 유용하게 사용가능함
user_name = '홍길동'
user_age = 20
print(f'User name : {user_name}')
print(f'User age : {user_age}')
print(F'User name : {user_name}, User age : {user_age}')
'''
User name : 홍길동
User age : 20
User name : 홍길동, User age : 20
'''
escape string을 이용한 데이터 출력
- 백슬래시
\
를 앞에 붙여 특수한 기능을 수행하도록 하는 escape string을 활용할 수 있음
\n
: 줄바꿈 (개행)
\t
: 탭 (2~4칸 띄우기)
\b
: 백스페이스
\\
: 백슬래시 ()
\'
: 작은 따옴표(')
\"
: 큰 따옴표(")
\r
: 현재 라인의 시작 위치로 옮기는 역할, 앞의 모든 문자가 제거됨
- 출력의 형태를 지정하고자 할때 유용하게 사용가능함
print('Hi, Hello')
'''
Hi, Hello
'''
print('Hi, \n Hello')
'''
Hi,
Hello
'''
print('\tHi, \t Hello')
'''
Hi, Hello
'''
print('Hi,\b \\ Hello')
'''
Hi \ Hello
'''
print('\'Hi\', \"Hello\"')
'''
'Hi', "Hello"
'''
print('Hi, \r Hello')
'''
Hello
'''
Raw string을 활용한 원본 문자열 출력
- 문자열 앞에
r
이나 R
을 붙이면 Escape 문자를 인식하지 않고 그대로 출력 할 수 있음
- 백슬래시가 가득해지는 걸 깔끔하게 정리하고자할 경우에 쓰일 수 있음
- json, html 문서나 파일경로에서 백슬래시를 그대로 써야하는 경우에 주로 이용됨
print('C:\programs\nayana')
print('C:\\programs\\nayana')
print(R'C:\programs\nayana')
'''
C:\programs
ayana
C:\programs\nayana
C:\programs\nayana
'''
string_1 = "raw stringg\b 출력"
string_2 = r"raw stringg\b 출력"
print("escape : {}".format(string_1))
print(f"raw : {string_2}")
'''
escape : raw string 출력
raw : raw stringg\b 출력
'''
- 데이터 출력의 형태를 미리 정하고, 변수를 튜플로 전달해주는 기능
- 변수가 들어갈 자리는
{}
로 정해주고, 뒤에 .format()
에는 변수를 튜플(,
)로 담아줌
- 전달할 변수 튜플의 index번호를 key, index번호에 해당하는 변수값을 value로 정의된 딕셔너리형태이기 때문에, 이를 잘 활용하면 동일한 변수를 여러번 이용하고자 할때에도 유용하게 쓸 수 있음
- 또한 추가적으로
{}
안에서 숫자형의 경우엔 소수점 몇째짜리 까지 표시할지도 설정할 수 있음
user_name = '홍길동'
user_age = 20.5
user_height = 180.3
print('{} 고객님의 나이는 {}살이며, {}님의 키는 {}cm입니다.'
.format(user_name, user_age, user_name, user_height))
'''
홍길동 고객님의 나이는 20.5살이며, 홍길동님의 키는 180.3cm입니다.
'''
print('{0} 고객님의 나이는 {1}살이며, {0}님의 키는 {2}cm입니다.'
.format(user_name, user_age, user_height))
'''
홍길동 고객님의 나이는 20.5살이며, 홍길동님의 키는 180.3cm입니다.
'''
print('{0} 고객님의 나이는 {1:.0f}살이며, {0}님의 키는 {2:.2f}cm입니다.'
.format(user_name, user_age, user_height))
'''
홍길동 고객님의 나이는 20살이며, 홍길동님의 키는 180.30cm입니다.
'''
format()
함수와 .format()
함수의 차이
- format() 함수는 다양한 형태로 숫자형을 제어하기 위한 함수이고, 이를 활용해 다양한 형태의 문자열로 변환시킬 수 있는 함수임
- format(숫자, 기호) 형태로 사용할 수 있으며, 기호에 따른 주요 기능들은 다음과 같음
,
: 천단위 쉼표
e
또는 E
: 지수형태로 출력
d
: 10진수로 출력 (정수인 경우에만 동작함)
x
또는 X
: 16진수로 출력 (정수인 경우에만 동작함)
o
: 8진수로 출력 (정수인 경우에만 동작함)
숫자
: 자릿수 지정
<숫자
: 왼쪽 정렬
>숫자
: 오른쪽 정렬
0숫자
: 빈자리를 0으로 채우기
.숫자f
: 실수의 소수점 표시
.format()
함수에서는 {}
에 넣을 때 format()함수의 기호에 해당하는 값을 value로 지정함으로써 format()함수의 기능을 활용하여 원하는 형태로 출력할 수 있음
int_num = 1234567
print(format(int_num, ','))
'''
1,234,567
'''
print(format(int_num, 'e'))
'''
1.234567e+06
'''
print(format(int_num, 'x'))
print(format(int_num, 'o'))
'''
12d687
4553207
'''
print(format(int_num, '9'))
print(format(int_num, '<9'))
print(format(int_num, '>9'))
'''
1234567
1234567
1234567
'''
print(format(int_num, '09'))
'''
001234567
'''
print(format(int_num, '.9f'))
'''
1234567.000000000
'''
- format 함수를 복합적으로 응용하기 (실수인 경우)
float_num = 12345.6789
print(format(float_num, '>15,.4f'))
print('출력 결과 : {0:>15,.4f}'.format(float_num))
'''
12,345.6789
출력 결과 : 12,345.6789
'''
print(format(float_num, '015,.3f'))
print('출력 결과 : {0:015,.3f}'.format(float_num))
'''
000,012,345.679
출력 결과 : 000,012,345.679
'''
print(format(float_num, ',.0f'))
print('출력 결과 : {0:,.0f}'.format(float_num))
'''
12,346
출력 결과 : 12,346
'''
- format 함수를 복합적으로 응용하기 (정수인 경우)
int_num = 1234567
print(format(int_num, 'd'))
print('출력 결과 : {0:d}'.format(int_num))
'''
1234567
출력 결과 : 1234567
'''
print(format(int_num, ',d'))
print('출력 결과 : {0:,d}'.format(int_num))
'''
1,234,567
출력 결과 : 1,234,567
'''
print(format(int_num, '10d'))
print('출력 결과 : {0:10d}'.format(int_num))
'''
1234567
출력 결과 : 1234567
'''
print(format(int_num, '10,d'))
print('출력 결과 : {0:10,d}'.format(int_num))
'''
1,234,567
출력 결과 : 1,234,567
'''
print(format(int_num, '.2e'))
print('출력 결과 : {0:.2e}'.format(int_num))
'''
1.23e+06
출력 결과 : 1.23e+06
'''
print(format(int_num, 'x'))
print('출력 결과 : {0:x}'.format(int_num))
print(format(int_num, 'o'))
print('출력 결과 : {0:o}'.format(int_num))
'''
12d687
출력 결과 : 12d687
4553207
출력 결과 : 4553207
'''
- (내용추가) 이러한 format함수의 주요기능은 format string에서도 사용할 수 있음
- 예를 들어 소수점 3째짜리까지 표현한다면
print(f"~~ {변수:.3f} ~~")
와 같은 방식으로 적용하여 사용할 수 있음!
형식문자(%)를 이용한 데이터 출력
- 형식문자를 이용하여 데이터를 출력할 수도 있으며, 대표적인 형식문자는 다음과 같음
- SQL 명령문을 활용할 때 주로 사용되는 방법이기도 하고, .format보다 좀 더 간결하게 변수를 전달하고자 할때에도 쓰일수 있음
- 다만 하나의 변수가 여러번 쓰이는 경우에도 순서대로 넣어줘야해서 이러한 경우엔 형식문자 방식이 비효율적일 수 있음
- format 함수와 마찬가지로 여러개의 변수를 전달할 때는 튜플 형태로 변수를 전달해야하고, 실수의 경우엔 표시할 소수점 자리수를 지정할 수 있음
user_name = '홍길동'
user_age = 20
user_height = 180.6
print('User name : %s' % user_name)
print('User age : %d' % user_age)
print('User name : %s, User age : %d' % (user_name, user_age))
'''
User name : 홍길동
User age : 20
User name : 홍길동, User age : 20
'''
print('User height : %f' % user_height)
print('User height : %.2f' % user_height)
print('User height : %.0f' % user_height)
print('User height : %d' % user_height)
'''
User height : 180.600000
User height : 180.60
User height : 181
User height : 180
'''
마무리
- python의 입력 함수인 input()함수와 출력 함수인 print()함수에 대해 다루어 보았음
- 출력 함수의 경우, format string, escape string, raw string을 활용한 문자열 출력방법을 살펴왔음
- 또한 format()함수와 .format함수를 통한 출력방법과 형식문자를 통한 출력방법을 살펴보았음
- 추가적으로 추가할 내용이 생기면 추가적으로 업데이트를 진행할 예정!
- 화이팅 !