PYTHON

[python]연산자(산술,지수,관계(비교), 대입(복합), 논리, 멤버, 삼항 연산자)

자굴이 2024. 2. 2. 00:09

2024.02.01.목 학습진도

 

  • 산술연산자 : +, -, *, /, //, %
  • 지수 연산자 : **
  • 관계(비교) 연산자 : >, >=, <, <=. ==, !=
  • 대입(복합)연산자 : =, +=, -=, *=, /=, //=, %=, **=
  • (누적할 때 사용)
  • 논리 연산자 : and, or, not
  • 멤버 연산자 : in, not in
  • 삼항 연산자 : a if 조건식 else b

1) 산술연산자

기호 이름 예시 결과
+ 더하기 7+4 11
- 빼기 7-4 3
* 곱하기 7*4 28
/ 나누기 7/4 1.75
// 나누기(몫) 7//4 1
% 나머지 7%4 3

 

나누기 기호(/,//,%)

# python 나누기 기호
num1 = 10
num2 = 7

print(f"나누기 : {num1/num2}") #출력 :나누기 : 1.4285714285714286
print(f"몫 : {num1//num2}")#출력 :몫 : 1
print(f"나머지:{num1%num2}")#출력 :머지:3

 

 

1-1) 문자열 더하기

# 문자열 더하기
str1 = "안녕"
str2 = "하세요😊"

str1 + str2 #출력:'안녕하세요😊'

⇒문자열끼리 더하면 단순하게 이어 붙여짐!

1-2) 문자열 곱하기

# 문자열 곱하기 ->해당 횟수만큼 반복해서 이어붙임!
str1 * 30 #출력:'안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕'

⇒파이썬은 문자열 곱셈 가능!

1-3) 형변환 (숫자 + 문자열)

str1 = "10"
str2 = "7"
str1 + str2 #출력 : '107'(문자열 타입!)
str1 = 10
str2 = 7
str1 + str2 #출력 : 17(숫자형!)

숫자+문자열 ⇒에러

# 숫자와 문자열 더하기(강제 형변환 가능!)

num1 = 10
str2 = "7"
num1 + str2 #출력 : 에러

=> 파이썬에서 동적자료형.

자료형 지정하지 않을 뿐, 컴퓨터에서 자료형 정하고 있음. int와 String 사이에서 계산불가!

⇒해결방법 : 강제형변환!

# 숫자와 문자열 더하기(강제 형변환 가능!)

num1 = 10
str2 = "7"

str(num1) + str2 #출력 : '107' #문자열
num1 + int(str2) #출력 : 17 #숫자

 

 


input() 함수

cf. java에서 값을 입력받는 객체 ⇒ Scanner

⇒파이썬에도 비슷한 내장함수 존재 ⇒input() 함수

# input() 함수
# input("안내문구 >>")

#1. input() 기본 변환값은 문자형(str)이다!
#2. input()에서 나온 반환값을 연산하기 위해서는 형변환이 필요하다!
#3. input()는 실행을 완료시켜야지만 다음 코드 진행 가능!
s = input("입력해주세요>>")
s

 

input() 함수

cf. java에서 값을 입력받는 객체 ⇒ Scanner

⇒파이썬에도 비슷한 내장함수 존재 ⇒input() 함수

# input() 함수
# input("안내문구 >>")

#1. input() 기본 변환값은 문자형(str)이다!
#2. input()에서 나온 반환값을 연산하기 위해서는 형변환이 필요하다!
#3. input()는 실행을 완료시켜야지만 다음 코드 진행 가능!
s = input("입력해주세요>>")
s

실행하면 입력됨

출력결과 존재

input 함수는 문자열 반환

⇒받아서 쓸 수 있음!(변수선언)

 

#3. 실행중(무한루프) == 런타임중!

in[*], 오른쪽 위 동그라미 검정색


산술연산자 & input() 실습 문제

# num1 과 num2를 키보드로 입력받아서 결과를 계산하시오!!

### 쌤 풀이
num1 = int(input("정수를 입력하세요>>"))
num2 = int(input("정수를 입력하세요>>"))

print(f"더하기 결과 : {num1 + num2} ")
print(f"빼기 결과 : {num1- num2} ")
print(f"곱하기 결과 : {num1 * num2} ")
print(f"나누기 결과 : {num1 / num2} ")
print(f"몫 결과 : {num1 // num2}")
print(f"나머지 결과 : {num1 % num2} ")
print(f"제곱 결과 : {num1 ** num2} ")

 

: 문자열에 +, * 은 쓰여도 - 기호 지원 안된다!

 

 


2) 관계연산자(>, >=, <, <=. ==, !=)

# 관계 연산자
num1 >= num2 #True #7>3

※ boolean 값 앞글자가 대문자!!!

(cf. java는 모두 소문자 - true, false)

⇒주로 조건문이나 반복문에서 활용됨!


3) 복합연산자 (=, +=, -=, *=, /=, //=, %=, **=)

a = 1
# 복합연산자
# 값을 누적시키기 위해 사용!(자:가장 우선시 되는 목적)
# 코드를 줄이기 위해 사용!(자:줄이면 가독성 올라감!)

a = a + 1
a += 1
a # 출력 : 3(실행할때마다 누적)

셀 바깥에 변수 선언하면 누적됨!!!

 

4) 논리연산자(and, or, not)

#논리연산자
# and, or, not
True and False #False
True and True # True
True or False  # True
not False #True
  • 관계연산자(>,<…) 결과는 True 또는 False
  • →논리연산자로 관계(비교)연산자 여러 개 사용 가능
num1 > num2 and num1 >= num2 #True #7>3 and 7>=3

 

 

5) 멤버 연산자(in, not in)

in

#멤버연산자
# 1,2,3,4 중에 4가 들어있니?
4 in[1,2,3,4] #출력 : True

not in

#멤버연산자
# 1,2,3,4 중에 4가 포함되어 있지 않니?
4 not in[1,2,3,4] #출력 : False #

 

6) 삼항연산자

a if 조건식(자:관계연산자, 비교연산자) else b
  • 조건식이 True인 경우 a(False인 경우 b)
  • 이진분류 : 두 개 중 하나로 분류!

ex.

score = 60
"합격" if score >= 60 else "불합격" #출력 : '합격'

 

ex.

# 키보드로 정수를 입력 받아 홀수인지 짝수인지 판별하라!
num = int(input("정수 입력 >> "))
print(f"{num}는(은) 짝수입니다.") if num % 2 == 0 else print(f"{num}는(은) 홀수입니다.")

 

 

에러이유?

삼항연산자는 변수 선언 불가!