본문 바로가기

IT

파이선 문법 3 - 제어,배열,함수

파이선 기초 문법으로 마지막 3강까지 오셨습니다. 거의 다 왔습니다. 

3강까지 마무리하신다면 파이선으로 작성되는 프로그램의 기초적인 부분은 알게 되신 것입니다.

 

1강 자료와 변수, 2강 입출력까지의 내용에서 컴퓨팅 프로그램에서 기본으로 선언되어야 하는 부분을 알아보신 것입니다.

본 글에서는 문제를 해결하기 위해 어떤 동작을 할 것을 지시할 때 사용되는 제어구조를 설명드리고

1장에 다룬 주제에 속하는 배열과 프로그래밍의 가독성을 높이는 함수에 대한 문법 기능을 설명드립니다.

 

5) 제어 구조 :

프로그램에서의 명령들은 위에서 아래로 순차적으로 실행됩니다.

그러나 때로는 명령들이 나열된 순서와는 다른 순서 즉, 비순차적으로 실행되어야 하는 경우도 있습니다.

그러한 명령들의 비순차적 진행과정은 제어문을 통해 이루어질 수 있습니다.

조건에 따라 실행될 명령을 선택하거나 동일한 명령을 반복해서 실행할 수 있습니다.

파이선에서 제어문에는 if문, for문, while문이 있으며 이 제어문들은 서로 중첩되어 사용됩니다.

 

5-1) if문

if문은 조건에 따라 각기 다른 명령을 실행해야 하는 경우에 사용하는 명령문입니다.

if문에는 1) if ~,  2) if~ else, 3) if~ elif~ else의 구조가 존재합니다.

조건문
if 문 유형

파이선 문법에서는 다음과 같은 사항에 대해 주의해야 합니다.

  • 조건(if문, elif문, else문)의 끝에는 반드시 콜론(:)으로 문장을 마쳐야 합니다.
  • 조건에 따른 명령문들은 동일한 들여 쓰기를 해야 합니다.

5-2) for문

for문은 명령을 반복하여 실행해야 할 때 사용하는 명령문입니다.

반복 횟수를 정하기 위해 range() 함수를 사용하거나, 다른 변수들을 사용할 수도 있습니다.

 

for 문에서 제약을 거는 조건 구조의 유형은 다음과 같습니다.

  1. for 변수 in range(시작, 끝, 증감 값) :
  2. for 변수 in 리스트 변수 :
  3. for 변수 in 사전형 변수:
  • for문과 range() 함수 관계

range() 함수는 숫자 리스트를  자동으로 만들어 주는 함수로 for문과 자주 사용됩니다.

예시 설명 range() 값
range(7)
range(0,7)
0부터 7 미만의 숫자를 전달합니다. 0,1,2,3,4,5,6
range(0,7,2) 0부터 7 미만까지 2씩 증가하는 숫자를 전달합니다. 0,2,4,6
range(7.0,-2) 7부터 0 초과까지 2씩 감소하는 숫자를 전달합니다. 7,5,3,1
# range(0,5) 함수는 0부터 4까지 1씩 증가한 값을 변수 i에 전달합니다.
# for 구문을 돌면서 print() 함수가 실행되어 'Hello World'가 5번 출력됩니다.

>>> for i in range(0,5) :
             print('Hello World', i)
Hello World 0
Hello World 1
Hello World 2
Hello World 3
Hello World 4
>>>
  • 리스트 변수를 사용한 for문
>>>  test_list = ['one', 'two', 'three']
>>> for i in test_list :
            print(i)
one
two
three
>>>
  • 사전형 변수를 사용한 for문
pop={'부산광역시':400,'인천광역시':320,'대전광역시':257,'대구광역시':227,'광주광역시':137,'울산광역시':105}
pop_sum = 0

for i in pop :
    print(i)
    pop_sum = pop_sum + pop[i]
pop_avg = pop_sum/len(pop)
print(f'광역시의 평균 인구수는 {pop_avg} 입니다')

실행 결과는 다음과 같습니다.

부산광역시
인천광역시
대전광역시
대구광역시
광주광역시
울산광역시
광역시의 평균 인구수는 241.0 입니다

5-3) while문

while문은 주어진 조건에 만족하는 동안 명령을 반복하여 실행해야 하는 경우에 사용하는 명령문입니다.

while문도 문장 끝에 콜론(:)을 입력해야 합니다.

 

while 조건 :

while 문은 for 문과 같이 지정된 명령들을 반복하여 실행하지만, for문에서는 정해진 횟수만큼 실행되고, while문에서는 조건을 만족할 때까지 계속 실행됩니다

while문을 사용할 경우에 조건을 잘못 설정하면 무한 반복 상황이 발생할 수 있으니 주의해야 합니다.

5번 반복 예 무한 반복
i = 0
while i < 5 :
    print('Python')
    i = i + 1
while True :
    print('Python')
while 1:
    print('Python')

 

6) 배열

배열이란 동일한 형태의 자료들을 연속된 메모리 공간에 저장하고 사용하는 자료 구조형입니다.

이러한 배열 구조는 동일한 형태의 자료들을 처리하는 데 유용합니다.

파이선에서는 리스트형을 사용하여 동일한 형태의 자료들 뿐 아니라 다양한 형태의 자료들을 처리할 수 있습니다.

배열은 대괄호( [] )를 사용하여 구성하고, 배열의 요소는 콤마( , )로 구분합니다.

 

 

직원의 월급을 계산하기 위해 7명의 자료를 저장하기 위한 배열의 구조는 다음과 같습니다.

  • 배열명 : sal
