주말마다 파이썬 학습을 하기로 마음을 먹었다.
바로 다음 포스팅에 그 이유? 정도를 적을 생각이지만, 결론만 먼저 언급하자면 당분간 평일엔 42서울에서 제공하는 본과정의 학습에 집중할 것이고 주말에는 파이썬 학습을 진행해보려고 한다.
해당 학습은, 우선적으로 백준의 코딩 테스트
단계별 학습을 기초로 하고 있으며, 해당 내용 속에서 필요한 부분들 만을 추가로 정리해둘 것이다.
1. Hello World!
print('Hello World!')
너무나 다들 잘 아는 내용일 것이다. 자꾸 printf라 적는다...
2. two times print
for we_love_kriii in range(0, 2)
print("강한친구 대한육군")
사실 해당 for 문은 좀더 뒤에 써야 맞겠지만... 전에 학습한 걸 써보았다.
3. 고양이 / 개
print ("\\ /\\\n ) ( ')\n( / )\n \\(__)|")
#고양이 모습이 나온다.
print("|\\_/|")
print("|q p| /}")
print("( 0 )\"\"\"\\")
print("|\"^\"` |")
print("||_/=\\\\__|")
#개의 모습이 나온다.
고양이는 한 줄로 표현하였고, 강아지는 여러줄로 표현했다. 해당의 기능을 사용시 아래와 같은 모양이 출력된다.
\ /\ |\_/|
) ( ') |q p| /}
( / ) ( 0 )"""\
\ (__)| |"^"` |
||_/=\\__|
해당 내용의 핵심은 코드의 연산자 또는 문법적 요소 사용되는 "
\
를 어떻게 단순 문자로 출력하는지를 아는가? 묻는 문제이다.
해결방법은 간단하다. 사용하려는 문자 앞에 \
를 입력하면 되고, 그렇기에 출력하는 모양을 먼저 입력후 \
가 필요한 곳에 다 때려 밖으면 된다.
4. 사칙연산
긴 말없이 바로 코드부터 보여주면...
a, b = map(int, input().split())
#설명할 부분
print(a+b)
#덧셈
a, b, c = input().split()
a = int(a) #설명할 부분
b = int(b)
c = int(c)
print(a + b + c)
a, b = map(int, input().split())
print(a / b)
a, b = map(int, input().split())
print(a + b)
print(a - b)
print(a * b)
print(a // b)
print(a % b)
# multiplication
a = input()
b = input()
# 문제에서 자리수를 맞추지 않고 출력하는 걸 요구했으므로, 최종 연산시에만 자리수에 맞춰서 합을 구한다.
ans3 = int(a) * int(b[2])
ans4 = int(a) * int(b[1])
ans5 = int(a) * int(b[0])
ans6 = ans3 + (ans4 * 10) + (ans5 * 100)
함수 설명
print(): 출력함수. python에선 c의 printf
이상의 능력을 보여준다. 내부에서 계산이 되고, 계산도 단순히 정수나 실수 정도가 아니라 문자들도 +
-
계산이 되는 등 여하튼 볼 수록 신기한 놈이다.
map(): 해당 함수는 이해는 했지만, 아마 첫 python 입문시 이해가 쉽지 않을 만한 녀석이다.
prototype: map(func, *iterables) --> map object
용도: list, dict, set, str...과 같은 iterable type의 변수들에 순차적으로 함수를 적용시킨다.
해당 기능이 용의한 이유는 바로, a, b = map(int, func...)
의 형태로 할 경우, 변수에 들어가는 값이 int형으로 자동 형변환을 시켜준다는 데 있다.
input(): C 의 scanf
와 동일한 기능을 하는, 키보드 입력을 받는 함수다. 받은 데이터는 문자열로 입력받는다.
( )
안에는 값을 입력시 함수 실행 시 디폴트로 뜰 문장을 보여준다.
이러한 특성은 향후에 자기가 입력을 받고 연산하는 함수나 프로그램 작성 시 매우 주의를 해야하는 부분 중 하나이다.
.split(): 함수 input의 옵션이다. 입력시 구분자(기본값은 공백)를 기준으로 값을 쭉 일렬로 입력 시 스스로 구분하여 값으로 변수에 입력시킨다. ( )
안에 넣는 값으로 입력값을 구분한다.
int(): 형변환 방법. 정수 변환을 원할 때 ( )
안에 원하는 변수를 넣으면 된다.
정리하면...
파이썬의 사칙연산이나 변수를 입력 받는 면에서 어려움은 없다. C의 그것과 유사하면서도 훨씬 많이 생략된 것들 덕에 오히려 너무 허전하단 생각이 들정도(...) 그래도 기본적으로 '편의성'의 대폭 강화가 되었다는 느낌이 들긴한다.
한 가지 문제를 풀면서 알게 된 것인데, 실제 구동시 몇초가 걸리는지를 알려주는 백준 코테에서 변수 지정
-> print
를 하는 경우와 print
함수 내에서 한 방에 계산하는 것 사이의 큰 차이는 없는 것으로 보여졌다.
물론, 좀더 큰 함수들을 돌려봐야 아는거라지만, 조금이라도 차이가 날 거라 생각했었는데, 나지 않는 걸 보니 print함수 내부에서 동일한 절차가 걸리고 단순 지정 변수 출력시 그 과정이 생략되다보니 +- = 0이 된 것 같단 생각이 들었다.