산술 연산자
| 연산자 | 기호 |
| 더하기 | + |
| 빼기 | - |
| 곱하기 | * |
| 나누기 | / |
| 지수(제곱, power) | ** |
| 나누기(몫) | // |
| 나머지 | % |
| 대입(할당) | = |

3의 3승 = 27
------------------------------
/는 나누기
//는 몫
%는 나머지
------------------------------

x, y 변수에 12와 3을 입력하고

몫은 x//y로 나머지는 x%y로 구했다.

30을 7로 나눴을 때, 몫은 4, 나머지가 2라는 것을 잘 계산했다.
초 단위의 시간을 받아 그 시간이 몇 분 몇 초로 계산되는지 알아보자.
예를 들어 888초가 주어졌을 때,
60초에 1분이니까 나머지가 0일 때 1분이 되어야 한다.
888초를 60초로 나눴을 때, 몫을 분으로, 나머지를 초로 하면 되겠다.

더 간편하게 계산하려면, p//60을 min이라는 변수에 넣어주면 되겠다. 그리고 sec이라는 변수엔 p%60이라는 연산을 넣어주면 됨.

p에 1000초를 입력했을 때

띄어쓰기가 너무 많이 돼서 플러스를 사용하려고 했는데, 오류가 떴다. 문자열이랑 숫자 사이에 +를 쓰면 오류가 생긴다. 문자열과 문자 사이에서만 쓸 수 있음! (숫자 끼리는 연산자 +가 되어버림)
복합 대입 연산자
이건.. 프로그래밍 언어 공부하면서 많이 썼기 때문에 그냥 가볍게 연습하고 넘어가보려고 한다.
초깃값이 10000일 때, x +=2, x-=2, x*=2, x/=2, x//=2, x%=2 이렇게 6개의 연산자를 사용해보았다.

이렇게 바로 print 함수에 넣어버리면 오류남.

이렇게 x라는 변수를 만들어주고, 여기에 연산자를 사용해줘야 한다.

x-=2는 x=x-2라는 말과 같으니까, 10000-2=9998이다.

x*=2는 x=x*2라는 말과 같으니까, 10000*2=20000이다.

x/=2는 x=x/2라는 말과 같으니까, 10000/2=5000이다.
이건 특이하게 소숫점 한자리까지 같이 출력됨.

x//=2는 x=x//2니까 10000/2의 몫인 5000이 출력 될 것이다!
몫이라 자연수 5000이 출력됨.

x%=2는 x=x%2니까 나머지 0이 출력된다.
연산자 우선순위
연산자 우선순위는 꼭 이걸 다 외울 필요는 없고, 하다보면 자연스럽게 익혀진다.
| 우선순위 | 연산자 | 뜻 |
| 높음 ↑ ↓ 낮음 |
** | 지수 연산자 (2의 3승: 2**3) |
| ~,+,- | 단항 연산자 | |
| *,/,%,// | 곱셈, 나눗셈, 나머지, 나눗셈(몫) | |
| +,- | 덧셈, 뺼셈(위에 단항 연산자랑 다른거임) | |
| >>, << | 비트 이동 연산자 | |
| & | 비트 AND 연산자 | |
| ^, | | 비트 XOR 연산자, 비트 OR 연산자 | |
| <=, <, >, >= | 비교 연산자 | |
| <>, ==, != | 동등 연산자 | |
| =,%=, /=,//=,-=,+=,*=,**= | 대입 연산자 | |
| is, is not | 아이덴티티 연산자 | |
| in, not in | 소속 연산자 | |
| and, or, not | 논리 연산자 |
그리고 같은 연산 우선순위에 있는건 결합 방향이 정해져있는대로 하면 되고, 우선순위는 낮지만 먼저 계산 하고 싶을 땐 괄호(())를 써주면 된다.
시험 점수 3개를 입력 받아 평균을 내는 프로그램을 작성하는 문제


