Python 정리 - 입력과 출력

Kyung Jae, Cheong·2023년 3월 22일
0
post-thumbnail

데이터 입력 함수 : input()

  • Python의 input() 함수는 데이터를 입력하는 함수로써 프로그램이 실행되면 데이터를 입력 할 수 있게 해줌
  • 기본적으로 입련한 데이터는 문자열(str) 자료형으로 입력되며, 이를 수치형이나 논리형으로 이용하기 위해선 데이터를 형변환(casting이라고 함)을 실시해 줘야함
  • 이렇게 입력된 데이터를 변수로 저장함으로써 목적에 맞게 사용할 수 있음!
  • 입력함수 input()의 기본사용법
# 입력 문구를 따로 설정하는 경우
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'>
'''

# 정수형(integer)
input_data = int(input('데이터를 입력하세요 : '))
print(input_data)
print(type(input_data))
'''
데이터를 입력하세요 : 10
10
<class 'int'>
'''

# 실수형(float) - 변수를 따로 형변환
input_data = input('데이터를 입력하세요 : ')
input_data = float(input_data)
print(input_data)
print(type(input_data))
'''
데이터를 입력하세요 : 3.14
3.14
<class 'float'>
'''

# 논리형(boolean) 
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
'''

format string을 이용한 데이터 출력

  • fF를 앞에 붙여서 변수를 담을 수 있도록 함
  • 변수의 데이터를 그대로 출력하는 경우에 유용하게 사용가능함
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
'''

# \n : 줄바꿈 (개행)
print('Hi,  \n Hello')
'''
Hi,  
 Hello
'''

# \t : 탭 (2~4칸 띄우기)
print('\tHi,  \t Hello')
'''
	Hi,  	 Hello
'''

# \b : 백스페이스
# \\ : 백슬래시 (\)
print('Hi,\b  \\ Hello')
'''
Hi  \ Hello
'''

# \' : 작은 따옴표(')
# \" : 큰 따옴표(")
print('\'Hi\',  \"Hello\"')
'''
'Hi',   "Hello"
'''

# \r : 현재 라인의 시작 위치로 옮기는 역할, 앞의 모든 문자가 제거됨
print('Hi,  \r Hello')
'''
 Hello
'''

Raw string을 활용한 원본 문자열 출력

  • 문자열 앞에 r이나 R을 붙이면 Escape 문자를 인식하지 않고 그대로 출력 할 수 있음
  • 백슬래시가 가득해지는 걸 깔끔하게 정리하고자할 경우에 쓰일 수 있음
  • json, html 문서나 파일경로에서 백슬래시를 그대로 써야하는 경우에 주로 이용됨
# 파일 경로 출력하기 (raw string 활용)
print('C:\programs\nayana')
print('C:\\programs\\nayana')
print(R'C:\programs\nayana')

'''
C:\programs
ayana
C:\programs\nayana
C:\programs\nayana
'''

# raw string 사용예제
string_1 = "raw stringg\b 출력"
string_2 = r"raw stringg\b 출력"

# format string 사용예제
print("escape : {}".format(string_1))
print(f"raw : {string_2}")

'''
escape : raw string 출력
raw : raw stringg\b 출력
'''

.format() 함수를 이용한 데이터 출력

  • 데이터 출력의 형태를 미리 정하고, 변수를 튜플로 전달해주는 기능
  • 변수가 들어갈 자리는 {}로 정해주고, 뒤에 .format()에는 변수를 튜플(,)로 담아줌
  • 전달할 변수 튜플의 index번호를 key, index번호에 해당하는 변수값을 value로 정의된 딕셔너리형태이기 때문에, 이를 잘 활용하면 동일한 변수를 여러번 이용하고자 할때에도 유용하게 쓸 수 있음
  • 또한 추가적으로 {}안에서 숫자형의 경우엔 소수점 몇째짜리 까지 표시할지도 설정할 수 있음
user_name = '홍길동'
user_age = 20.5
user_height = 180.3

# format함수 기본 사용법
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
'''
# 16진수, 8진수 표현
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
'''
# 빈자리 0으로 채우기(앞에 0붙이기)
print(format(int_num, '09'))
'''
001234567
'''
# 소수점 표시(뒤에 f붙이기)
print(format(int_num, '.9f'))
'''
1234567.000000000
'''
  • format 함수를 복합적으로 응용하기 (실수인 경우)
float_num = 12345.6789

# 총 15자리로 오른쪽 정렬하고, 소수점은 4째자리까지 표시하며, 천단위는 쉼표처리
print(format(float_num, '>15,.4f'))
print('출력 결과 : {0:>15,.4f}'.format(float_num))
'''
    12,345.6789
출력 결과 :     12,345.6789
'''

# 총 15자리로 빈자리는 0을 채우고, 소수점은 3째자리까지 표시하며, 천단위는 쉼표처리
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

# 정수형(10진법)으로 출력하기
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
'''

# 10칸의 자리수로 표현
print(format(int_num, '10d'))
print('출력 결과 : {0:10d}'.format(int_num))
'''
   1234567
출력 결과 :    1234567
'''

# 10칸의 자리수 & 천단위 쉼표
print(format(int_num, '10,d'))
print('출력 결과 : {0:10,d}'.format(int_num))
'''
 1,234,567
출력 결과 :  1,234,567
'''

# 지수표현 (소수점은 2째자리까지)
print(format(int_num, '.2e'))
print('출력 결과 : {0:.2e}'.format(int_num))
'''
1.23e+06
출력 결과 : 1.23e+06
'''

# 16진수 (x)
print(format(int_num, 'x'))
print('출력 결과 : {0:x}'.format(int_num))
# 8진수 (o)
print(format(int_num, 'o'))
print('출력 결과 : {0:o}'.format(int_num))
'''
12d687
출력 결과 : 12d687
4553207
출력 결과 : 4553207
'''
  • (내용추가) 이러한 format함수의 주요기능은 format string에서도 사용할 수 있음
    • 예를 들어 소수점 3째짜리까지 표현한다면 print(f"~~ {변수:.3f} ~~")와 같은 방식으로 적용하여 사용할 수 있음!

형식문자(%)를 이용한 데이터 출력

  • 형식문자를 이용하여 데이터를 출력할 수도 있으며, 대표적인 형식문자는 다음과 같음
    • %s : 문자열
    • %d : 정수
    • %f : 실수
  • 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
'''

# 실수형을 출력하는 경우 ( 기본적으로는 소수점 6자리까지 표현됨)
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함수를 통한 출력방법과 형식문자를 통한 출력방법을 살펴보았음
  • 추가적으로 추가할 내용이 생기면 추가적으로 업데이트를 진행할 예정!
  • 화이팅 !
profile
Machine Learning (AI) Engineer & BackEnd Engineer (Entry)

0개의 댓글

관련 채용 정보