1) for문과 if문을 한번에
mylist = [3, 2, 6, 7]
answer = [num**2 for num in mylist if num % 2 == 0]
2) flag 대신 for-else 사용
import math
if __name__ == '__main__':
numbers = [int(input()) for _ in range(5)]
multiplied = 1
for num in numbers:
multiplied *= num
if math.sqrt(multiplied) == int(math.sqrt(multiplied)):
print('found')
break
else:
print('not found')
3) 두 변수의 값 바꾸기 - swap
a = 3
b = 'abc'
a, b = b, a # 참 쉽죠?
4) 이진 탐색하기 - binary search
import bisect
mylist = [1, 2, 3, 7, 9, 11, 33]
print(bisect.bisect(mylist, 3))
5) 클래스 인스턴스 출력하기 - class의 자동 string casting
파이썬에서는 str 메소드를 사용해 class 내부에서 출력 format을 지정할 수 있습니다.
class Coord(object):
def __init__ (self, x, y):
self.x, self.y = x, y
def __str__ (self):
return '({}, {})'.format(self.x, self.y)
point = Coord(1, 2)
6) 가장 큰 수, inf
코테를 풀다보면, 최솟값을 저장하는 변수에 아주 큰 값을 할당해야 할 때가 있다.
이때 사용하기 좋은 것이 inf다.
min_val = float('inf')
min_val > 10000000000
inf에는 음수 기호를 붙이는 것도 가능하다.
max_val = float('-inf')
7) 파일 입출력 간단하게 하기.
with open('myfile.txt') as file:
for line in file.readlines():
print(line.strip().split('\t'))