덧셈, 뺄셈, 곱셈, 제곱, 나누기, 모듈 등
# Plus
>>> 3 + 5
8
# Minus
>>> 3 - 5
-2
# Multiply
>>> 2 * 3
6
# Power
>>> 3 ** 4
81
# Division
>>> 15 / 3
5.0
>>> 13 // 3
4
>>> 3.5 // 2
1.0
>> 13 % 3
1
# Left Shift --> 0010 --> 1000
>>> 2 << 2
8
# Right Shift --> 1011 --> 0101
>>> 11 >> 1
5
# Bitwise AND
>>> 5 & 3
1
# Bitwise OR
>>> 5 | 3
7
# Bitwise XOR
>>> 5 ^ 3
6
# Bitwise Invert (0101 --> 1010)
>>> ~5
6
==, !=, <, >, <=, >=
x = True
not x # False
sep
argument
,(콤마) 단위로 끊어지는 단어나 변수 사이에 연결고리를 해주는 역할입니다. 따로 선언하지 않으면 기본값으로 띄어쓰기(1 Space)를 제공합니다.
>>> x, y = 5,7
>>> print(x, y, sep = "*")
5*7
>>>print("Hello","World",sep="")
HelloWorld
end
argument
print 함수는 함수를 호출할 때 마다 새로운 line을 사용합니다. 이를 커스텀하기 위해서 end 를 사욯합니다. 즉, end를 통해서 두 print 함수를 연결할 수 있습니다.
>>> print("Hello", end = " ")
>>> print("World")
Hello World
for문에서 인덱스를 얻는 대표적인 방법으로
Enumerate
가 있습니다.enumerate()
내장 함수에 리스트를 넘기면next()
메서드가 index와 value로 이뤄진 튜플을 반환합니다.
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
#[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
따라서 다음과 같이 for
루프를 돌릴 때 enumerate()
를 조합해서 사용하면 인덱스와 값을 동시에 접근할 수 있습니다.
for idx, val in enumerate(seasons):
print(idx, val)
#0 Spring
#1 Summer
#2 Fall
#3 Winter
추가로, enumerate()
내장 함수를 호출할 때 start
파라미터를 사용하면 0이 아닌 다른 시작 번호를 사용할 수 있습니다.
list(enumerate(seasons[1:], start=1))
[(1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
데이터의 개수를 셀 때 유용한 파이썬의
collections
모듈의Counter
클래스 사용법을 알아보겠습니다.
아래의 코드는 어떤 단어가 주어졌을 때 단어에 포함된 각 알파벳의 글자 수를 세어주는 간단한 함수입니다.
def countLetters(word):
counter = {}
for letter in word:
if letter not in counter:
counter[letter] = 1
counter[letter] += 1
return counter
countLetters('hello world'))
# {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}
파이썬에서 제공하는 collections
모듈의 Counter
클래스를 사용하면 위 코드를 단 한 줄로 줄일 수가 있습니다.
from collections import Counter
Counter('hello world')
# Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
def countLetters(word):
counter = {}
for letter in word:
counter.setdefault(letter, 1)
counter[letter] += 1
return counter
from collections import defaultdict
def countLetters(word):
counter = defaultdict(lambda: 0)
for letter in word:
counter[letter] += 1
return counter
from collections import Counter
Counter('hello world').most_common()
# [('l', 3), ('o', 2), ('h', 1), ('e', 1), (' ', 1), ('w', 1), ('r', 1), ('d', 1)]