파이썬 연산
산술 연산자의 종류
연산자 |
의미 |
예시 |
설명 |
= |
대입 |
X=3 |
3을 X에 대입 |
+ |
더하기 |
X=5+3 |
5와 3을 더해서 X에 대입 |
- |
빼기 |
X=4-3 |
4와 3을 빼서 X에 대입 |
* |
곱하기 |
X=3*4 |
3과 |
/ |
나누기 |
X=4/2 |
4와 2를 나눠서 X에 대입 |
// |
나누기(몫) |
X=4//2 |
4와 2를 나누고 소수점 버리고 X에 대입 |
% |
나누기(나머지) |
X=4%3 |
4와 3을 나눈 후 나머지를 X에 대입 |
** |
제곱 |
X=3**3 |
3의 3 제곱을 X에 대입 |
이렇게 설명해도 이해하기가 힘드니 바로 print를 이용해서 결과를 확인하면서 이해하는 게 좋습니다. 이것저것 여러 가지 경우를 확인하면서 이해하는 게 좋습니다. 예를 들어서 나누기 0을 하는 경우 어떤 오류가 나올지 등등 알아야 나중에 무슨 오류 발생 시 확인을 하고 고칠 수가 있습니다. 제곱의 경우에는 그냥 곱하기를 여러 번 하는 방식으로도 표현이 가능합니다. 예를 들어서, 3**3 같은 경우 3*3*3이라고 써도 상관은 없습니다. 왜냐하면 2개다 같은 결과가 나오기 때문입니다. 뭐 이게 좋다 저게 좋다고 말하기는 어렵고, 상황에 맞게 잘 쓰시면 됩니다. ( 좀 무책임한 말이기는 한데, 프로젝트를 하면서 다른 사람들이 어떻게 쓰는지 보고 그것에 맞게 쓰는 게 좋다고 생각합니다.)
다른 숫자를 대입하면서 어떻게 작동되는지 확인하자.
제어문 if
일단 시작하기 전에, Python의 특징을 보면, Python은 들여 쓰기가 매우 중요하다는 것이다.
글로 100번 보는 것보다 그림과 예시를 보고 이해하도록 하자.
if 조건(condition):
실행할 문장 1
elsel:
실행할 문장 2
여기서 실행할 문장들은 꼭 Tab띄어쓰기가 필수입니다. Tab 띄어쓰기 안 하면 run을 할 수가 없습니다..
조건에 따라서 실행되는 것이 다르게 된다.
출력 결과
이 경우 A라는 값이 print 된다. 왜냐하면 MyScore가 10이고 MyScore가 5보다 크기 때문이다.
이런 조건문은 여러 가지로 사용되고, 만약 여러분들이 코드를 하게 되면 시작부터 끝까지 쓸 문구이니 꼭 숙달하도록 하자.
온라인에 예시가 많이 있으니, 많이 사용해 보도록 하자.
깜짝 Quiz
X = int(input(“숫자를 입력하세요 : ”))
If(x>100):
Print(‘A”)
Else:
Print(“B”)
Print(“C”)
X = int(input(“숫자를 입력하세요 : ”))
If(x>100):
Print(‘A”)
Else:
Print(“B”)
Print(“C”)
2개의 코드를 아래의 예시 숫자를 넣고 무엇이 다른지 확인하시면 됩니다.
X = 150
X = 100
X = 98
X = 0
위에 처럼 else까지 꼭 쓸 필요는 없다.
하지만 else까지 쓰는 것을 추천한다. (개인적인 생각입니다.보기가 좋더라고요)
출력 결과
If문에서 사용되는 비교 연산자
비교 연산자 |
설명 |
< |
미만인 경우 |
<= |
이하인 경우 |
> |
초과인 경우 |
>= |
이상인 경우 |
== |
같다인 경우 |
!= |
다르다인 경우 |
비교 연산자 그림으로 설명
Logic 연산자
Logic 연산자 |
설명 |
and |
입력의 조건들 같이 다 맞으면 True 아니면 False |
or |
입력 조건 중 하나라도 맞으면 True 아니면 False |
not |
입력 조건이 아니면 True 아니면 False |
(솔직히 이 부분을 모르는 사람한테 설명이 어렵네요. 저는 Logic Gate를 수업에서 들어서 쉽게 이해를 해서, 모르고 보는 분들은 어렵게 느껴지고, 제가 설명을 잘 못하겠네요. 이 부분에 대해서는 제가 밑에 Table을 만들었는데, 그것을 보고 이해하는 게 쉬울 것 같습니다.)
Logic연산자 그림을 설명
and 인 경우
변수1 |
변수2 |
변수1 and 변수2 |
False |
False |
False |
False |
True |
False |
True |
False |
False |
True |
True |
True |
or인 경우
변수1 |
변수2 |
변수1 or 변수2 |
False |
False |
False |
False |
True |
True |
True |
False |
True |
True |
True |
True |
not인 경우
변수1 |
not 변수1 |
False |
True |
True |
False |
멤버 연산자
멤버 연산자 |
설명 |
in |
만약 변수가 수열 안에 있으면 True 아니면 False |
not in |
만약 변수가 수열 안에 없으면 True 아니면 False |
if 안에 if를 추가할 수도 있다.
출력 결과
이렇게 사용이 가능하다. MyScore가 5보다 크기 때문에 첫 if문에 들어가게 되고, 그다음에 YourScore가 5보다 작기 때문에 SoSo가 print 된 것이다.
마지막으로 if와 else만 쓰면 2가지 경우 밖에 쓸 수가 없는데 더 많은 조건이 있는 경우 elif를 사용하시면 됩니다.
위처럼 사용을 하면 3가지 경우를 한 번에 확인할 수 있습니다. 그러면 위의 코드는 아래와 같은 결과가 나옵니다.
만약에, MyAge가 10이었으면 Children이 print 되었을 것입니다. 혹은 MyAge가 60이었으면 Old People이 print 되었을 것입니다.
이제 밑으로는 Quiz를 4개를 준비했습니다. 모든 문제가 어디 수업이나 공부할 때 선생님들이 자주 사용하는 예를 들어서 Quiz를 만들었습니다. 전체적으로 문제 글의 길이가 전보다 훨씬 늘었습니다. 당연히 조건이 많이 붙을수록 글은 길어지고 여러분의 코드도 길어질 것입니다. 아마 점점 코드 공부 혹은 수업을 들으면 코딩 숙제가 여러 가지 증명된 공식을 가져와서 그것을 이용하는 함수 혹은 코드를 만들어서 제출하세요 이런 식으로 숙제 혹은 실험으로 많이 합니다. 밑에 깜짝 Quiz를 잘 이해하고 풀었으면 일단 코딩 시작을 잘한 것입니다. 혹시 잘 모르면 인터넷 찾아보면 답을 쉽게 찾을 수 있을 것입니다. (이런 것 찾는 것 또한 코딩에 들어간다고 저는 생각합니다.) 인터넷에서 찾은 답을 보면서 아 이렇게 하면 되는구나 하면서 연습을 하면 됩니다.
깜짝 Quiz
MyScore가 90보다 크면 A
MyScore가 90보다 작고 80보가 크면 B
MyScore가 80보다 작고 70보가 크면 C
MyScore가 70보다 작고 60보가 크면 D
MyScore가 60보다 작으면 F
되는 코드를 해보세요.
깜짝 Quiz
아인슈타인이 가장 좋아했던 퍼즐(그렇다고는 하는데 진짜인지는 모르겠습니다.)
먼저 3자리 숫자를 입력을 고객으로부터 받습니다. 그리고 그 3개의 숫자 중 백의 자리와 일의 자리 수의 차가 2여야 합니다.
(예를 들어서, 533은 맞는데 335는 차이가 -2이므로 안됩니다.)
고객으로부터 숫자를 입력받으면 그 숫자를 거꾸로 합니다.
(예를 들어서, 442 -> 244)
고객이 입력한 값에서 거꾸로 돌린 값을 뺍니다.
(예를 들어서, 442 – 244 = 198)
그 차이의 값을 거꾸로 합니다.
(예를 들어서, 198 -> 891)
그리고 거꾸로 한 값과 그 차이의 값을 더하면 1089라고 나옵니다.
(예를 들어서, 891 + 198 = 1089)
이 아인슈타인이 좋아하는 퍼즐을 코드로 만드세요.
힌트 일단 고객한테 숫자를 입력받으면 3자리 숫자인지 확인을 제일 먼저 합니다. 그다음에 백의 자리와 일의 자리 숫자의 차이가 2인지 확인을 합니다. 이때 2개의 조건(3자리 숫자 인지와 백의 자리와 일의 자리 숫자의 차이가 2인지)을 만족하는 확인 합니다. 만족을 못하면 무슨 문제로 안 되는 print를 하고 프로그램이 종료되게 하면 됩니다. (좀 더 나아가서는 다시 숫자를 물어보게 만들 수도 있지만 그건 loop를 알아야 하기 때문에, 그냥 종료로 마무리하고 다시 프로그램을 돌리는 방식으로 하겠습니다.)
마지막으로 나오는 값이 1089인지 확인하고 같으면 정답이라고 print를 하고 다르면 다른 값을 print 하면 됩니다.
깜짝 Quiz
2차 방정식을 푸는 코드를 만드세요. 이때 방정식의 해는 오직 실수만 (Real값만) print를 합니다.
고객으로 입력은 a, b, c의 값을 받습니다. ax2+bx+c = 0
힌트 2차 방정식을 풀 때 해가 있는지 없는지 판단하는 방법이 있습니다.(다들 알겠지만 그냥 공식만 넣겠습니다.) b2-4*a*c > 0이면 해가 2개, 같으면 해가 1개(중복 값) 그리고 0보다 작으면 해가 없다고 판단합니다. 이때 if문을 이용해서 해가 존재하는지 안 하는지 판단을 하고 없으면 없다고 print를 하고 있는 경우 해를 구하는 공식을 이용해서 해를 구하고 print 하시면 됩니다.
여기서
를 이용해서 해를 구하면 됩니다.
import math라는 것을 맨 위에 넣고, math.sqrt(4)를 하면 2가 나옵니다. 그러면 루트 부분도 하는데 문제가 없을 것입니다.
깜짝 Quiz
연도가 윤년이지 아닌지 판단하는 코드를 만드세요.
힌트 코드가 어렵기보다는 윤년을 파악하는 알고리즘을 몰라서 못 풀 수도 있는데, 찾는 것은 귀찮고 그러니 힌트로 윤년을 파악하는 방법을 넣었습니다. 윤년의 경우 4로 나누어지는 특징이 있는데, 예외로 100으로 나누어지면 윤년이 아닙니다. 하지만 400으로 나누어지면 100으로 나누어져도 윤년이 됩니다.
조건문을 순차적으로 쓰면서 조건에 맞아서 바로 판단이 되면 윤년이다 아니다 print 하시면 됩니다.
'Python' 카테고리의 다른 글
05. Python기초 문자열과 함수 (0) | 2019.06.21 |
---|---|
04. Python기초 리스트 튜플 딕셔너리 (0) | 2019.06.20 |
03. Python 기초 데이터 구조 리스트와 제어문 반복문 (0) | 2019.06.19 |
01. Python 기초 Print와 변수 (0) | 2019.06.17 |
00. Python 3.7.3 윈도우에 설치 및 제거 (0) | 2019.06.16 |