본문 바로가기
Python/닭치고 Algorithm

1강 기초 및 첫코딩 sum(Python Algorithm 1 sum)

by OneHundredPlan 2020. 2. 14.
반응형

부제 : 알고리즘을 배우면서 파이썬 기초부터 RPG까지 정복

내용 : 초중고 또는 코딩 기초 입문자를 위한 누구나 따라 배울 수 있는 Python Algorithm 프로그램 기초 강의

 

파이썬을 통해 알고리즘도 배우고 기초 프로그램 문법도 배우고 수학도 배우면서 기초 코딩 교육을 배웁시다. 초보자도 아주 쉽게 배울 수 있도록 최대한 쉽게 설명을 할 것이며 따라하다 보면 어느덧 기초 과정을 마스터하면서 나중에 TRPG(Table-talk Role Playing Game 이라고 하는데 저는 그냥 Text Role Playing Game 즉 문자 타이핑으로 하는 역할 수행 게임 이라고 부르겠습니다.)를 구현하는 과정까지 해 보겠습니다. 교재 및 강의 자료는 네이퍼 카페 백년지계 에 파이썬 에서 닭치고 알고리즘 부분에도 있습니다. 이 시대의 패러다임 코딩 교육을 쉽게 접근하여 친밀한 생활의 코딩으로 배워 나갑시다. 함께 닭치고 아두이노도 같이 하시면 좋습니다.

 

[동영상강의]

https://youtu.be/QfeiyWXTYJQ

 

닭치고 알고리즘 1강 기초 및 sum 교재 다운로드

https://docs.google.com/uc?export=download&id=1MrEg7FoG6gp50njm-gzSa0OKntfb5Lgq

 

Python-Algorithm-1-sum.pdf
0.31MB

 

 

sum.py 다운로드

https://docs.google.com/uc?export=download&id=1nB__tpgQXRhhmrVZqRHvJiZmMsztS51z

 

sum.py
0.00MB

 

 

<!-- $size: 16:9-->

1. Sum

Python 설치하기

알고리즘(Algorithm)을 배우면서 동시에 파이썬(Python)의 기초를 동시에 배웁시다.

가장 먼저 python 과 알고리즘을 배우기 위해서는 영어 알파벳을 배워야 합니다.

그리고 초등학교 수학을 알고 있어야 하며 그 이후에 있을 수학 부분은 될 수 있는 한

설명하도록 하겠습니다.

파이썬을 하기 위해서는 파이썬을 설치해야 합니다.

저는 윈도우즈 64bit 이므로 각자의 운영체제에 맞는 버전을 설치하도록 합니다.

 

 

바탕화면에서 내PC 아이콘을 우측마우스 클릭해서 속성으로 들어가면 자신의 컴퓨터 운영체제가 나옵니다.

 

 

 

 

코딩하는 것들은 우선 메모장을 이용하셔서 작성해서 저장을 하셔도 됩니다.

다음 시간에 코딩에 알맞은 프로그램을 설명하도록 하겠습니다.

1부터 n 까지의 합 구하기

먼저 아래의 코드를 무작정 작성해 봅시다.

저는 SW 폴더 아래에 Python 이라는 폴더를 만든 후 그 안에 저장을 하였습니다.

저장을 할 때 sum.py 라고 이름을 붙였는데 점(.) 뒤에 있는 py 를 확장자라고 합니다.

확장자를 보면 그 파일의 내용물의 종류를 알 수 있습니다.

hwp 는 한글워드프로세서, doc 은 MS 워드, jpg, bmp, gif 등은 이미지를 뜻하는 등등....

 

python은 코딩 블럭 들여쓰기(Identation)가 정확하지 않으면 오류가 납니다.

Tab 키로 들여쓰기를 하면 됩니다.

