파이썬 공부중/파이썬 기초

파이썬 기초 정리 02

책다니엘 2024. 2. 4. 03:17

1. 연산자의 종류는 다음과 같다.

더보기
  • 산술 연산자: +, -, *, /, %, //, **
  • 할당 연산자: =, +=, -=, *=, /=, %=, //=
  • 비교 연산자: >, >=, <, <=, ==, !=
  • 논리 연산자: and, or, not  ** java와 js에서 ||나 &&를 썼던 것과 차이가 있음!

2. 나눗셈의 결과는 항상 float타입이다.

 

3. 일반적으로 나눗셈은 /, 나머지는 %, 몫은 // 등의 연산자로 구한다. 그런데 몫과 나머지를 한꺼번에 구하는 함수도 있다. divmod()이다. 이는 다음과 같은 형태로 사용한다.

num1 = 27
num2 = 7
result = divmod(num1, num2)
print(f'제수는 {num1}, 피제수는 {num2}, 몫은 {result[0]}, 나머지는 {result[1]}')

# 제수는 27, 피제수는 7, 몫은 3, 나머지는 6

 

4. **는 거듭제곱 연산자이다. 2의 3승은 2**3과 같은 형태로 표현된다.

* 나는 지금까지 js에서 Math.pow(2,3)과 같은 형태만 있는 줄 알았는데, ES6부터 js도 **가 사용가능하다고 한다. 지금까지의 나는 너무 복잡하게 코드를 사용했던 것이다...

 

5. 거듭제곱 연산자를 활용하여 제곱근 또한 구할 수 있다. 예를들어 루트 2를 구하려 한다면 2**1/2로 표현하면 된다.

 

6. javascript의 Math.pow()나 Math.sqrt()처럼 파이썬에서도 사용할 수 있다. math.pow(), math.sqrt()로 사용한다. import math를 해야 한다.

* math.sqrt는 2제곱근만 구해준다. 그냥 **를 쓰는 게 훨씬 나을듯?

print(f'루트 2는 {math.sqrt(2)}')
print('2의 3제곱은 %d' % math.pow(2,3))

 

7. char의 경우에도 비교연산자를 사용할 수 있는데, 아스키 코드를 비교한다.

8. 특정 문자의 아스키 코드를 구하는 함수는 ord()이고, 숫자를 아스키코드에 대입하여 해당하는 문자를 구하는 함수는 chr()이다.

print(f'\'A\' = {ord('A')}')
print(f'\'a\' = {ord('a')}')

print(f'65를 아스키 코드로 바꾸면 = {chr(65)}')
print(f'97을 아스키 코드로 바꾸면 = {chr(97)}')

# 'A' = 65
# 'a' = 97
# 65를 아스키 코드로 바꾸면 = A
# 97을 아스키 코드로 바꾸면 = a

 

9. 논리연산자는 and, or, not 등이 있다. 

# 백신 접종 대상자는 20세 미만 또는 65세 이상입니다.
age = int(input('나이를 입력하세요: '))
vaccine = (age<20) or (age>=65)

if vaccine == True:
    print('백신 접종 대상자에 해당합니다.')
else:print('백신 접종 대상자에 해당하지 않습니다.')

 

10. 파이썬에서 모듈이란 이전의 선배 프로그래머들이 만들어놓은 '기능', '라이브러리'를 의미한다. 

11. operator 모듈에서도 산술연산자를 사용할 수 있다. operator. ~~~ 로 사용하면 된다.

import operator

num1 = 23
num2 = 8

# 산술연산자 관련 operator
print(f'{num1} + {num2} = {operator.add(num1,num2)}')
print(f'{num1} - {num2} = {operator.sub(num1,num2)}')
print(f'{num1} * {num2} = {operator.mul(num1,num2)}')
print(f'{num1} / {num2} = {operator.truediv(num1,num2)}')
print(f'{num1} // {num2} = {operator.floordiv(num1,num2)}')
print('{} % {} = {}'.format(num1,num2,operator.mod(num1,num2)))
print('{} ** {} = {}'.format(num1,num2,operator.pow(num1,num2)))

# 비교연산자 관련 operator
print('{} == {} : {}'.format(num1,num2,operator.eq(num1,num2)))
print('{} != {} : {}'.format(num1,num2,operator.ne(num1,num2)))
print('{} > {} : {}'.format(num1,num2,operator.gt(num1,num2)))
print('{} >= {}: {}'.format(num1,num2,operator.ge(num1,num2)))
print('{} < {} : {}'.format(num1,num2,operator.lt(num1,num2)))
print('{} <= {} : {}'.format(num1,num2,operator.le(num1,num2)))

# 논리연산자 관련 operator
flag1 = True
flag2 = False
print('{} and {} : {}'.format(num1,num2,operator.and_(flag1,flag2)))
print('{} or {} : {}'.format(num1,num2,operator.or_(flag1,flag2)))
print('not {} : {}'.format(flag1, operator.not_(flag1)))