상세 컨텐츠

본문 제목

파이썬 (Python) 공부 - 조건문, 리스트, 튜플, 무한 반복, 사전, 모듈, 사용자 함수 정의

IT & Programming/파이썬 (Python) 공부

by 그림아이 2022. 4. 27. 02:00

본문

반응형

조건문

어느 프로그래밍 언어에도 반드시 있는 if 문은 조건문을 의미합니다. Python의 주의점은 콜론 :과 들여쓰기입니다. 콜론은 if행의 끝에 씁니다. 들여쓰기란 아래 코드의 경우는 print문의 행입니다. 빈 공간이 4개로 1개의 들여쓰기를 나타냅니다. 다음 코드는 변수 t의 값을 보고 8보다 큰 경우 print 문으로 표시하고, 그렇지 않으면 아무 작업도 수행하지 않고 프로그램을 종료합니다.

= 10 
 
if  t  > 8 : 
    print ( ' Good sleep time ' )

if 뒤에 쓰인 t > 8이 조건식이라는 부분입니다. 조건식이 맞으면 그 아래의 들여쓰기 된 블록이 실행됩니다. 조건식에는 >등의 비교 연산자가 사용됩니다. 비교 연산자는 다른 < <= >= > == != 등이 있습니다. 순서대로, 작다, 작거나 같다, 크거나 같다, 크다, 같다, 같지 않다 를 의미합니다. 아래의 예에서 t값을 변경하여 조건식이 맞을 때와 맞지 않을 때 어떤 블록이 실행되는지 확인하십시오.

= 6 
 
if  t  < 8 : 
    print ( ' Lack of sleep ' )
    print ( ' Get some sleep, please ' )
print ( ' Thank you ' )

bool이라고 불리는 변수가 if와 함께 널리 사용되기 때문에 기억해야 합니다. bool 유형은 True와 False중 하나만 가질 수 있는 변수입니다. 다음 코드는 bool 변수 sleepy의 값이 True때 print 문을 표시합니다. 사실 어렵게 생각하면 안 됩니다. 위에서처럼 조건식 t < 8이라는 것도 결국 True를 반환하기 때문에 조건문이 참인 경우에 해당하는 코드를 실행하는 것 뿐입니다. bool을 사용하든 조건식을 사용하든 결국 조건식이 참일 때 무슨 일을 할지, 거짓일 때 무슨 일을 할지를 정의하는 것입니다.

sleepy  = False 
 
if  sleepy  == True : 
    print ( ' Have a good sleep! ' )

 

리스트

리스트는 다른 프로그래밍에서 말하는 배열에 해당합니다. 간단히 말하면 하나의 값이 아니라 일련의 값을 저장할 수 있는 변수입니다. 대표적인 사용법을 살펴 보겠습니다.

목록 초기화

이와 같이 각 요소를 콤마로 단락지어 괄호 [ ]안에 기술합니다.

= [ 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 ]          

목록 참조

리스트이름[n]에서 목록의 n + 1두 번째 요소에 액세스할 수 있습니다.
파이썬에서 요소 번호는 0부터 시작합니다. 예를 들어 n이 5이면 여섯 번째 요소인 60을 출력합니다.

= [ 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 ]          
= a [ 5 ] 
 
print ( b )

이번은 리스트의 내용을 정수치로 했습니다만, 실수나 문자열 등 다른 변수도 가능합니다.

 

사전

Python 사전은 한마디로 "키워드가있는 리스트"입니다. WEB 프로그래밍을 경험한 적이 있다면 JSON 형식이라는 용어를 들었을 수도 있는데 거의 가깝습니다. 이제 코드를 작성하고 실행해 봅시다. 다음은 과일의 가격을 변수에 저장하고 참조하는 예입니다. 리스트로 취급하는 것도 가능합니다만, 사전을 사용하는 것으로 알기 쉽게 됩니다.

#  사전 초기화 
= { ' apple ' : 148 , ' banana ' : 99 , ' orange ' : 358 }   
 
