파이썬 기초 문법 2

윤수환·2025년 3월 21일

표준 입출력

장치를 지정하지 않아도 자동으로 입출력 가능한 장치를 말하며
프로그래밍에서 일반적인 입출력 장치는 키보드와 모니터를 뜻함


표준 출력

  • print() 함수를 사용하여 모니터로 출력

print(score)
print(출력 내용, [, sep=구분자][, end=끝문자])

sep : 출력 시 출력 값 사이에 구분자 넣을 때 사용 (default: 공백)
end: 마지막 값 출력 후 넣을 출력 문자 (default: \n)


사용법

괄호 안에 상수, 변수, 수식 등 출력 내용 입력

print (3)
a = 3
print (a)
print (3 + 4)

출력할 내용이 여러 개일 경우 콤마 , 로 나열

print (3, 4)                        # 3 4
a = 12
b = 34
print (a, b)                        # 12 34
print ('Hello World', 'Python')     # Hello World Python
print ('Hello', 'World', 'Python')  # Hello World Python

구분자(Separator)를 사용하여 여러 개의 출력 결과 구별

a = 12
b = 34
print(a, b, sep = '|')     # 12|34

print는 출력 후 다음 줄로 자동 개행

  • 끝문자 end의 default가 \n 이기 때문
print(a)
# 12
print(b)
# 34

end 를 사용하여 끝문자 설정
print(a, end='&')    # 문자열 끝에 '&'를 붙임.
# 12&                # \n은 취소되었음.

print(a, end='&\n')  # 문자열 끝에 '&' 와 '\n'을 붙임.
# 12&                # 문자열 끝에 '&'이 출력되고, 줄바꿈
# >>>

print(a, b, end='**\n')
# 12 34**            # 문자열 끝에 '**'이 출력되고, 줄바꿈
# >>>

문자열 출력

  • 작은따옴표 ' 또는 큰따옴표 "를 사용하여 문자열 앞 뒤에 사용하여 출력
  • 작은 따옴표 안에 큰 따옴표 사용 가능
  • 큰 따옴표 안에 작은 따옴표 사용 가능
  • 큰 따옴표 안에 큰 따옴표 사용 불가
  • 작은 따옴표 안에 작은 따옴표 사용 불가
print('고양이')                 # 고양이
print("강아지")                 # 강아지
print("'고양이'와 '강아지'")    # '고양이'와 '강아지'
print('"고양이"와 "강아지"')    # "고양이"와 "강아지"

교차 사용 & 중첩 사용 불가

