파이썬 기초 문법으로 배우는 수학 + 코드 주석 + 한 줄씩 상세 설명 + 퀴즈
변수, if, for, while, list, %, //, **, print()
어떤 수를 2로 나누었을 때 나머지가 0이면 짝수입니다.
n = 12 # 판별할 수를 저장한다.
if n % 2 == 0: # n을 2로 나눈 나머지가 0인지 확인한다.
print("짝수") # 조건이 참이면 짝수라고 출력한다.
else:
print("홀수") # 조건이 거짓이면 홀수라고 출력한다.
n = 12: 변수 n에 12를 저장합니다.n % 2: n을 2로 나눈 나머지를 구합니다.어떤 수를 2로 나누었을 때 나머지가 1이면 홀수입니다.
n = 15 # 판별할 수를 저장한다.
if n % 2 == 1: # n을 2로 나눈 나머지가 1인지 확인한다.
print("홀수") # 참이면 홀수라고 출력한다.
else:
print("짝수") # 거짓이면 짝수라고 출력한다.
n = 15: 15를 변수에 저장합니다.%는 나머지를 구하는 연산자입니다.어떤 수를 나누어떨어지게 하는 수를 약수라고 합니다.
n = 24 # 약수를 구할 수
for i in range(1, n + 1): # 1부터 n까지 반복한다.
if n % i == 0: # n이 i로 나누어떨어지는지 확인한다.
print(i) # 나누어떨어지면 i는 약수이다.
range(1, n + 1): 1부터 n까지 검사합니다.n % i == 0: 나머지가 0이면 나누어떨어집니다.어떤 수에 정수를 곱해서 얻는 수를 배수라고 합니다.
n = 3 # 기준이 되는 수
for i in range(1, 11): # 1부터 10까지 반복한다.
print(n * i) # n에 i를 곱해 배수를 출력한다.
n = 3: 3의 배수를 구합니다.i가 1부터 10까지 변합니다.n * i로 배수를 출력합니다.
1과 자기 자신만을 약수로 가지는 2 이상의 자연수를 소수라고 합니다.
n = 29 # 소수인지 판별할 수
is_prime = True # 처음에는 소수라고 가정한다.
if n < 2: # 2보다 작은 수는 소수가 아니다.
is_prime = False
else:
for i in range(2, n): # 2부터 n-1까지 나누어 본다.
if n % i == 0: # 나누어떨어지면 약수가 있는 것이다.
is_prime = False # 소수가 아니다.
break # 더 검사할 필요가 없으므로 반복 종료
print("소수" if is_prime else "소수 아님")
약수는 제곱근까지만 확인해도 충분합니다.
n = 97 # 판별할 수
is_prime = True # 소수라고 가정한다.
if n < 2:
is_prime = False
else:
for i in range(2, int(n ** 0.5) + 1): # 제곱근까지만 검사한다.
if n % i == 0:
is_prime = False
break
print(is_prime)
n ** 0.5는 제곱근을 의미합니다.자연수를 소수들의 곱으로 나타내는 것을 소인수분해라고 합니다.
n = 84 # 소인수분해할 수
i = 2 # 가장 작은 소수부터 시작한다.
while i <= n: # i가 n보다 작거나 같은 동안 반복한다.
if n % i == 0: # n이 i로 나누어떨어지면
print(i, end=" ") # i는 소인수이다.
n //= i # n을 i로 나눈 몫으로 바꾼다.
else:
i += 1 # 나누어떨어지지 않으면 다음 수로 넘어간다.
두 수의 공통 약수 중 가장 큰 수를 최대공약수라고 합니다.
a = 48 # 첫 번째 수
b = 18 # 두 번째 수
while b != 0: # b가 0이 될 때까지 반복한다.
a, b = b, a % b # 유클리드 호제법을 적용한다.
print("최대공약수:", a)
두 수의 공통 배수 중 가장 작은 수를 최소공배수라고 합니다.
a = 12
b = 18
x = a
y = b
while y != 0: # 최대공약수를 먼저 구한다.
x, y = y, x % y
gcd = x # 최대공약수
lcm = a * b // gcd # 최소공배수 공식
print("최소공배수:", lcm)
//는 몫을 구하는 정수 나눗셈입니다.
절댓값은 수직선에서 0으로부터의 거리입니다.
n = -15 # 절댓값을 구할 수
if n < 0: # 음수이면
print(-n) # 부호를 바꾸어 출력한다.
else:
print(n) # 양수이면 그대로 출력한다.
같은 수를 두 번 곱하면 제곱, 세 번 곱하면 세제곱입니다.
n = 4 # 기준 수
square = n ** 2 # n의 제곱
cube = n ** 3 # n의 세제곱
print("제곱:", square)
print("세제곱:", cube)
**는 거듭제곱 연산자입니다.n ** 2는 n의 제곱입니다.n ** 3는 n의 세제곱입니다.
어떤 정수의 제곱으로 표현되는 수를 제곱수라고 합니다.
n = 49
is_square = False
for i in range(1, n + 1): # 1부터 n까지 검사한다.
if i * i == n: # i의 제곱이 n과 같으면
is_square = True # 제곱수이다.
break
print("제곱수" if is_square else "제곱수 아님")
연속한 항의 차가 일정한 수열입니다.
a = 3 # 첫째항
d = 2 # 공차
for n in range(1, 11): # 1번째 항부터 10번째 항까지
term = a + (n - 1) * d # 등차수열 일반항
print(term)
a입니다.d입니다.a + (n - 1) * d입니다.
연속한 항의 비가 일정한 수열입니다.
a = 2 # 첫째항
r = 3 # 공비
for n in range(1, 8): # 1번째 항부터 7번째 항까지
term = a * (r ** (n - 1)) # 등비수열 일반항
print(term)
a입니다.r입니다.a * r^(n-1)입니다.
1부터 n까지의 모든 자연수를 곱한 값을 팩토리얼이라고 합니다.
n = 5
result = 1
for i in range(1, n + 1): # 1부터 n까지 반복한다.
result *= i # result에 i를 곱한다.
print(result)
result *= i는 result = result * i와 같습니다.
앞의 두 수를 더해 다음 수를 만드는 수열입니다.
a = 1
b = 1
for _ in range(10): # 10개의 항을 출력한다.
print(a) # 현재 항 출력
a, b = b, a + b # 다음 항으로 이동
a, b = b, a + b로 값을 동시에 갱신합니다.
자료의 총합을 자료의 개수로 나눈 값입니다.
scores = [80, 90, 70, 100]
total = 0
for s in scores: # 점수를 하나씩 꺼낸다.
total += s # 총합에 더한다.
average = total / len(scores) # 총합을 개수로 나눈다.
print(average)
일차함수는 y = ax + b 형태의 함수입니다.
a = 2 # 기울기
b = 3 # y절편
for x in range(-3, 4): # x값을 -3부터 3까지 바꾼다.
y = a * x + b # 일차함수 식
print(x, y)
a는 기울기입니다.b는 y절편입니다.좌표평면에서 두 점 사이의 거리는 피타고라스 정리로 구합니다.
x1, y1 = 1, 2
x2, y2 = 4, 6
dx = x2 - x1 # x좌표의 차
dy = y2 - y1 # y좌표의 차
distance = (dx ** 2 + dy ** 2) ** 0.5 # 거리 공식
print(distance)
삼각형의 넓이는 밑변 × 높이 ÷ 2입니다.
base = 10 # 밑변
height = 6 # 높이
area = base * height / 2 # 삼각형 넓이 공식
print(area)
% 연산자는 나머지를 구하는 연산자이다. n ** 2는 n을 2로 나누는 연산이다. n ** 3의 의미는?range(1, n + 1)의 의미로 알맞은 것은?