본문 바로가기

파이썬

++, --, +=,-=,*= 그리고 a,b = b,a (swap)

별 것 아닌데 처음 다른 사람의 코드를 보고 이해가 가지 않아 끙끙 거렸던 것들을 왕초보의 눈으로 정리해보았다.

1. 파이썬에는 ++, -- (증감연산자)가 없다.

C언어 등에는 i++; ++i;  i--; --i 와 같은 연산자를 사용하는데 파이썬에는 존재하지 않는다.

2. 파이썬에는 +=,-=,*=,/= 등 (할당연산자)가 존재한다.

반복문 등을 사용할 때 아래와 같은 식을 자주 사용하는데, 할당연산자를 이용하면 좀 더 간결하게 이를 표현할 수 있다.

a = a+1 a +=1
a = a-1 a -= 1
a = a*5 a *= 5
a = a/5 a /= 5
a = a%5 a %= 5

 

3. 파이썬에서는 a,b = b,a 로 변수의 자리를 바꿔줄 수 있다.(Swap)

다른 언어에서는 임시변수(temp)를 사용하여 변수의 자리를 바꿔주는데, 파이썬은 이를 간단하게 한줄로 표현할 수 있다.

변수의 자리를 바꿔주는 기능은 잘 이해하면 유용하게 사용할 수 있다.

다음은 gcd(최대공약수)를 구하는 알고리즘인데, Swap을 통해 작성했다.

def gcd(a, b):
    if a < b: a, b = b, a
    while b: a, b = b, a % b
    return a

최대공약수를 구하는 알고리즘으로 유클리드 호제법을 활용하였다.

- 유클리드 호제법 : a와 b의 최대공약수는 그 둘의 나머지와 b의 최대공약수와 같다

  • a < b면 a와 b의 자리를 바꾸고
  • a에 b를 넣고 b에 a%b(나머지)를  계속해서 집어넣어 최대공약수를 구하는 알고리즘이다.

'파이썬' 카테고리의 다른 글

진법변환(feat. 파이썬 자료구조와 알고리즘)  (0) 2022.08.17
복소수  (0) 2022.08.17
파이썬 클래스  (0) 2022.08.06
파이썬 정규표현식  (0) 2022.08.06
파이썬 print 함수 응용(sep, end,\n,f-string)  (0) 2022.07.27