print('고양이")  # ' 와 " 를 교차 사용
print(""고양이"와 "강아지"")    # " 를 중첩 사용

eol (end of line) : 하나의 줄이 끝났음을 나타냄
string literal: 문자열 상수로 변수가 아닌 정해진 값을 나타냄
중첩 사용은 아래 이스케이프 시퀀스를 통해 사용 가능


출력 형식지정자 (Format Specifier)

  • 데이터의 형식을 지정하여 출력하는 방법

Legacy 형식지정자

  • C 또는 Python2 버전에서 사용하는 방식
  • print 문에 %형식문자 와 %출력값 형태로 출력 값의 형식 지정
  • %형식문자 와 %출력값 은 1:1로 매핑됨
  • 형식지정자의 종류로는 문자열 %s, 정수형 %d, 실수형 %f 등이 있음
print('나는 %s를 좋아합니다.' %('고양이'))
# 나는 고양이를 좋아합니다.

print('나는 %d를 좋아합니다.' %(100000000))
# 나는 100000000를 좋아합니다.

print('나는 %s와 %d를 좋아합니다.' %('고양이', 100000000))
# 나는 고양이와 100000000를 좋아합니다.

print('%f도는 %s합니다.' %(38.3, '위험'))
# 38.300000도는 위험합니다.

% 출력값 자리에는 상수 값 대신 변수도 사용 가능함

a = '고양이'
print('나는 %s를 좋아합니다.' %(a))

소수점 자리수는 %.자리수f 형태로 조정 가능

  • 나머지 소수점은 반올림함
print('%.3f도는 %s합니다.' %(38.3, '위험'))
# 38.300도는 위험합니다.
print('원주율은 %.2f입니다.' %(3.141592))
# 원주율은 3.14입니다.

정수는 문자열로 출력 가능하지만, 문자열은 정수로 출력 불가능

print('나는 %s와 %d를 좋아합니다.' %(100000000, '고양이'))
TypeError 메시지 출력

문자열의 경우 *를 사용하여 반복 출력 가능

print('hello' *5)
# hellohellohellohellohello

Legacy 형식지정자

  • Python3 버전에서 사용 가능한 방식
  • print 문에 {} 와 .format() 형태로 출력 값의 형식 지정
  • {} 와 format() 의 파라미터는 1:1로 매핑됨
  • {index} 형태를 사용하여 출력 위치를 변경 할 수 있음
  • {파라미터} 형태를 사용하여 함수처럼 사용할 수 있음
print('나는 {}를 좋아합니다.' .format('고양이'))
# 나는 고양이를 좋아합니다.

print('나는 {}를 좋아합니다.' .format(100000000))
# 나는 100000000를 좋아합니다.

print('나는 {}와 {}를 좋아합니다.' .format('고양이', 100000000))
# 나는 고양이와 100000000를 좋아합니다.

print('{}도는 {}합니다.' .format(38.3, '위험'))
# 38.3도는 위험합니다.

print('{}' .format('hello' * 5))
# hellohellohellohellohello

index를 사용한 출력 형식 지정

print('나는 {0}와 {1}를 좋아합니다.' .format('고양이', 100000000))
# 나는 고양이와 100000000를 좋아합니다.

print('나는 {1}와 {0}를 좋아합니다.' .format('고양이', 100000000))
# 나는 100000000와 고양이를 좋아합니다.

print('나는 {0}와 {1}과 {1}과 또 {1}을 좋아합니다.' .format('고양이', 100000000))
# 나는 고양이와 100000000과 100000000과 또 100000000을 좋아합니다.

parameter를 사용한 출력 형식 지정

print('{temp}도는 {status}합니다.' .format(temp=38.3, status='위험'))
# 38.3도는 위험합니다.

print('{temp}도는 {status}합니다.' .format(status='위험', temp=38.3))
# 38.3도는 위험합니다.

천 단위 콤마 사용

print('나는 {0:,}를 좋아합니다.' .format(100000000))
# 나는 100,000,000를 좋아합니다.
print('나는 {a:,}를 좋아합니다.' .format(a=100000000))
# 나는 100,000,000를 좋아합니다.

f' string

  • 출력 내용 앞에 f' 를 붙여서 사용
  • Python 3.6 버전 이상부터 사용 가능
print(f'나는 {100000000}를 좋아합니다.')
# 나는 100000000를 좋아합니다.

print(f'나는 {100000000:,}를 좋아합니다.')
# 나는 100,000,000를 좋아합니다.

a = 100000000
print(f'나는 {a:,}를 좋아합니다.')
# 나는 100,000,000를 좋아합니다.

표준 입력

  • input() 함수를 사용하여 표준 입력
저장할 변수 = input([출력 내용])

사용법

prefer = input()   # 보아뱀 입력
print(prefer)      # 입력된 값 출력

입력 안내문구 사용

prefer = input('좋아하는 동물을 입력하세요: ')   # 좋아하는 동물을 입력하세요: 코끼리
print(prefer)

age = input('몇 살인가요? ')   # 몇 살인가요? 20
print(age)

입력 받은 값은 문자열(string) 형태로 저장됨

age = input('몇 살인가요? ')    # 몇 살인가요? 20
type(age)                       # <class 'str'>
age + 1
age + '1'

eval(express) 함수를 사용하여 정수, 실수 형태로 입력 받을 수 있음

age = eval(input('몇 살인가요? '))    # 몇 살인가요? 20
type(age)                             # <class 'int'>

int(value, [base]) 함수를 사용하여 정수 형태로 입력 받을 수 있음

  • base : 진법을 나타내며 2, 8, 10, 16 사용 가능 (Default: 10)
age = int(input('몇 살인가요?'))      # 몇 살인가요? 20

age = input('몇 살인가요?')
age = int(age)

print(age)                                   # 20
type(age)

age + 1

age = int(input('몇 살인가요?'), 16)  # 몇 살인가요? 20,  # 16진수로 입력
age                                   # 32 # 16진수 20 == 10진수 32

동시 입력

input().split([sep])

default(공백)으로 구분된 여러 입력 값 저장

a, b = input('좋아하는 것 두 가지를 입력하세요: ').split()   # 좋아하는 것 두 가지를 입력하세요: 고양이 100000000
print('{}와 {}을 좋아합니다.' .format(a, b))                 # 고양이와 100000000을 좋아합니다.
구분자(콤마)로 구분된 여러 입력 값 저장
a, b = input('좋아하는 것 두 가지를 입력하세요: ').split(',')  # 좋아하는 것 두 가지를 입력하세요: 고양이, 100000000
print('{}와 {}을 좋아합니다.' .format(a, b))                   # 고양이와  100000000을 좋아합니다.

0개의 댓글