코딩테스트를 위한 파이썬 문법 (4) (input, sys.stdin.readline, print)
이 포스팅은 이것이 취업을 위한 코딩테스트다 APPENDIX A
코딩테스트를 위한 파이썬 문법 파트
를 읽고 공부한 내용을 정리하는 용도로 작성되었습니다.
APPENDIX A에 수록된 문법 외에 개인적으로 알고리즘 문제를 풀다가 막힌 문법들 또한 추가해두었으며, 예제는 직접 연습하며 작성하였기에 교재랑 다른 부분이 있습니다.
input()
- 한 줄의 문자열을 입력 데이터로 받아온다.
>>> a = list(map(int, input().split()))
>? 7 9 4 1 3 # input 값 입력
>>> a
[7, 9, 4, 1, 3]
- 위의 코드는 알고리즘 문제를 풀면서 거의 2문제당 1문제꼴로 사용했던 코드로 외워두고 사용하면 좋다.
list(map(int, input().split()))
→ input()으로 입력 받은 문자열을
→ split()을 이용하여 띄어쓰기를 기준으로 나눈 리스트로 바꾼뒤,
→ map()을 이용하여 해당 리스트의 모든 원소를 정수로 바꾼 결과를
→ list()를 이용하여 다시 리스트로 변환한다.
sys.stdin.readline()
- python의 input() 함수는 동작 속도가 느리기 때문에
시간 초과
를 피하고 싶다면, sys.stdin.readline() 함수를 사용하는 것이 좋다.sys
는 System-specific parameters and functions의 약자로, python interpreter가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다. - readline()으로 입력하면 엔터가 줄 바꿈 기호로 입력되기 때문에
rstrip()
함수를 통해 공백 문자를 제거해 주어야 한다.
>>> import sys
>>> data = sys.stdin.readline().rstrip()
>? Hello World!
>>> print(data)
Hello World!
print()
,
이용: 각 항목이 띄어쓰기로 구분되어 출력된다.
>>> a = 5
... def func():
... print("a의 값은", a, "입니다.")
... func()
a의 값은 5 입니다.
+
이용: 항목들이 띄어쓰기 없이 연결되어 출력된다.
>>> a = 5
... def func():
... print("a의 값은" + a + "입니다.")
... func()
Traceback (most recent call last):
File "<input>", line 4, in <module>
File "<input>", line 3, in func
TypeError: can only concatenate str (not "int") to str
🌟 그러나 위의 예제에서 확인할 수 있듯이 int와 string을 연결하려고 하면 TypeError
가 발생한다. 이를 해결하기 위해 str()
함수를 이용하여 int를 string으로 바꿔주면 된다.
>>> a = 5
... def func():
... print("a의 값은 " + str(a) + "입니다.")
... func()
a의 값은 5입니다.
f-string
- 문자열 앞에 'f'를 붙여 사용한다.
{}
안에 변수를 넣으면 자료형의 변환 없이도 int와 string을 함께 쓸 수 있다.
>>> a = 5
>>> def func():
... print(f"a의 값은 {a}입니다.")
... func()
a의 값은 5입니다.
예제1) 정렬
left = 'apple'
result = f'|{left:<20}|' # 왼쪽 정렬
mid = 'banana'
result2 = f'|{mid:^20}|' # 가운데 정렬
right = 'strawberry'
result3 = f'|{right:>20}|' # 오른쪽 정렬
print(result)
print(result2)
print(result3)
# result
|apple |
| banana |
| strawberry|
예제2) dictionary
data = dict([('Jane', 25), ('Jisun', 26), ('Tom', 30)])
result = f'Jane\'s age: {data["Jane"]}'
print(result)
# result
Jane's age: 25
예제3) list 순회
names = ['Jane', 'Jisun', 'Jiseob']
i = 0
for x in names:
i += 1
print(f'name{i}: {x}')
# result
name1: Jane
name2: Jisun
name3: Jiseob
이번 포스팅에서는 예제를 직접 만들어 봤는데 도움이 되셨나 모르겠네요😂 이 시리즈가 코딩테스트를 공부하는데 조금이나마 도움이 되셨다면 💚를 눌러주세요😉
Source
- 이것이 취업을 위한 코딩테스트다 with 파이썬
- https://wikidocs.net/33
- https://docs.python.org/3/library/sys.html
- https://dojang.io/mod/page/view.php?id=2326
Author And Source
이 문제에 관하여(코딩테스트를 위한 파이썬 문법 (4) (input, sys.stdin.readline, print)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@janeljs/python-for-coding-test-4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)