JUNGOL
code_blocks 코드 보기
jungol.co.kr

1) 연산자
'//'로 몫을 구하거나 '%'로 나머지를 구하는 등 수의 연산을 할 수 있습니다.
input을 받을 때는 반드시 정수형이나 실수형으로 바꾸어주어야 합니다.
a=int(input("수를 입력하시오. "))
b=int(input("수를 입력하시오. "))
print(a,'+',b,'=',a+b)
print(a,'-',b,'=',a-b)
print(a,'*',b,'=',a*b)
print(a,'//',b,'=',a//b)
print(a,'%',b,'=',a%b)
print(a,'**',b,'=',a**b)
'''입력
수를 입력하시오. 5
수를 입력하시오. 2
'''
"""출력
5 + 2 = 7
5 - 2 = 3
5 * 2 = 10
5 // 2 = 2
5 % 2 = 1
5 ** 2 = 25
"""
2) 삼항 연산자
print(참값 if 조건 else 거짓값)
print(참값) if 조건 else print(거짓값)
a = int(input())
b= int(input())
c= int(input())
print('True' if a==b else 'False','True' if b==c else 'False',
'True' if a!=b else 'False','True' if b!=c else 'False')
'''입력
10
20
20
'''
"""출력
False True True False
"""
참값으로 변수할당을 할 수도 있습니다.
# 년도와 월을 입력받아 월을 마지막 날짜 구하기
while True:
year = int(input('년도을 입력하시오(0은 종료)'))
if not year:
break
month = int(input('월을 입력하시오(0은종료)'))
if not month:
break
last_day = (29 if year % 400 == 0 or year % 4 == 0 and year % 100 else 28) \
if (month==2) else (30 if month%2 else 31) \
if (month>=8) else (31 if month%2 else 30)
print('{0}년 {1}월의 마지막 날짜는 {2}일 입니다.'.format(year,month,last_day))
삼항연산자도 중첩이 가능합니다.
# arr[index] 이 2의 배수인지, 3의 배수인지 아니면 다른 수의 배수인지
arr = [15, 16, 17]
# 일반적인 if ~ elif ~ else
print("1. 일반")
for val in arr:
if val % 2 == 0:
print(f"{val}은 2의 배수")
elif val % 3 == 0:
print(f"{val}은 3의 배수")
else:
print(f"{val}은 2, 3 배수 둘다 아님")
# 삼항 연산자 if ~ elif ~ else 표현
print("\n2. 삼항")
for val in arr:
print(f"{val}은 2의 배수") if val % 2 == 0 else print(f"{val}은 3의 배수")if val % 3 == 0 else print(f"{val}은 2, 3배수 둘다 아님")
출처: https://blockdmask.tistory.com/551 [개발자 지망생:티스토리]
3) 비교연산자
많은 사람들이 if문의 조건에는 할당기호 '='가 아닌 비교 연산자 '=='가 들어가는 것을 놓치는 실수를 많이 합니다. 비교연산자는 boolean값을 return하기 때문에 조건문에서 사용됩니다.
a=int(input())
b=int(input())
print(a,'>',b,'---', a>b)
print(a,'<',b,'---', a<b)
print(a,'>=',b,'---', a>=b)
print(a,'<=',b,'---', a<=b)
4) 논리 연산자
조건 연산을 할때 논리 연산자를 사용합니다.
a =True
b= True
c= False
print(not a)
print(a and b)
print(a or b)
print(a and (b or c))
print(a or (b and c))
print(not a or (b and not c))
"""출력
a =True
b= True
c= False
print(not a)
print(a and b)
print(a or b)
print(a and (b or c))
print(a or (b and c))
print(not a or (b and not c))
"""
5) 비트 연산자
c++에서는 &&를 논리 연산을 하는 데도 사용했지만 파이썬에서는 &같은 비트 연산자를 논리 연산에서 사용할 수 없습니다. 조건문에서 비트 연산자를 쓰게 되면 오류가 납니다.
연산자 | 기능 | 문법 | 설명 |
& | 비트 AND | a & b | a와 b의 비트를 AND 연산 |
| | 비트 OR | a | b | a와 b의 비트를 OR 연산 |
^ | 비트 XOR | a ^ b | a와 b의 비트를 XOR 연산(배타적 OR, Exclusive OR) |
~ | 비트 NOT | ~x | x의 비트를 뒤집음 |
<< | 비트 왼쪽 시프트 | a << b | a의 비트를 b번 왼쪽으로 이동시킴 |
>> | 비트 오른쪽 시프트 | a >> b | a의 비트를 b번 오른쪽으로 이동시킴 |
&= | 비트 AND 연산 후 할당 | a &= b | a와 b의 비트를 AND 연산한 후 결과를 a에 할당 |
|= | 비트 OR 연산 후 할당 | a |= b | a와 b의 비트를 OR 연산한 후 결과를 a에 할당 |
^= | 비트 XOR 연산 후 할당 | a ^= b | a와 b의 비트를 XOR 연산한 후 결과를 a에 할당 |
<<= | 비트 왼쪽 시프트 후 할당 | a <<= b | a의 비트를 b번 왼쪽으로 이동시킨 후 결과를 a에 할당 |
>>= | 비트 오른쪽 시프트 후 할당 | a >>= b | a의 비트를 b번 오른쪽으로 이동시킨 후 결과를 a에 할당 |
출처 : https://dojang.io/mod/page/view.php?id=2460
6) 연산자 우선 순위
- 지수 연산자 (**)
- 단항 플러스와 마이너스 (+x, -x)
- 곱셈, 나눗셈, 몫, 나머지 (*, /, //, %)
- 덧셈, 뺄셈 (+, -)
- 비트 시프트 (>>, <<)
- 비트 AND (&)
- 비트 XOR (^)
- 비트 OR (|)
- 비교 연산자 (<, <=, >, >=, ==, !=)
- 논리 NOT (not)
- 논리 AND (and)
- 논리 OR (or)
- 조건식 (삼항 연산자) (x if c else y)
- 할당 (=, +=, -=, *=, /=, //=, %=, **=, &=, |=, ^=, >>=, <<=)
- 식별자 (is, is not)
- 멤버십 테스트 (in, not in)
- 논리 연산자 (and, or)
- Lambda 표현식 (lambda)
a=int(input())
b=int(input())
c=int(input())
print((a>b) & (a>c),a==b &a==c)
'''입력
10
9
9
'''
"""
True False
"""
'프로그래밍 언어 > python' 카테고리의 다른 글
24.02.17 정올 파이썬 선택 제어문 (1) | 2024.02.18 |
---|---|
24.02.16 정올 파이썬 리스트 (1) | 2024.02.17 |
240211. 정올 파이썬 문자열 문제 (0) | 2024.02.11 |
240206. 정올 파이썬 입출력 문제 (0) | 2024.02.07 |
파이썬 공부 시작[목표: cospro2급] [기간:24.02.05~24.03.01] (1) | 2024.02.06 |