#  사전참조 
= a [ ' orange ' ] 
 
#  표시 
print ( b )

특징적인 것은, 초기화시에 { }를 사용하는 것과 콜론 : 을 사용하여 세트로 정의하는 것입니다. 목록과 마찬가지로 정수 값 이외에도 취급할 수 있습니다. 

 

튜플

튜플은 요소를 변경할 수 없는 목록입니다. 초기화시의 괄호의 형태가 ( )이며, 리스트나 사전과 다릅니다. 한편으로 참조시는 리스트와 같이 []를 사용합니다.

= ( 102030405060708090100 ) 
= a [ 5 ] 
 
print ( b )

 

사용자 함수 정의

함수는 입력값을 받고 처리한 후 출력값을 결과로 반환합니다. 입력값을 「인수(히키스우)」, 출력값을 「반환값」이라고 부릅니다. 구체적인 예로 반경을 인수로 하고, 원의 둘레를 구하는 함수를 정의하여 둘레 값을 반환값으로서 돌려주는 함수 circle를 만들어 봅시다.

 

함수는 def에서 정의합니다. def 함수이름(인수):를 기술한 후에 들여쓰기를 하고, 처리 과정을 기술합니다. 원의 둘레 공식은 2 × π × r 이므로 변수 l에 l = 2 * 3.14159 * r 을 대입합니다. return 에서 변수의 결과를 반환할 수 있습니다.

def circle ( r ) : 
    l  = 2 * 3.14159 *  r    
    return  l

이것만으로 실행해도 아무 일도 일어나지 않습니다. 지금까지 함수 하나를 정의한 것뿐입니다. 함수를 호출하는 처리를 더합니다. 다음은 인수에 10을 넣어 circle 함수를 호출하는 예입니다.

def circle ( r ) : 
    l  = 2 * 3.14159 *  r    
    return  l
 
val  = circle ( 10 ) 
print ( val )

함수의 인수나 반환값은 1개 이상일 수도 있습니다. 다음은 반지름과 원주율을 인수로 사용하여 원주와 원의 면적을 반환하는 함수의 예입니다.

def circle ( r , pi ) :  
    l  = 2 *  pi  *  r  
    s  =  pi  *  r  *  r
    return  l, s
 
val1, val2  = circle ( 10 , 3.14159 )  
print ( val1 )
print ( val2 )

지금까지의 함수의 인수는 입력된 순서에 따라 전달됩니다. (예 : 위의 코드 예제에서 r에 10을 전달하고 pi에 3.14159를 전달) 변수도 두개, 반환값도 두개이므로 변수 val1에는 I, 변수 val2에는 s가 각각 반환됩니다. 함수 호출시 이름 (키워드)을 지정하여 순서에 관계없이 인수를 전달할 수도 있습니다.

def circle ( r , pi ) :  
    l  = 2 *  pi  *  r  
    s  =  pi  *  r  *  r
    return  l, s
 
val1, val2  = circle ( pi = 3.14159 , r = 10 )  
print ( val1 )
print ( val2 )

순서는 반대이지만, 결과는 같습니다. 이러한 인수의 작성 방법을 「키워드 인수」라고 부릅니다.

 

패키지 및 모듈 로드

Python import을 사용하여 OpenCV 및 NumPy와 같은 다양한 "패키지"및 "모듈"을 로드합니다. 목적은 모듈 안에 있는 여러 개의 "함수"를 활용하는 것입니다. 모듈을 읽는 방법은 주로 세 가지입니다. time모듈의 sleep이라는 함수를 사용하는 경우를 예로 설명합니다. sleep은 인수에 지정된 초만큼 프로그램을 일시 중지하는 함수입니다. 반환값은 없습니다.

import 모듈 이름

