Python : 연산자, 비트 연산 그리고 input
연산자
기능이 있는 특수문자 (★ 과 같이 일반 특수문자 (X))
연산자의 우선순위
최우선 연산자
단항 연산자
산술 연산자
쉬프트 연산자
관계 연산자
논리 연산자
삼항 연산자
대입 연산자
결합성
예) 1 + 2 + 3 = 왼쪽에서부터 연산하기에 1 + 2 = 3; 3 + 3 = 6 이 됩니다.
하나의 수식에 같은 우선순위의 연산자들이
여러 개 나올 때 알맞는 방향으로 결합되어 연산되는 성질
조건식
결과가 참 또는 거짓 둘 중 하나가 나오는 식
파이썬에서의 참과 거짓
True : 참
False : 거짓
관계 연산자
== : 같다
!= : 같지 않다
<, > : 미만, 초과
<=, >= : 이하, 이상
논리 연산자
and : A and B 두 조건식 모두 참일 때 참
or : A or B 둘 중 하나라도 참이면 참
10 == 11 : 10 과 11은 같다.
결과는 False
10 != 11 : 10 과 11은 같지 않다.
결과는 True
10 == 11 and 10 > 1 : 10 과 11 이 같고 10 이 1보다 크다
and 연산자는 둘 다 같아야 참이므로 거짓
10 == 11 or 10 > 1 : 10 과 11 이 같거나 10 이 1보다 크다
or 연산자는 둘 중 하나라도 같으면 참이므로 참
단항 연산자
not : not 조건식
조건식이 True면 False, False면 True로 변경
10 == 11 : 10 과 11이 같다
거짓이지만 not 연산자를 사용 하였기 때문에 값이 반대로 나와서 참이 나옵니다.
===================================
비트 : 0 또는 1
10진수 : 0 ~ 9
2진수 : 0, 1
1byte = 8bit
비트 연산
논리 연산자
& 논리곱 (AND) : 두 비트가 모두 1 이면 1
| 논리합 (OR) : 둘 중 하나라도 1 이면 1
^ 배타논리합 (XOR) : 두 비트가 서로 다르면 1
(10진수)10 : 1010(2진수)
(10진수)11 : 1011(2진수)
1010
-----------------
& : 1010
| : 1011
^ : 0001
단항 연산자
~ 논리부정 (NOT) : 0을 1로, 1을 0으로 바꿔준다
공식입니다.
~a = -a-1
예 ~10 = -11
부호 비트
최상위 비트를 부호비트라고 표현하며,
양수는 0, 음수는 1로 표현한다
쉬프트 연산자
>> A >> B : A를 오른쪽으로 B만큼 비트이동
<< A << B : A를 왼쪽으로 B만큼 비트이동
비트가 넘어가면 잘리고, 빈 자리는 0으로 채워진다(음수는 빈 자리가 1로 채워진다)
input을 이용하면 우리가 입력을 할 수 있습니다.
그리고 input() 만 해놓으면 무엇을 입력하는지 모르기에 input("이름 : ") 으로 이름을 출력하게 둡니다.
그리고 출력한 문자열을 name 이라는 변수에 대입합니다.
※input을 이용해서 값을 입력받으면 그 모든 값은 무조건 문자열로 받습니다.
예) 정수 10을 입력해도 결국 10이라는 문자열로 받습니다.
이제 print함수로 .format을 이용해서 출력해보니 잘 나옵니다.
위에서 제가 input은 문자열로 받는다고 했죠.
그렇기 때문에 가격을 적기위해 아무리 1000이라는 정수를 입력해도 결국 문자로 받습니다.
그래서 우리는 저번에 배운 강제 형변환을 통해서 정수로 바꾸면 됩니다.
int(input("가격 : ")) 을 사용하게 되면 먼저 input을 통해 문자를 받고 그 문자를 정수로 형변환 시키는 것 입니다.
그러면 우리가 원하는대로 1000을 입력해서 1000이라는 정수를 쓸 수 있습니다.
이제 밑에서 10% 할인 시켜서 1000 * 0.9로 900을 출력시킬 수 있었습니다.
이렇게 계산기를 만들 수 있습니다.
위와 같이 우리는 정수가 필요하므로 int(intput()) 으로 강제 형변환을 시켜서 계산기를 만들었습니다.
그리고 True 와 False 는 자료형이 bool 인 것을 print(type()) 을 통해 확인 할 수 있습니다.