범위(Range)
리스트, 딕셔너리 외에 for 반복문과 함께 많이 사용되는 범위(range) 자료형의 사용법에 대해 알아보자.
- 매개 변수에 숫자 한개를 넣는 방법
- range(A) # A는 숫자
- 0부터 A-1까지의 정수로 범위를 지정한다.
- 매개변수에 숫자 두개를 넣는 방법
- range(A,B) # A,B는 숫자
- A부터 B-1까지의 정수로 범위를 지정한다.
- 매개변수에 숫자 세개를 넣는 방법
- range(A,B,C) #A,B,C는 숫자
- A부터 B-1까지 정수로 범위를 지정하되, 앞 뒤의 숫자가 C만큼 차이가 발생된다.
이 때 range()하뭇의 매개변수로는 반드시 '정수'를 입력해야한다.
만약 다른 데이터 타입이 매개변수로 입력되면 TypeError가 발생됨에 유의하자.
for 반복문:범위와 함께 사용하기
for반복문과 범위를 조합하면 아래와 같은 형태로 사용할 수 있다.
for 숫자 변수 in 범위:
반복할 코드
for반복문: 리스트와 범위 조합하기
리스트와 범위를 조합하여 '몇번째 반복'중인지를 출력하는 예제를 확인해보자.
array = [273,32,103,57,52]
for i in range(len(array)):
print("{}번째 반복: {}".format(i, array[i]))
for 반복문: 반대로 반복하기
프로그래밍을 하다보면 반복변수가 큰숫자에서 작은숫자로 반복문을 적용해야하는 경우가 있다.
이를 역반복문이라고 하는데, 역반복문을 사용하는 두가지 방법을 알아보자.
# range()를 이용하는 방법
for i in range(4, 0-1, -1):
print("현재 반복 변수: {}".format(i))
# reversed()를 이용하는 방법
for i in reversed(range(5)):
print("현재 반복 변수: {}".format(i))
위의 코드를 출력하면 좌측과 같이
반복변수가 큰숫자에서 작은숫자로 반복되어 출력되는 것을 확인할 수 있다.
이 때 range()함수의 매개변수에 '0-1;이라는 수식을 넣었는데, 코드 상 '-1'로 입력해도 무방하다.
다만, "0까지 반복하고 싶다"라는 부분을 강조 표현하기 위해 위와 같이 입력함을 참고하자.
중첩 반복문으로 피라미드 만들기
output = ""
for i in range(1,10):
for j in range(0,i):
output += "*"
output += "\n"
print(output)
## 문자열 * 연산자를 이용해 피라미드 만들기
output = ""
for i in range(1,10):
output += ("*" * i)
output += ("\n")
print(output)
output = ""
for i in range(1,15):
for j in range(14,i,-1): # 1회차) 좌측에 14개의 공백 생성
output += " " # 2회차) 좌측에 13개의 공백 생성 ...
for k in range(0,2*i-1): # 1회차) 1개의 * 생성
output += "*" # 2회차) 3개의 * 생성(2*2-1)
output += "\n"
print(output)
while 반복문
while 반복문은 <불표현식>이 참인 동안 문장을 계속 반복한다.
while 불 표현식:
반복할 문장
만약 불 표현식에 <True>를 넣으면 무한 반복이 되며 일부러 멈추지 않는 이상 프로그램이 종료되지 않는다.
만약 개발 중 먹통이 발생하면 Ctrl + C를 눌러 강제종료할 수 있다.
while 반복문: for 반복문처럼 사용하기
i=0
while i < 10 :
print("{}번째 반복입니다.".format(i))
i += 1
무한반복을 실행해야하거나 조건을 활용해서 반복을 사용해야한다면 for 반복문 보다는 while 반복문을 사용하는게 좋다.
while 반복문: 상태를 기반으로 반복하기
list_test = [1,2,1,2]
value = 2
while value in list_test:
list_test.remove(value)
print(list_test)
remove()함수는 리스트 내부에 해당하는 값을 하나만 제거할 수 있다.
이 때 while 반복문을 활용하면 '리스트 내부에 요소가 있는 동안' remove() 함수를 반복하여 실행하여 여러 요소를 제거할 수도 있다.
while 반복문 : 시간을 기반으로 반복하기
import time
number = 0
target_tick = time.time()+5
while time.time() < target_tick:
number+= 1
print("5초동안 {}번 반복했습니다.".format(number))
유닉스타임(Unix Time)이란 세계표준시(UTC)로 1970년 1월1일0시0분0초를 기준으로 몇초가 지났는지를 정수로 나타낸 것이다.
유닉스 타임을 구하기 위해서는 먼저 시간과 관련된 기능을 가져오고(import time) time.time() 을 실행하면 유닉스 타임을 구할 수 있다.
이 유닉스 타임과 반복문을 활용하면 특정 시간동안 프로그램을 정지/실행 시킬 수 있다.
while 반복문 : break 키워드 / continue 키워드
break와 continue는 반복문 내부에서만 사용할 수 있는 특수한 키워드다.
i = 0
while True:
print("{}번째 반복문입니다.".format(i))
i=i+1
input_text = input("> 종료하시겠습니까?(y/n): ")
if input_text in ["y", "Y"]:
print("반복을 종료합니다.")
break
break는 반복문을 벗어날 때 사용하는 키워드로, 주로 무한 반복문을 만들고 내부 반복을 벗어날 때 사용한다.
numbers = [5,15,6,20,7,25]
for number in numbers:
if number<10:
continue
print(number)
continue는 현재 반복을 생략하고 다음 반복으로 넘어갈 때 사용하는 키워드이다.
위 코드는 continue를 사용하지 않고, if else 구문으로 표현할 수도 있지만 continue 키워드를 사용하면 이후 처리의 들여쓰기를 하나 줄일 수 있다.
'Spec UP - Backend > 혼자 공부하는 파이썬' 카테고리의 다른 글
chapter_05-1. 함수 만들기 (0) | 2023.10.27 |
---|---|
chap_04-4. 문자열, 리스트, 딕셔너리와 관련된 기본 함수 (0) | 2023.10.26 |
chap_04. 반복문 (0) | 2023.09.14 |
chap_03. 조건문 (0) | 2023.08.31 |
chap_02. 숫자와 문자열의 다양한 기능 (0) | 2023.07.31 |
댓글