박봉달의 개발생활

[CodeUp] Python 기본 100제 문제풀이와 궁금점 / 해답 #2 본문

IT/Python

[CodeUp] Python 기본 100제 문제풀이와 궁금점 / 해답 #2

박봉달 2021. 3. 19. 11:51
728x90

본 글은 필자의 개발 공부를 위해 적는 포스트임을 알립니다.

어느 날부터 웹개발에 눈을 뜨고 흥미를 가지기 시작하다가, 정신을 차려보니 강의를 결제하고 공부하고 있는 내 자신을 발견했다. 하면 할수록 쉽지 않고 이해력을 많이 필요로 하는 프로그래밍. 다행히 고등학교 시절 HTML을 간단하게 만져본 기억이 있어서 어느 정도 친숙하긴 하다.

파이썬은 요즘 프로그래밍 시장에 있어서 가장 많이 쓰이는 프로그래밍 언어 중 하나라고 생각한다. AI를 이용하는 프로그램들도 파이썬으로 쓰여지는 경우가 많다.

필자 개인을 위한 정리이기 때문에 틀린 부분이 있다면 알려주시고, 현역으로 뛰고 계신 분들이 계시다면 팁도 부탁드립니다! (공부하는 입장으로서 저도 모르는 부분이 있기에 질문은 최소한으로 해주시면 감사하겠습니다)


1. split() 함수와, print 함수에서 sep 사용하기

파이썬을 제대로 배워보려고 CodeUp 코드업 기초 100제를 풀어보고 있다.

print 함수에도 여러 옵션이 있다는 것을 새삼 알게된다.

이번에는 print 에서 sep 옵션을 사용하여 문제를 풀어보려고 한다.

a, b = input().split()

여기서 split() 함수가 나오게 된다.

이 함수는 변수 등 데이터를 괄호 안의 기준 문자로 나누어주는 함수이다.

현재는 괄호 안에 () 공백이기 때문에 공백으로 구분하여 나누어준다.

위와 같이 되어있는 것은 두 데이터를 입력 받을 것이며,

공백을 기준으로 a와 b에 값을 저장할 것이라는 뜻이다.

여기서 유의해야할 점은 받은 변수를 (:) 콜론을 사용하여 구분된 형태로 출력해야한다는 것이다.

여기서 print() 의 sep 옵션이 사용된다.

seperate의 줄임말로 생각되며, 변수가 여러개 출력되어야할 때,

변수 사이에 구분문자를 넣어주는 것이다.

a, b = input().split(':')
print(a, b, sep=':')

여기서 궁금한점!

split 을 사용할 때 단순히 2개만 분리가 되는걸까?

실험해보니 아니었다.

변수를 몇개를 지정하고, 입력값을 무엇에 따라 split하냐에 따라

나누는 값에 따라서 변수에 모두 저장이 되는 것을 확인했다!

https://wikidocs.net/13#split

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

//코드
a, b, c = input().split()
print(a)
print(b)
print(c)

//결과
>>> 11 12 13
11
12
13

2. 문자열 인덱싱 & 슬라이싱

이번에는 문자열을 입력으로 받은 후에, 그 문자열을 슬라이싱과 인덱싱하는 법을 알아보겠다!

문자열의 기본적인 개념은 각 데이터 타입에 맞는 메모리 공간이 연달아 있는 것이라 생각하면 된다.

그렇기에 apple 이 입력으로 들어갔다고 한다면,

0번째 인덱스는 바로 a 가 되는 것이다

(컴퓨터에서 순서를 셀 때는 0부터 시작한다)

슬라이싱을 할 때는 대괄호 [] 사이에 인덱스를 입력하여 위치를 지시하면 된다.

s[a:b] 라고 하면, s라는 단어에서 a번째 문자부터 b-1번째 문자까지 잘라낸 부분을 의미한다.

그래서 [a : ] 라고 입력하면 a번째 문자부터 끝문자까지

[ : b] 라고 입력하면 처음부터 b-1번째 문짜까지를 출력하게 된다.

이 문제에서 유의해서 봐야할 점은 공백으로 구분해 한줄로 출력하는 것이다.

그렇기에 print() 함수 한줄 안에 모두 구현을 해야한다.

s = input()
print(s[0:2], s[2:4], s[4:6])

이렇게 하여 함수를 사용했다.

+ 를 사용할 수도 있었지만, 그렇게 하면 변수 사이에 공백이 없기 때문에

공백 문자를 넣어줘야하는 번거로움이 생긴다!


3. print 함수에서 end 사용하기

이번에는 단어 2개를 입력 받아서, 그 문자들 사이에 공백을 없애 한 단어로 연결시키는 문제이다.

공백문자가 있다는 것은 문장이라는 의미이며, 공백문자를 없애서 하나의 단어로 만들어야한다.

여기서 print 함수의 end를 사용해보고자 한다.

입력이 공백으로 구분되기에 공백을 기준으로 split() 해주어

두 개의 변수에 입력해준다.

그리고는 그 변수를 붙여 출력하는 것인데 사실 여기서는 + 를 사용해도 되긴 한다.

w1, w2 = input().split()
print(w1 + w2)

하지만 여러 방법으로 생각하는 것이 프로그래머의 소양이라 생각하며,

end를 사용하여 문제를 해결해보고자 한다.

end를 입력하게 되면, 그 뒤의 출력값과 이어서 출력된다.

end = ''라고 하면 HelloWorld로 바로 이어서 출력되고,

end = 'and' 라고 한다면

HelloandWorld 라고 출력되어진다.

w1, w2 = input().split()
print(w1, end='')
print(w2)

오늘은 코드업 파이썬 기초 100제 중

출력문을 풀어보면서 특이점과 궁금점을 정리해보았다.

정리한 내용이 도움이 되길 바라며 마친다!

728x90
반응형

'IT > Python' 카테고리의 다른 글

[CodeUp] Python 기본 100제 문제풀이와 궁금점 / 해답 #1  (0) 2021.03.19