코딩테스트를 파이썬으로 준비해보려고 오랜만에 파이썬을 만지작만지작 해보는데 걸리는게 많다...

책이나 프로그래머스 문제를 파이썬으로 풀면서 막히던 문법을 차례로 정리할 예정!

 

가장 기본적이었던 것.. 입력

 

입력의 기본

# 숫자 입력받기

파이썬에서 데이터를 입력받는 방법 : input( )

정수형 데이터로 처리하기 위해서는 앞에 int( ) 함수를 사용

n = int(input())

 

# 공백을 기준으로 구분하여 변수에 각각 정수형으로 저장하기 

map( )함수를 사용하여 각각 매핑하기라고 생각하면 됨

split( )를 이용하여 공백으로 구분하고 int를 앞에 적음으로써 정수형으로 저장

n,m,k = map(int,input().split())

 

# 여러개의 숫자를 입력받아 공백으로 구분하여 리스트 형태로 저장하기 ★★

input( )으로 입력받은 문자열을 공백으로 구분하기 위해서 split( )함수를 사용

공백으로 나눈 리스트로 바꾼 뒤에(list( )함수 사용) map( )을 이용하여 리스트의 모든 원소에 int( )함수를 적용

입력 받은 문자열을 공백으로 구분하여 각각 숫자 자료형으로 저장할 수 있도록 한다.

data = list(map(int, input().split()))

더 빠른 입력!

input( ) 대신 sys 라이브러리에 정의되어 있는 sys.stdin.readline( )함수 사용

sys.stdin.readline( )함수를 통해 sys 라이브러리를 사용할 때는 한 줄 입력 받음

readline( )을 입력하면 Enter를 치면 줄 바꿈 기호로 입력이 되는데, 이를 제거하기 위해 rstrip( )를 사용

 

import sys
data = sys.stdin.readline().rstrip()

 

출력의 기본

출력할 때, 단순히 print()만 쓰면 됨

print( )쓰면 출력되면서 줄바꿈이 자동으로 수행됨

a = 1
print(a)

 

"TypeError : can only concatenate str (not "int") to str"

자바에서 처럼 + 연산자를 이용하여 문자열과 수를 더하려고 하면 오류가 발생!

 

해결 방안

1) str( )함수 이용 : 출력하고자 하는 변수 데이터를 문자열로 변경

2) 콤마(,) 이용 : 각 자료형을 콤마를 기준으로 구분하여 출력

3) f-string 이용 : 문자열 앞에 접두사 f를 붙임으로써 중괄호 안에 변수를 넣으면 됨

answer = 7

#해결방안 1
print("정답은 "+str(answer)+"입니다")

#해결방안 2
print("정답은",str(answer),"입니다")

#해결방안 3
print(f"정답은 {answer}입니다")

→ 참고로 해결방안 1의 경우, 두 문자열 사이에 공백을 넣기 위해서는 직접 코드에 넣어야 하지만, 해결방안 2의 경우에는 넣지 않아도 공백이 자동 입력 된다

 

 

+ Recent posts