자기계발/Python

[Python] 기본9. range()와 while 반복문

호등 2022. 3. 2. 20:14
반응형

for 반복문과 함께 많이 사용되는 자료형 range를 사용하는 방법은 세 개이다.
range( )의 괄호 안에 넣는 매개변수 개수에 따라 다양하게 사용할 수 있다.


범위

a = range(5) #0부터 (5-1)까지 정수로 범위를 만든다. b = range(6,10) #6부터 (10-1)까지의 정수로 범위를 만든다 #10을 반드시 포함해야 한다면 range(6, 10 + 1)로 강조하여 표현할 수 있다. c = range(0,10,2) #0부터 2씩 증가하면서 (10-1)까지의 정수로 범위를 만든다 print(list(range(5))) #출력결과 : [0, 1, 2, 3, 4] print(list(range(6,10))) #출력결과 : [6, 7, 8, 9] print(list(range(0,10,2))) #출력결과 : [0, 2, 4, 6, 8]

range( )를 범위 자료형이라고 부른다.
range( )안에 매개변수는 1개부터 3개까지 들어갈 수 있다.
매개변수별 결과 예시는 위 코드 확인하면 됨

매개변수로는 반드시 정수를 입력해야한다.
따라서 int( )함수로 실수를 정수로 바꾸거나 정수 나누기 연산자를 넣어 사용할 수도 있다.
(많이 사용하는건 정수 나누기 연산자( // )라고 함)


for( ) 반복문과 함께 사용한 범위

for i in range(0,10,2): print(str(i) + "=반복 변수")

위 코드 보고 이렇게도 사용할 수 있다고 알고 넘어가면 될 듯 하다.

for( ) 반복문 : 리스트와 범위 조합

array = ["문자열", 45, True, False, 521, "STRING"] for i in range(len(array)): print("{}번째 반복 : {}".format(i, array[i]))

몇 번째 반복인지 알게 하기 위해 리스트와 범위를 조합하여 작성한 코드이다.

for i in array:
□□□□ print("{}번째 반복 : {}".format(i, array[i])) 라고 작성하는 어처구니 없는 실수를 했다.
인덱스에는 정수가 들어가야하는데 array의 요소에는 다양한 값이 들어가니까 이렇게 쓰면 안된다.


for( ) 반복문 : 반대로 반복

# 반대로 출력하기 1 for i in range(4, 0-1, -1): print("현재 반복 변수: {}".format(i)) # 반대로 출력하기 2 for i in reversed(range(5)): print("현재 반복 변수: {}".format(i))

for 반복문을 사용해서 반대로 출력하기 1


range( )함수에 매개변수 세 개를 사용하여 반대로 출력한 경우이다.
0까지 출력한다는 것을 강조하기 위해 두번째 매개변수를 0 - 1로 표현하였다.

for 반복문을 사용해서 반대로 출력하기 2

range( )함수를 reversed( )함수로 감싸 반대로 출력이 가능하다.
reversed( )함수는 주의 사항이 굉장히 많은 함수라고 한다. (내가 생각한대로 출력이 안되는 경우 多)


while 반복문

while 반복문으로 무한루프에 빠졌을때 강제로 종료하기 : Ctrl + C

list_test = [1, 2, 1, 2] value = 2 while value in list_test: #list에 value가 있는 동안 반복해라 list_test.remove(value) #수행하는 문장은 리스트에 있는 value값 삭제 print(list_test)

전에 리스트를 공부할 때 remove( )함수를 사용하면 값을 하나씩만 제거할 수 있었다.
while 반복문을 활용하면 위 코드와 같이 리스트 안에 여러 요소를 삭제할 수 있다.


특정 시간동안 반복하는 코드

import time #time모듈 사용 number = 0 target_tick = time.time() + 5 #유닉스타임보다 5초 큰 수를 만들어준다. while time.time() < target_tick: #유닉스타임이 유닉스타임보다 5초이상 커질때까지 반복 number += 1 print("5초 동안 {}번 반복했습니다".format(number))

유닉스 타임(Unix Time)
: 세계 표준시로 1970년 1월 1일 0시 0분 0초를 기준으로 몇 초가 지났는지 정수로 나타낸 것.

유닉스타임을 활용하여 특정 시간동안 다른 사용자의 응답을 기다릴 수 있다.

break와 continue 키워드

break는 반복문을 빠져나올때 사용하고 continue는 다음 반복으로 넘어갈 때 사용한다.
continue로 조건을 잘 걸면 들여쓰기 하나를 줄여서 쓸 수 있다. (가독성(?), 프로그래밍 스타일(?) 차이인건가!)

반응형