[Python] Input/Output

70_0ewd ㅣ 2024. 11. 7. 22:50

데이터 입력

파이썬은 데이터를 입력받을때 Input() 함수를 사용하는데 해당 함수는 기본적으로 데이터를 문자열로 입력받는다. 

a = input() 	# hello 입력
print(a) 	# hello 출력

a = input() 	# 123 입력
print() 	# 123 출력

 

값을 원하는 형태의 자료형으로 입력받고 싶을 땐 다음과 같이 원하는 자료형을 앞에다 붙여주면 된다.

a = int(input())
b = int(input(),8) 	# 8진수를 입력받는 형태.
c = int(input(),2) 	# 2진수를 입력받는 형태. 1010을 입력하면 십진수인 10이 할당됨

l = list(input()) 	# abcde 입력
print(l) 	# ['a','b','c','d','e'] 출력

 

단일 값이 아닌 여러 값을 입력 받고 싶을 땐 split(), map() 함수를 적절히 써주면 된다. split()은 특정 문자를 기준으로 하여 문자열을 잘라주는 함수이고, map()은 여러 요소에 함수를 적용시켜 반환해주는 함수이다. map(적용하고자 하는 함수, 적용할 요소) 처럼 사용 가능하다.

# 입력값 => 1 2 3 4 5 

a = input().split() 	
print(a) 	
# ['1','2','3','4','5']

b = map(int, input().split())
print(b) 	
# map은 list와는 달리 직접 값을 보유하지 않는다. 
# 값을 보기 위해선 리스트나 튜플로 변환하거나 각각 하나씩 값을 할당해주어야 한다. 
# 변환 전에는 메모리 위치를 나타내주는 값을 출력한다.

q,w,e,r,t = map(int, input().split())
print(q,w,e,r,t)
# 1 2 3 4 5

c = list(map(int, input().split()))
print(c) 	
#[1,2,3,4,5]

데이터 출력

데이터 출력은 print() 함수를 통해 주로 이루어진다. 만일 공백이 아닌 값으로 구분을 원한다면 seq를 사용해주면 된다.

print(a,b,c)
# a b c

a,b,c = 1,2,3
print(a,b,c)
# 1 2 3

print(1,2,3, seq = ',')
# 1,2,3

print(1,2,3, seq = '')
# 123

list = [1,2,3,4,5]
print(list)
# [1,2,3,4,5]

print(*list)
# 1 2 3 4 5

print()함수는 자동으로 줄바꿈이 적용되는데 이 역시도 end 옵션을 통해 조절 가능하다.

print(1,2,3, end=' ')
print(4,5,6)
# 1 2 3 4 5 6

print(1,2,3, end=',')
print(4,5,6)
# 1 2 3,4 5 6

 

변수값을 출력하고 싶으면 포맷팅을 통해 출력하면 된다.

pl = "python"

print("hello ",python)

print("hello %s" %(pl))

print("hello {}".format(pl))

print(f"hello {pl}") 	# python 3.6 이후부터 가능

# 모두 hello python 을 출력