범위(range)
- 매개변수에 숫자를 한 개 넣는 방법:
- 0부터 A-1까지의 정수로 범위를 만드는 것?
- range(A) -> A는 숫자
- 매개변수에 숫자를 두 개 넣는 방법:
- A 부터 B-1까지의 정수로 범위를 만드는 것?
- range(A, B) ->A와 B는 숫자
- 매개변수에 숫자를 세 개 넣는 방법:
- 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))
#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)
점점 갈수록 복잡하고 어려워진다..
분명 쉬워보이는데 어려움.. ㅠ
'Data Analysis > Python_Grammar' 카테고리의 다른 글
[혼공파] 함수 만들기 (0) | 2022.02.20 |
---|---|
[혼공파] 문자열, 리스트, 딕셔너리와 관련된 기본 함수 (0) | 2022.02.19 |
[혼공파]: 딕셔너리와 반복문 (0) | 2022.01.19 |
[혼공파]: 리스트와 반복문 (0) | 2022.01.17 |
[혼공파]: if ~ else와 elif 구문 (0) | 2022.01.11 |