코딩 중간 중간에 설명, 주석을 하고 싶으면 한 줄은 샵(#) 을 적고 그 뒤로 주석을 적으면 됩니다.

설명문이 여러 줄일 때는 작은따옴표 세개(''') 또는 큰 따옴표 세개(""") 를 해서 적으면 됩니다.

 

''' 설명문이 여러 줄일 때는 작은 따옴표 세개 하고 줄 마지막에서 다음 줄에 작은 따옴표 세개 하면됩니다. '''

""" 또는 이렇게 큰 따옴표 세개를 해도 됩니다. """

 

 

 

sum.py

 

# 1부터 n까지 연속한 숫자의 합을 구하는 알고리즘

# 입력 : n

# 출력 : 1부터 n까지의 숫자를 더한 값



def sum_n(n): # 함수명에는 마지막에 반드시 콜론(:) 를 붙여야 함

	s = 0 # 합을 계산할 변수

	for i in range(1, n+1) : # 1부터 n까지 반복 (n+1)은 제외

		# s = s + i

		s += i

	return s

print(sum_n(10))

print(sum_n(100))

 

 

def는 함수를 만들 때 사용하는 예약어입니다.

함수명은 개발자가 임의로 이름을 지어 만들면 됩니다.

일반적으로 만들고자 하는 내용을 함축하는 이름으로 많이들 작성합니다.

여기서는 함수명을 sum_n 으로 이름 지었는데 sum-n 이런 식으로 이름 작성하지 않고 언더바를 사용해서

sum_n 으로 일반적으로 이름을 작성합니다.

함수명 뒤 괄호 안의 입력 인수인 n은 이 함수에 입력될 값이란 뜻입니다.

이렇게 함수를 정의한 다음 if, while, for문 등과 마찬가지로 함수에서 수행할 문장들을 입력합니다.

 

함수명에는 마지막에 반드시 콜론(:) 를 붙여야 합니다.

 

 

def 함수명(입력 인수):

    <수행할 문장1> <수행할 문장2> ...

 

python을 처음 시작하니 함수는 함수라는 강의 제목으로 다시 다루기로 하고 지금은 그냥

 

def 라고 하고 함수를 만든다고 생각하면 됩니다.

 

 

s = 0 # 합을 계산할 변수

 

s 는 변수(Variable)입니다.

= 은 대입 연산자입니다.

우측의 0 이라는 수를 s라는 변수에 저장합니다.

 

지금은 그냥 s 라는 변수는 0이라고 생각하시면 됩니다.

 

 

for i in range(1, n+1) :

 

변수 i 를 만들어 1부터 n까지의 숫자를 1씩 증가시키며 반복합니다.

 

for 문의 끝에 반드시 콜론(:) 를 붙여야 합니다.

 

 

지금은 초보라 모든 코딩이 낯설게 느껴지는데 지금은 그냥 타이핑을 하는

기분으로 하다가 차차 구글링을 하여 하나씩 알아가면 됩니다.

처음부터 완전한 준비를 한다고 파이썬 문법을 하다가는 전문가가 아닌 다음에야

많은 시간이 걸릴 겁니다.

 

저도 이런 과정을 거치면서 지금 파이썬을 조금씩 알아가고 있습니다.

 

 

 

그럼 이제 완전히 낯선 range 가 나왔으니 구글링을 해서 정복해 봅시다.

 

 

# range

""" 이 함수는 입력받은 숫자에 해당되는 범위의 값을 반복 가능한 객체로 만들어 리턴합 니다. """



# range(stop) : 0 ~ stop-1 까지의 정수 range(1, n)

# 1 부터 n-1 까지의 정수

# range(start,stop) : start ~ stop-1 까지의 정수 range(5, 10)

# 5에서 10-1 까지의 정수 5, 6, 7, 8, 9

 

 

range(1, n+1) 은 1부터 n까지의 정수를 뜻하게 됩니다.

 

음... 여기서 정수는 초등과정에서는 배우지 않으므로 잠깐 설명하고 가겠습니다.

1, 2, 3, 4, 5, ... 이런 수들을 자연수라고 합니다.

그리고 0 이 있습니다.

자연수에 마이너스(-) 를 붙이면 -1, -2, -3, -4, -5, ... 가 됩니다.

..., -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, ... 이런 수들을 다 합쳐서 정수라고 부릅니다.

1, 2, 3, 4, 5, ... 는 또한 양의 정수라고 부르고 ..., -5, -4, -3, -2, -1 은 음의 정수라고 합니다.

그래서 정수는 음의 정수, 0, 양의 정수로 이루어져 있습니다.

음의 정수는 0을 기준으로 해서 일반적으로 좌쪽에 위치를 시키고 양의 정수는 우측에

위치시키는데 우측으로 갈 수록 수가 큽니다.

-5 와 -3 을 보면 -3 이 -5 보다 오른쪽에 있으므로 -3 이 -5보다 큽니다.

 

for i in range(1, n+1) : # 1부터 n까지 반복 (n+1)은 제외 s = s + i

  • range(1, n+1) 에서 1이 i 에 대입됩니다.

  • s = s + i 에서 s + i 를 해서 좌변의 s 에 대입합니다.

  • s+i = 0 + 1 이므로 1 을 좌변이 s 에 대입하게 되며 이제부터 s = 1 이 됩니다.

  • i 에 2 가 대입됩니다.

  • s+i = 1 + 2 = 3 이제부터 s=3 이 됩니다.

  • i 에 3 이 대입됩니다.

  • s+i = 3 + 3 = 6 이제부터 s=6 이 됩니다.

  • i 에 4 가 대입됩니다.

  • s+i = 6 + 4 = 10 이제부터 s=10 이 됩니다.

1+2+3+4 까지 적었는데 다 더하면 10이 되는 것을 확인할 수 있습니다.

이렇게 해서 n 까지 진행을 합니다.

 

아직 n까지 한다는 것이 상당히 어려울 수 있습니다.

 

 

 

예로 range(1, 5) 로 다시 설명하겠습니다.

 

 

for i in range(1, 5) : # 1부터 4까지 반복

     s = s + i

for문은 1부터 4까지 계속 진행을 합니다.

 

	return s

print(sum_n(10))

print(sum_n(100))

 

for 문을 주어진 n 값까지 가면 return s 에 의해 sum_n 을 불러낸 print(sum_n(10)) 에 값을 전달하여

print 해서 55 를 출력합니다.

 

다시 설명하면 print(sum_n(10)) 에 있는 sum_n(10) 이 def sum_n(n): 을 호출합니다.

 

sum_n(10) 의 괄호에 있는 10 이 sum_n(n) 의 n 에 대입되는 것입니다.

그래서 for i in range(1, n+1) 은 for i in range(1, 11) 이 되는 것입니다.

 

정수의 범위는 1 부터 1씩 커져서 11-1=10 까지 입니다.

 

print(sum_n(100)) 은 1부터 100까지의 합이므로 5050이 출력이 될 것입니다.

 

처음 배우는 알고리즘과 생소한 코딩 과정들이라 무척 어렵습니다.

또한 알고리즘은 수학 지식과도 밀접하므로 필요한 수학들을 제가 될 수 있는한 쉽게 설명하도록

노력하겠습니다. 중학교 수학 과정을 조금 공부하시기 바랍니다.

고등수학 수준의 수학 지식은 여하간 제 능력되는 데 까지 쉽게 설명하도록 노력하겠습니다.

우선 첫 시간이니 타이핑 위주로 하시고 차근 차근 생각하시기 바랍니다.

영어 타자를 연습을 많이 하시기 바랍니다.

이번 강의에 미흡했던 부분들은 같이 진행하면서 긴 강의를 통해 배울 수 있을 것이므로 걱정하지 마시기 바랍니다.

댓글