전기공학머신러닝실습 목차 Colab 노트북 다운로드 Colab 실행 ↗ 목차
4. 기본적인 계산 다루기
4.1 기본 수학 연산
변수(variable)
어떤 데이터를 저장하는 공간을 가리키는 이름표라고 보면 되고, 그 공간에 저장되는 데이터가 계속 바뀔 수 있기 때문에 변수라고 한다.
가독성을 위해 저장할 데이터의 종류나, 그 데이터의 용도에 맞게 이름을 정하는 것이 좋다.
(다른 사람들의 소스코드를 참고하다 보면 어느정도 규칙이 있음을 알 수 있다.)
# 변수의 좋은 예
pos_x = 10
num_values = 5
_event_flag = False
# 변수의 나쁜 예
abc = 4
a1 = 50
xxxx = 3.4
temp1 = 4
temp2 = 5
데이터 타입
정수, 실수, bool(True/False), 문자열 정도로 구분할 수 있다.
python이 자동으로 관리해주므로 굳이 신경 쓸 필요가 없다.
달리 이야기하면, 데이터 타입이 내 의도와는 달리 바뀔 수 있으므로 주의도 필요하다.
# 정수
number = 5
# 실수
value = 2.5
# bool
is_number = True
# 문자열(string)
name = 'Ivan'
# 정수가 실수로 바뀌는 경우
number = number / 2
print('number =', number)number = 2.5
기본 연산자
사칙연산
더하기 +, 빼기 -, 곱하기 *, 나누기 /)
기타연산
논리연산
크다 >, 크거나 같다 >=, 작다 <, 작거나 같다 <=, 같다 ==, 같지 않다 !=, and, or
a = 10
b = 2.5
print(a+b, a-b, a*b, a/b, a//b, a%b, a**b)
print(a>b, a>=b, a<b, a<=b, a==b, a!=b, a>b or a<=b, a>b and a<=b)12.5 7.5 25.0 4.0 4.0 0.0 316.22776601683796
True True False False False True True False
잘 알려진 수학 함수 (numpy 라이브러리 활용)
사인 sin, 코사인 cos, exponential exp, 반올림 round, 올림 ceil, 내림 floor
# numpy 라이브러리의 활용법은 나중에 좀 더 자세히 다룰 예정입니다.
import numpy as np
angle = np.pi/4
print(angle)
print(np.sin(angle))
print(np.cos(angle))
print(np.exp(angle))
print(np.round(angle))
print(np.ceil(angle))
print(np.floor(angle))0.7853981633974483
0.7071067811865475
0.7071067811865476
2.1932800507380152
1.0
1.0
0.0
4.2 단순 반복 계산하기 (for)
for문은 정해진 횟수를 단순 반복하기 위한 용도로 많이 사용되는 기본 제공 함수이다.
형식
+ 리스트에 있는 원소들이 하나씩 차례로 변수에 대입된되며 반복하고, 모든 원소가 대입된 후 반복이 끝난다.
+ 물론 리스트에 들어갈 수 있는 데이터 형태는 무엇이든지 가능하다.
for i in [4, 'text', 1.5 , True, {'name':'Charles', 'age':15}]:
print(i)4
text
1.5
True
{'name': 'Charles', 'age': 15}
for i in range(5):
print(i)0
1
2
3
4
continue 구문으로 반복을 한 번 스킵 할 수 있다. (if 문은 이번 장 맨 뒤에 좀 더 자세히 설명된다.)
for i in range(5):
if i==3:
continue
print(i)0
1
2
4
break구문으로 반복을 완전히 끝낼 수 있다. (break 한 번에 하나의 반복만 탈출한다.)
for i in range(5):
if i==3:
break
for j in range(5):
if j==2:
break
print(i, j)0 0
0 1
1 0
1 1
2 0
2 1
(간단한 예제) 구구단 (출력이 길어지니 2-4단만 해보자.)
for i in range(2,5):
for j in range(1,10):
print('%d * %d = %d' % (i, j, i*j))
print('----------')2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
----------
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
----------
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
----------
4.3 조건 반복 계산하기 (while)
while문은 어떤 조건을 만족할 때만, 반복하도록 하는 용도로 사용한다.
형식
+ 조건은 bool 형태의 데이터 타입이고, `True` 또는 `False`로 표현가능한 것을 의미한다.
- (조건 `and` 조건), (조건 `or` 조건)과 같이 조합해서 사용하는 것이 가능하다.
조건이 True인 경우에 아래 수행문이 실행된 후, 다시 되돌아가 조건을 확인한다.
조건이 False인 경우 반복을 멈추고 다음으로 넘어간다.
참고로, 조건이 항상 True인 경우, 반복문을 멈추게 할 방법이 없기 때문에 무한루프 라고 종종 이야기한다.
의도적으로 무한루프를 사용한 것이 아니라면, 조건이 경우에 따라 무한루프에 빠질 가능성은 없는지 각별히 주의해야한다.
continue와 break는 for문에서와 동일한 방법으로 사용할 수 있고, break를 이용해 무한루프를 탈출 가능하다. (아래 예제 참고)
i = [1,2,3,4,-1,5,6,7,8]
j = []
count=0
while(i[count]>0):
j.append(i[count])
count = count + 1
print(j)[1, 2, 3, 4]
(간단한 예제) 구구단 (입력을 받아 원하는 구구단을 출력하게 해보자.)
# 프로그램 동작에 관한 정보를 제공한다.
print('원하는 단수를 입력하시고, 종료하려면 -1을 입력하세요.')
# 의도적으로 무한루프를 활용한다.
while(True):
# 사용자가 정수를 입력해준다고 가정한다.
i = int(input())
# -1 입력시 반복문을 탈출한다.
if i==-1:
break
# 출력
for j in range(1,10):
print('%d x %d = %d' % (i, j, i*j))원하는 단수를 입력하시고, 종료하려면 -1을 입력하세요.
4
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
5
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
-1
4.4 좀 더 복잡한 계산하기 (if)
if문은 어떤 조건을 만족할 때 원하는 기능이 수행되게 할 수 있다. (while과 달리 반복은 없다.)
형식
if (조건):
수행문
...
elif (조건):
수행문
...
else :
수행문
...
조건이 True인 경우에 아래 수행문이 실행된다.
조건이 False일 때 한번 더 확인할 조건이 있다면 elif 문을 이용한다.
조건이 False인 경우에 실행할 수행문이 있다면, else 문 이하에 배치하면 된다.
if문의 예제는 이미 위에서 많이 언급되었기에 생략한다.