새소식

Programming/Python

[Python] Python Functions & Karel

  • -

파이썬 함수와 카렐

[파이썬 함수 정의 및 호출]

오늘 첫 번째로 배울 개념은 함수(functions)이다.

 

우리는 지금까지 파이썬 내장 함수인 len(), int(), print() 등을 사용해왔다.

 

하지만 만약 우리가 직접 함수를 만들고 싶다면 어떻게 해야할까?

 

우리가 직접 함수를 만들고 싶다면먼저 def라는 키워드로 시작한다. (define)

 

def 키워드 다음에 함수 이름을 지정할 수 있다.

 

이때 변수를 함수와 구분하는 것은 괄호이다.

 

따라서 이름 다음에 괄호가 따라온다.

 

그리고 마지막으로 함수 정의의 마무리는 콜론(:)이다.그 이유는 콜론은 그 줄 뒤에 오는 모든 것과 들여쓰기 된 것이 함수에 속한다는 것을 말해준다.

def my_function():

함수 만들기 정리

1. def 키워드로 시작

2. def 키워드 다음에 함수 이름 지정

3. 함수 이름 옆 괄호 쓰기

4. 괄호 옆에 콜론으로 마무리하기

 

def my_function():
    print("Hello")
    print("Bye")

 

이렇게 코드를 작성한 후, 실행을 시키면 어떤 일이 벌어질까?

Hello

Bye가 출력될까?

 

출력될 거라는 예상과 달리, 코드를 실행해도 아무일도 일어나지 않는다.

 

그 이유는 아직 함수를 실행하지 않았기 때문이다.

 

우리는 많은 함수를 미리 정의할 수 있으며 필요할 때만 이를 실행한다.

 

이를 실행하려면(Triger),

(또는 프로그래밍 용어로는 함수를 호출한다고 한다.)

우리가 해야 할 일은 함수 이름은 my_function을 입력하고 괄호와 필요한 입력값을 추가하는 것이다.

 

우리의 경우 함수가 입력값을 필요로 하지 않으므로 괄호를 비워 두면 된다.

1. def my_function():
2.    print("Hello")
3.    print("Bye")
4.
5. my_function()

이제 다시 코드를 실행하면

 

컴퓨터가 5번 줄에 도달할 때 my_function이라는 것을 찾게 된다.

 

컴퓨터는 여기 첫 번째 줄에서 정의된 것을 확인하고 모든 내용을 순차적으로 살핀 다음,

한 줄씩 실행한다.

그래서 Hello와 Bye가 출력되는 것이다.

 

요약하면 아래가 파이썬에서 함수를 만드는 방법이다.

# Defining Functions

def my_functions():
	#Do this
    #Then do this
    #Finally do this

여기에는 두 가지 단계가 있다.

 

첫 번째 단계는 실제로 함수가 무엇을 해야 하는지 지정(Defining)하는 것이다.

 

이를 위해 먼저 def 키워드를 사용한다.

그리고 함수에 이름을 지정한다.

그 다음에는 괄호와 콜론이 온다.

그리고 나서 이 함수에 포함될 코드 줄을 작성한다.

 

다음 단계는 실제로 함수를 사용하는 것이다.

프로그래밍 용어로는 함수를 호출(Calling)한다고 한다.

 

함수를 호출하려면 이름과 괄호를 지정하면 된다.

컴퓨터가 이 줄을 보게 되면,

함수 내부에 정의된 모든 지시 사항을 실행해야 한다는 것을 알게 된다.

 

아래 링크로 가서 로봇을 플래그까지 이동하는 코드를 만들어보자.

https://reeborg.ca/reeborg.html?lang=en&mode=python&menu=worlds%2Fmenus%2Freeborg_intro_en.json&name=Hurdle%201&url=worlds%2Ftutorial_en%2Fhurdle1.json

 

Reeborg's World

 

reeborg.ca

 

[내가 생각한 방법]



[while 반복문]

while 반복문의 구문은 아래와 같다.

while something_is_true
	#Do something repeatedly

 

while 반복문은 특정 조건이 참일 경우 반복문 내부로 들어가 무언가를 반복하게 된다.

그리고 해당 조건이 거짓이 될 때만 반복이 중단된다

.

while문은 while이라는 키워드가 오고 이어서 테스트할 조건문이 붙는다.

 

조건이 참일 때만 while 반복문 안에 있는 들여쓰기 된 코드들을 살펴보고,

해당 코드들을 한 줄씩 차례로 수행하게 된다.

#While Loop
while something_is_true:
    #Do this
    #Then do this
    #Then do this

그러다 while문의 마지막 구문에 이르면 다시 처음으로 돌아와 이 조건을 다시 테스트한다.

 

조건이 여전히 참이라면 계속해서 명령문을 반복 수행하다가

조건이 거짓이 되는 시점에 while문을 빠져나가게 된다.


다시 로봇을 조종하며 while문을 이해해보자.

https://reeborg.ca/reeborg.html?lang=en&mode=python&menu=worlds%2Fmenus%2Freeborg_intro_en.json&name=Hurdle%202&url=worlds%2Ftutorial_en%2Fhurdle2.json

 

Reeborg's World

 

reeborg.ca

[내가 생각한 방법]


while문은 for문에 비해 약간의 위험성이 있다.

 

왜냐하면 for문은 실행 횟수를 사전에 설정해두기 때문에

1번 같은 경우 리스트가 끝나면 실행이 중단되고,

2번의 경우는 범위의 상한선에 이르면 중단되지만

#For

for item in list_of_items:
	#Do something to each item

for number in range(a, b):
	print(number)

 

while문의 경우 특정 조건이 거짓으로 전환될 때까지 계속 실행되기 때문에

#Whlie Loop

while something_is_true:
	#Do this
    #Then do this
    #Then do this

만약 조건이 거짓이 되지 않는다면 소위 무한 반복문이라 불리는 반복문이 된다.

 

예를 들어 어떤 while문의 조건이 5가 3보다 큰 경우 아래 세 구문을 실행하는 것이라면

5가 3보다 크다는 것은 영원한 진리이기 때문에 이 코드 또한 영원히 실행된다는 의미가 된다.

while 5 > 3:
	print("5는 3보다 크다")

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.