cs

대부분 비슷한 생각을 하나봄...


범위(range)

  1. 매개변수에 숫자를 한 개 넣는 방법: 
    • 0부터 A-1까지의 정수로 범위를 만드는 것?
    • range(A) -> A는 숫자
  2. 매개변수에 숫자를 두 개 넣는 방법:
    • A 부터 B-1까지의 정수로 범위를 만드는 것?
    • range(A, B) ->A와 B는 숫자
  3. 매개변수에 숫자를 세 개 넣는 방법:
    • A 부터 B-1까지의 정수로 범위를 만드는데, 앞뒤의 숫자가 C만큼의 차이를 가짐? 
    • range(A, B, C) -> A, B, C는 숫자

(무슨말인지 잘 모르겠으니까 빨리 예제를 보자)

 

아래는 범위 이름을 입력한것이고,

a=range(5)
a

list를 사용하여 범위안에 값을 확인 가능하다

그리고 0부터 시작점이고 

# 범위에서 list함수로 어떤 값이 있는지확인 가능 

list(range(10))

 

이해가 좀 되기 시작했다, 두개를 넣으면 그 사이의 값을 가지고 올 것이고, 3개는? 

#매개변수가 두 개일때
list(range(0,5))

#매개변수가 세 개일때
list(range(0,10,3))

두개일때의 결과 값(범위의 값들을 출력해주고)
세 개일때의 결과 값( 마지막 값이, 0부터 3씩 증가한다는 뜻을 가지고 옴) 정수를 변환 

 

#10을 포함하고싶으면 이런식으로도 한다고 한다, 나같으면 그냥 11을 쓰겠지만..

a= range(0, 10+1)
list(a)

 

#이런식으로도 연산 가능
n=10
b= range(0, n//2)
list(b)

 

 

for 반복문: 범위와 함께 사용하기

for 반복문이랑 범위를 함께 사용하면 아래와 같은 형태:

  for 숫자변수 in 범위:

    코드

 

#범위에 있는 값들을 하나씩 반복해서 프린트 해줌 

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

 

for 반목문: 리스트와 범위 조합하기

#리스트가 있고
array = [273, 32, 103, 85, 52]

#리스트에 반복문을 만들고 
for element in array:
    print(element)

근데 리스트가 많아지면 알기 힘드니까 

중간에 format문으로 구분시켜준다. {}랑 같이.

#여기서 몇번째인지 알고싶으면 

for i in range(len(array)):
    print("{}번째 반복: {}".format(i, array[i]))
    
    #여기서 포맷을 써주면서 첫번째에 i를 순서로, array를 리스트를 넣어주는 그런 방식인데, 간단한데 가장 깔끔해보였다.

 

 

for 반복문: 반대로 반복하기

range를 했을때 계속 순차적으로 값이 나왔는데, 반대로도 가능하다.

#역반복
for i in range(4, 0, -1):
    print("현재 반복 변수: {}".format(i))

-1이 아닌 reversed()함수도 동일하게 역으로 반복시켜준다. 

 

#역반복 reversed

for i in reversed(range(5)):
    print("현재 반복 변수: {}".format(i))

 

 

 

while 반복문

for 반복문이 아닌 while 도 있음 

if와 비슷한데, 참인 문장(true)인것을 반복한다 

 

while 불 표현식:

    문장

#while 반복문

i=0

while i<10:
    print("{}번째 반복입니다.".format(i))
    i += 1

for이랑 while의 차이를 무한이라고 설명하긴하는데, while은 무한반복이라고 보면 되고 for은 무한반복이 안된다. 

조건을 잘 만들어서 사용해야한다. 

 

 

while 반복문: 상태를 기반으로 반복하기

지난번에 사용한 remove() 함수를 사용해서 상태를 하나 만들어보자

value에 해당하는 값은 다 제거하기 

#변수를 선언 
list_test = [1, 2, 3, 2, 1, 1, 3, 2]
value = 2

#list_test 내부에 value가 있다면 반복, 근데 제거해
while value in list_test:
    list_test.remove(value)
    
print(list_test)

 

 

while 반복문: 시간을 기반으로 반복하기

Unix Time (유닉스 타임)이라는 세계 표준시 (UTC)를 사용해보자 

-> 다른 평범한 시간이 아닌,utc 타임을 사용하는데 심지어 second로 하다니,,

 

#시간 import하고
import time

#변수선언
number = 0

#5초동안 반복
target_tick = time.time() + 5
while time.time() < target_tick:
    number += 1
    
#출력
print("5초동안 {}번 반복했습니다.".format(number))

무슨 뜻인지 좀 이해하기가 힘들긴 한데,, 시간 기반으로 조건을 걸때는 while을 사용하는 것으로 기억을 하면 될듯하다.. 

(어려운뎅)

 

 

while 반복문: break 키워드/continue 키워드

반복문 내부에서는 break, continue를 사용해서 반복문을 벗어나거나 생략하는 키워드이다.

 

 

break

#변수 선언 
i = 0

#무한 반복 
while True:
    #몇번째 반복인지 출력
    print("{}번째 반복문 입니다.".format(i))
    i=i+1
    
    #반복 종료 
    input_text = input(">종료하시겠습니까? (y/n):")
    if input_text in ["y", "Y"]:
        print("반복을 종료합니다.")
        break

역시 이번것도 어렵긴한데,  break를 통해서 마무리를 지어주는 것은 확실 

 

 

continue

#변수 선언
numbers = [5, 15, 6, 20, 7, 25]

#반복 돌리기
for number in numbers:
    #number가 10보다 작으면 다음 반복으로 넘어간다 
    if number <10:
        continue
    print(number)

 


점점 갈수록 복잡하고 어려워진다..

분명 쉬워보이는데 어려움.. ㅠ

+ Recent posts