800 400 300 400 550 260 230
sal[0] sal[1] sal[2] sal[3] sal[4] sal[5] sal[6]

파이선에서 리스트형을 사용하여 구현한 배열의 예는 다음과 같습니다.

 

>>> num = [1,2,3,4,'a', 'b']
>>> type(num) 
<class 'list'>
>>> print( num[0], num[4], num[-1], num[-5] )
1 a b 2
>>> print ( num[1:3], num[:4], num[2:])
[2, 3] [1, 2, 3, 4] [3, 4, 'a', 'b']
>>> print(num[:])
[1, 2, 3, 4, 'a', 'b']

배열도 변수와 같이 자료를 저장하는 공간이지만 저장할 수 있는 자료의 개수가 다릅니다.

변수는 1개의 자료만 저장할 수 있지만, 배열은 여러 개의 자료를 저장할 수 있습니다.

파이선에서 배열은 숫자, 문자, 문자열과 같이 다양한 자료를 저장할 수 있습니다.

변수명 name num grade
자료 홍길동 100 A
name = '홍길동'
num = 100
grade='A'
print(name, num, grade)
홍길동 100 A
>>>

 

배열명 student
자료 홍길동 100 A
>>> student = [ '홍길동', 100,'A']
>>>print(student)
['홍길동', 100, 'A']
>>>

배열의 종류는 인덱스의 개수에 따라 1차원 ~ N 차원으로 나눕니다.

1차원 배열은 1개의 인덱스를 사용하고, 2차원 배열은 2개의 인덱스를 사용합니다.

1차원 배열 2차원 배열
student = [ '홍길동', 100,'A'] student = [[ '홍길동', 100,'A'], ['김철수', 80,'B']]
>>>student = [ '홍길동', 100,'A']
>>>print(student[1], student[2])
100 A
>>>student = [[ '홍길동', 100,'A'], ['김철수', 80,'B']]
>>>print(student[0][1], student[0][2],student[1][1], student[1][2] )
100 A 80 B
>>>

파이선에서 배열 값을 처리할 수 있도록 제공하는 함수들은 다음과 같습니다. 

종류 동작 실행 결과 (print(K) )
append() 배열에 요소를 추가 K = [5,6,7]
K.append(9)
[5,6,7,9]
sort() 배열을 순서대로 정렬 K = [3,6,2,9]
K.sort()
[2,3,6,9]
reverse() 배열을 역순으로 배치 K = [1,2,3,4]
K.reverse()
[4,3,2,1]
insert(a,b) 배열의 a번째 위치에 b를 삽입 K = [1,2,3]
K.insert(1,5)
[1,5,2,3]
pop() 배열의 맨 마지막 요소 출력 K=[1,2,3]
K.pop()
3
[1,2]

7) 함수

함수는 특정 작업을 처리하기 위해 수행해야 할 명령들의 나열입니다. 특정 작업을 함수로 정의함으로 프로그램의 가독성을 높여 쉽게 이해할 수 있게 해 줍니다.

함수는 프로그램 안에서 함수의 이름을 호출함으로 실행됩니다.

 

 

함수를 호출할 때 함수의 실행에 필요한 입력 값을 인수(parameter)라고 하고 이 인수값을 제공해야 합니다.

함수의 실행이 완료되었을 때 출력되는 값을 반환 값이라고 합니다. 

def 함수명 (인수 ) :
    수행할 명령들

 

  • 함수의 선언은 def로 시작하고 콜론(:)으로 끝납니다.
  • 함수의 명령들은 코드의 들여 쓰기로 구분합니다.
  • 시작과 끝을 명시해 줄 필요가 없습니다.
  • 함수의 결과값은  return  명령에 의해 전달되고, 값을 돌려준 후 함수는 종료됩니다.

 

이상으로 파이선 기초 문법 3강을 마무리하셨습니다.

1강 자료와 2강 자료도 다시 한번 복습하시는 것을 추천드립니다.

 

2022.10.26 - [IT] - 파이선 문법 1 - 변수와 자료형

 

파이선 문법 1 - 변수와 자료형

프로그래밍 언어는 C, C++, C#, Java, 파이선 등 다양하지만 프로그래밍 언어가 나타내는 특성은 유사합니다. 파이선 프로그래밍 언어 기준으로 프로그래밍 언어의 특징을 설명해 드리지만 다른 프

give-cheese.com

 

2022.10.26 - [IT] - 파이선 문법 2 - 입출력

 

파이선 문법 2 - 입출력

파이선은 C, C++ 프로그래밍 언어와 다르게 쉽고 직관적인 특징이 있습니다. 기본적인 파이선 문법을 3강에 걸쳐 설명드리고 있습니다. 파이선을 지금 시작하시는 분들이라면 도움이 되도록 쉽고

give-cheese.com

 

컴퓨팅 프로그램 언어가 처음부터 쉽게 이해되지 않을 수 있습니다.

하지만 현재 나와 있는 프로그래밍 언어 중에서 파이선은 가장 쉬운 편에 속합니다.

가장 쉽지만 원래 컴퓨팅 프로그래밍 언어가 가져야 하는 속성들은 모두 가지고 있기 때문에

파이선으로 접해 보시는 것이 가장 쉽다고 판단되어 파이선 문법을 정리해 드립니다.

 

 

 

'IT' 카테고리의 다른 글

AI? 다 해결해?  (0) 2022.11.01
유무선 네트워크  (0) 2022.10.27
파이선 문법 2 - 입출력  (0) 2022.10.26
파이선 문법 1 - 변수와 자료형  (0) 2022.10.26
파이썬과 소스코드 편집기 설치  (0) 2022.10.25