본문 바로가기

MicroPython

Chapter 2 MicroPython 프로그래밍 - (4)

Loop 반복문과 코드 들여쓰기

Thonny 툴바에서 New 아이콘을 클릭하여 새 파일을 작성합니다.

 

print("Loop starting!")
for i in range(10):
	print("Loop number", i)
print("Loop finished!")

스크립트 영역에서 위와 같은 반복문을 입력합니다. for loop 내에서 반복하고자 하는 스크립트는 tab버튼으로 들여쓰기를 해주어야 합니다.

 

실행 버튼을 클릭하고 저장소는 피코를 선택한 뒤, 파일 이름은 Indentation.py로 입력하여 저장합니다.

10번 반복

Shell 영역에서 Loop 반복문이 10번 실행되며 문자열이 출력됩니다. 잘 아시겠지만 파이썬 문법에서 range(10)은 0부터 9까지 10의 길이를 가진 리스트 [0,1,2,3,4,5,6,7,8,9]를 반환하며 i 자리에 각 요소가 대치되며 반복됩니다.

 

import utime
print("Loop starting!")
while True:
	print("Loop running!")
	utime.sleep(1)
print("Loop finished!")

while True 구문을 사용하여 무한 반복할 수 있습니다. 반복되는 속도가 매우 빠르기 때문에 끝에 utime.sleep(1)을 넣어서 한번 반복될 때마다 1초간 대기(sleep)하도록 하였습니다.

무한 반복

실행버튼을 클릭하면 1초 간격으로 Loop running! 문자열이 출력되며 무한 반복되는 것을 볼 수 있습니다.

툴바의 STOP 버튼 클릭하여 현재 동작되는 스크립트를 정지시킬 수 있습니다.


조건문과 변수

반복문을 제어하기 위해서 변수를 사용할 수 있습니다.

user_name = input ("What is your name? ")
if user_name == "Clark Kent":
	print("You are Superman!")
else:
	print("You are not Superman!")

우선, 위의 코드처럼 사용자로부터 이름을 입력받아 user_name이라는 변수에 저장합니다. 이후 user_name과 "Clark Kent" 문자열을 비교하여 조건에 따라 출력이 달라지도록 코드를 작성해 봅니다.

 

Shell 영역에 "Clark Kent"라고 입력하면 "You are Superman!"이 출력됩니다.

 

"==" 비교 연산자는 문자열끼리 서로 같은지 비교할 때 사용이 되며 숫자끼리 비교할 때는 ">=", "<="와 같이 대소 여부를 판단하는 연산자를 사용할 수 있습니다.

"!=" 연산자는 서로 다른지 비교할 때 사용이 됩니다. 문자, 숫자 모두 사용이 됩니다.

 

user_name = input ("What is your name? ")
while user_name != "Clark Kent":
	print("You are not Superman - try again!")
	user_name = input ("What is your name? ")
print("You are Superman!")

 

위의 코드는 입력값이 "Clark Kent"와 다른지 비교하여

다를 경우("!=") "You are not Superman"을 출력하고 이름을 다시 입력받아 그 문자열이 Clark Kent와 다르면 무한히 반복하는 코드 입니다.

"Clark Kent"라고 정확하게 입력해야만 무한 반복문을 탈출할 수 있습니다.