-
[코드업] 파이썬 기초 100 문제 정리 [4]공부/Python 2023. 3. 7. 17:41
조건 1
입력2개의 정수(a, b)가 공백을 두고 입력된다.
-2147483647 <= a, b <= +2147483648출력a와 b가 다른 경우 True 를, 그렇지 않은 경우 False 를 출력한다.어떤 값을 비교하기 위해 비교/관계(comparison/relational) 연산자(operator)를 사용할 수 있다.a, b = input().split() a = int(a) b = int(b) print(a != b)
조건 2
입력정수 1개가 입력된다.출력입력된 값이 0이면 False, 0이 아니면 True 를 출력한다.a = input() a = int(a) print(bool(a))
bool( ) : 입력된 식이나 값을 "평가"해 (True 또는 False)을 출력
평가(evaluate) : 식이나 값을 계산해서 결과값이 만들어지는 것
python에서 정수값 0은 False(거짓)로 평가되고, 그 외의 값들은 모두 True(참)로 평가된다.조건 3
입력정수 1개가 입력된다.출력입력된 정수의 불 값이 False 이면 True, True 이면 False 를 출력한다.a = bool(int(input())) #위와 같은 형태로 겹쳐 작성하면, 한 번에 한 단계씩 계산/처리/평가된다. print(not a)
어떤 불 값이나 변수에 not True, not False, not a 와 같은 계산이 가능하다.
참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서 not 예약어(reserved word, keyword)를 사용할 수 있다고 한다.
조건 4
입력2개의 정수가 공백을 두고 입력된다.출력둘 다 True 일 경우에만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.a,b = input().split() a = int(a) b = int(b) print(bool(a) and bool(b))
and 예약어는 주어진 두 불 값이 모두 True 일 때에만 True 로 계산하고, 나머지 경우는 False 로 계산한다.
AND 연산자 다른 값을 입력 했을때 True가 나온다면 이 이미지를 보면 이해하는데 도움될거같다.
조건 5
입력2개의 정수가 공백을 두고 입력된다.출력두 값의 True / False 값이 서로 다를 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.a,b = input().split() a = int(a) b = int(b) print(bool(a) or bool(b))
조건 6
입력2개의 정수가 공백을 두고 입력된다.출력두 값의 True / False 값이 서로 다를 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.a,b = input().split() c = bool(int(a)) d = bool(int(b)) print((c and (not d) or (not c) and d))
*not 조건은 A가 거짓이라면 참(True)를 반환하고, A가 참이라면 거짓(False)를 반환한다.
d가 거짓이면 참이기때문에 AND 연산을 할때 C가 거짓이면 두 값이 다르게되어 OR연산을 통해 True를 출력하게된다.
이렇게 사용한 이유는 두 조건이 다른 이라는 조건을 위해서 때문이다.
조건 7
입력2개의 정수가 공백을 두고 입력된다.출력두 값의 True / False 값이 서로 같을 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.a,b = input().split() c = bool(int(a)) d = bool(int(b)) print((not c) and (not d) or (c and d)) #not 연산자 쪽에서는 1 1 = F , 1 0 = F , 0 1 = F , 0 0 = T 여기에 AND 연산을 한번 더 하게 되면 0 0 = F , 0 1 = F, 1 0 = F, 1 1 = T #and 연산자 쪽에서는 1 1 = T , 1 0 = F, 0 1 = F, 0 0 F #최종적으로 OR 연산을 하게되면 F OR T = T , F OR F = F , F OR F = F, T OR F = T
조건 8
입력2개의 정수가 공백을 두고 입력된다.출력두 값의 True / False 값이 모두 False 일 때만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다.a,b = input().split() c = bool(int(a)) d = bool(int(b)) print(not (c or d)) or연산을 부정으로 바꿈
조건 9
입력정수 1개가 입력된다.
-2147483648 ~ +2147483647출력비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력한다. (bitwise not 연산자를 사용)a = input() a = int(a) print(~a)
비트단위(bitwise)연산자는 다음과 같다.
연산자 기능 문법 설명 & 비트 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에 할당 조건 10
입력2개의 정수가 공백을 두고 입력된다.
-2147483648 ~ +2147483647출력두 정수를 비트단위(bitwise)로 and 계산을 수행한 결과를 10진수로 출력한다.a,b= input().split() a = int(a) b = int(b) print(a&b)
'공부 > Python' 카테고리의 다른 글
[파이썬] 입출력, 자료형, 조건문 간소화 (0) 2023.03.17 [코드업] 파이썬 기초 100 문제 정리 [6] (0) 2023.03.10 [코드업] 파이썬 기초 100 문제 정리 [3] (0) 2023.03.05 [Python] 진수 변환 정리 (0) 2023.03.03 [코드업] 파이썬 기초 100 문제 정리 [1] (0) 2023.02.27