가장 알기 쉬운 읽기 방법입니다. 함수를 사용하는 경우 "모듈이름.함수이름"과 같이 입력합니다. 아래 예제는 3초간 프로그램이 정지됩니다. 보통 웹 스크래핑에서 자주 사용되는 함수이며, 웹페이지의 로딩 속도보다 파이썬 프로그램의 처리 속도가 빨라 웹페이지 로딩 전에 프로그램이 돌아가 버리면 데이터를 불러 들이지 못해 에러가 나는 현상을 방지하기 위해 웹페이지가 로딩되는 시간을 잠시 기다려주는데 자주 사용됩니다.

Import time
 
print ( ' start ' )
time . sleep ( 3 )
print ( ' end ' )

import 모듈 이름 as 별칭

as를 추가하면 모듈 이름을 별칭으로 처리할 수 ​​있습니다. 다음 예제에서는 모듈 이름을 t로 처리합니다.

import  time  as  t
 
print ( ' start ' )
t . sleep ( 3 )
print ( ' end ' )

from 모듈 이름 import 함수 이름

특정 함수만 사용하는 경우 이 형식으로 작성하면 함수를 사용할 때 모듈 이름이 필요하지 않습니다.

from  time  import  sleep
 
print ( ' start ' )
sleep ( 3 )
print ( ' end ' )

어떤 방법이든 결과는 같습니다.

 

반복문 (무한 루프)

while True:

while True:를 사용하면 블록이 무한 루프로 실행되도록 할 수 있습니다. if와 마찬가지로 블록은 4칸 들여쓰기 해야 합니다. 다음은 무한 루프에서 변수 num의 값을 표시하는 예입니다. sleep함수로 1초를 지정했기 때문에 1초마다 표시됩니다. 블록의 끝에서 num값이 증가하므로 점차적으로 숫자가 증가합니다. 무한 루프이므로 무한 반복되어 프로그램이 종료되지 않습니다. 터미널에서 Ctrl+ C키로 강제 종료해야 합니다.

Import time
 
num  = 0 
while True : 
    print ( num )
    time . sleep ( 1 )
    num  =  num  + 1 

 

break

무한 루프에서 벗어나는 break도 자주 사용됩니다. 다음은 if를 사용하여 num의 값이 5이상이 되면 루프를 빠져 나가 프로그램을 종료하는 예입니다. 결과는 0~6까지 7번 print하고 종료됩니다. 0~5까지만 출력하고 싶다면 어떻게 고쳐야 할지 곰곰이 잘 생각해보시기 바랍니다. 

Import  time
 
num  = 0 
while True : 
    print ( num )
    time . sleep ( 1 )
    if  num  >= 5 : 
        break
    num  =  num  + 1 

 

continue

continue는 이후의 블록을 건너뛰고 블록의 맨 위로 되돌아가라는 의미입니다. 아래의 이전 프로그램 break을 continue변경한 예입니다. num가 5 이상이 되면 증분 부분이 스킵되어 처리를 반복합니다.

Import  time
 
num  = 0 
while True : 
    print ( num )
    time . sleep ( 1 )
    if  num  >= 5 : 
        continue
    num  =  num  + 1 
 

반복 (요소 추출)

다음에 소개하는 for도 while과 마찬가지로 반복 구문입니다만 주로 무한 루프 이외의 용도로도 사용합니다. 대상에서 요소를 하나씩 꺼내고 없어지면 종료한다는 의미입니다.

for 변수 이름 in 목록 이름

리스트로부터 순서대로 값을 꺼내 변수에 대입해, 블록부의 처리를 반복합니다.

fruits  = [ ' apple ' , ' orange ' , ' banana ' ]   
 
for  x  in  fruits:
  print ( x )

for 변수 이름 in range(n)

0~ n-1까지의 값을 변수에 대입해 블록부의 처리를 반복합니다. 예를 들어 5회 반복 처리를 하고 싶을 때는, 다음과 같은 코드가 됩니다.

for  num  in range ( 5 ) : 
  print ( num )

range(5)는, 0, 1, 2, 3, 4 라고 하는 요소로 구성되어 있어, 거기로부터 1개씩 꺼내어 쓴다고 생각하면 됩니다.

 

728x90
반응형

관련글 더보기

댓글 영역