x,y,z를 모두 더한 수식을 소괄호로 묶어주고 (연산 순위가 낮으니까) 3으로 나눠주면 된다.
문제 출처: 시간 순삭 파이썬 책
문제 1번
x=-1, y=3일 때 (-y)3승+2x제곱y의 값을 계산해 출력하는 프로그램을 작성하라
일단 변수 x랑 y를 만들어주고, 다항식을 만들어주면 되겠다.
이 문제가 왜 나온거냐면, 2x제곱y 이런 식은 사실 2*x*x*y 이렇게 곱셈이 생략되어있는 식이니까 프로그램에 입력할 때는 연산자를 포함해주어야 하는 것이다.

정답은 -21, 정확한 계산식은 (2*(x**2)) 이렇게 괄호를 써줘야 함.
도전과제
x=-1, y=3일 때 값을 구하는 프로그램 만들기
(1) x-4y
(2) -3/x+9/y
(3) x2+6xy
(4) (x+y)/2xy

각 정답은 result1,2,3,4에 넣었다.
print(result4)는 갑자기 왜 오류났는지 모르겠음
문제 2번
화씨온도를 입력받아서 섭씨온도로 바꾸는 프로그램 작성하기
섭씨온도 100은 화씨온도 212라고 한다.
섭씨온도 구하는 공식 = 화씨온도 - 32 * (5/9)

문제 3번
사용자로부터 두 점의 좌표를 입력 받아 그 두 점 사이의 거리를 계산하는 프로그램을 만들어보자.
(x1,y1), (x2,y2) 이렇게 되어 있으면
두 점의 거리를 구하는 공식은 x좌표는 x좌표끼리, y좌표는 y좌표끼리 빼서 각각 제곱 해서 더해준 후 제곱근을 계산하면 된다.
(x2-x1)2+(y2-y1)2 값을 제곱근해서 계산하면 되는데, 제곱근은 1/2승으로 계산하면 된다.
예를들어 x의 제곱근은 x**1/2

문제 4번
파이썬의 time() 함수를 이용해서 그리니치 표준시를 이용해 한국 표준시를 구하는 프로그램을 작성한다.
지금 그리니치 시간은 오후 1:18분, 그리고 한국의 시간은 오후 10:18분이다. 우리나라가 9시간 빠른셈! 그러니까 그리니치 시간을 기준으로 9시간 더해주면 된다.
time()을 사용하려면 일단 import를 해야 한단다.

그런데 이 그리니치 표준시가 표기되는 방법은 1970년 1월 1일 이후 그리니치 전체 시간을 초 단위로 나타낸 것이다.
일단 이걸 60으로 나누면 분이 되고, 또 60으로 나누면 시간이 된다. 이 나머지가 바로 현재 시간의 분 단위가 됨. (예를 들어서 지금이 1970년 1월 1일 오전 1시 10분이면 총 70분이 지난거니까, 여기서 60을 나눈 값의 나머지가 10이 되고, 현재 시간의 분 단위는 10이 된다는 뜻)
그 시간을 24로 나누면 현재 시간이 언제인지 알 수 있다. 그 현재 시간이 그리니치 표준시이기 때문에 거기에 9만 더해주면 한국 시간이 된다.

현재 시간 분은 49분..

3시..

엥
아니 이렇게 소수점 나오는게 맞습니까?
아니었음 ㅠ 몫을 구해야되는데 그냥 나누기만 해버린거였다... 그리고 위에 식 잘못 적었다. 왜 24가 두번이나 나왔니

현재 분 19분

현재 시간 13시

이건 그리니치 시간 기준

한국 시간은 오후 10시 19분!
그런데 소수점 하나도 안 나오게 하는 방법은 없을까?
'STUDY > Python' 카테고리의 다른 글
| [3-1] 파이썬 기초 : 자료의 종류 Labs 문제 풀이 (0) | 2022.03.12 |
|---|---|
| [3] 파이썬 기초 : 자료의 종류 정수, 실수, 문자열 (0) | 2022.03.10 |
| [1] 파이썬 기초 : 변수, input() 함수 (0) | 2022.02.09 |
| [0] 파이썬 공부를 시작하며 (0) | 2022.02.05 |
댓글