-
35 - 범위와 반복문study with Q - 파이썬 2024. 4. 15. 19:27
#범위
: 특정한 범위 내부의 정수들을 나열하는 자료형
: range()함수를 이용해서 만듦: 매개변수에 숫자 1,2,3개를 넣어서 사용
- 매개변수에 숫자 1개를 넣는 방법 range(A)
- 0부터 A까지의 정수를 범위로 나열
- A는 포함하지 않는다
- 매개변수에 숫자 2개를 넣는 방법 range(A, B)
- A부터 B까지의 정수를 범위로 나열
- B는 포함하지 않는다
- 매개변수에 숫자 3개를 넣는 방법 range(A, B, C)
- A부터 B까지의 정수를 범위로 나열
- B는 포함하지 않는다
- C만큼 건너뛰면서 범위를 생성
예시)
- 매개변수에 숫자 1개
range(5) print(list(range(5))) >>> [0, 1, 2, 3, 4]
- 매개변수에 숫자 2개
print(list(range(10,20))) >>> [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
범위를 변수에 넣지 않아도 바로 출력될 수 있구만
- 매개변수에 숫자 3개
print(list(range(0,20,2))) >>> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
어 이거... 사용하면...더보기#범위를 이용하여 50보다 작은 3의 배수, 40보다 작은 4의 배수, 100보다 작은 17의 배수를 구할 수도 있겠군. thr = list(range(0,50,3)) thr.remove(0) print(thr) fo = list(range(0,40,4)) fo.pop(0) print(fo) svt = list(range(0,100,17)) del svt[0] print(svt) >>> [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48] [4, 8, 12, 16, 20, 24, 28, 32, 36] [17, 34, 51, 68, 85]
#반복문과 같이 사용하기
for i in range(8): print(f"{i}번째입니다.") >>> 0번째입니다. 1번째입니다. 2번째입니다. 3번째입니다. 4번째입니다. 5번째입니다. 6번째입니다. 7번째입니다.
#범위 강조하기
: 위의 코드에서도 range 안에 8을 넣었는데 7번째까지 나오는 것처럼 범위를 강조하기 위해 코드를 이렇게 +1로 작성하기도 합니다
for i in range(7+1): print(f"{i}번째입니다.") >>> 0번째입니다. 1번째입니다. 2번째입니다. 3번째입니다. 4번째입니다. 5번째입니다. 6번째입니다. 7번째입니다.
추가적으로...
더보기*매개변수로 나누기 연산자를 사용한 경우 오류가 발생함. range 함수의 매개변수로는 반드시 정수를 입력해야하기 때문에
n = 10 a = list(range(0, n/2)) print(a) >>> Traceback (most recent call last): File "./prog.py", line 3, in <module> TypeError: 'float' object cannot be interpreted as an integer
** 그래서 정수 나누기 연산자를 사용함. (int() 함수로 바꾸는 것보다 정수 나누기 연산자를 더 많이 사용!)
n = 10 a = list(range(0, n//2)) print(a) >>> [0, 1, 2, 3, 4]
#범위로 반복문 구분
- 특정 횟수 만큼 반복할 때 : 매개변수 1개를 사용
for i in range(n)
print("문자열")
>>> "문자열의 내용을 n번 반복해서 출력
for i in range(3): print("독도는 국제법적으로도 대한민국의 고유 영토입니다.") >>> 독도는 국제법적으로도 대한민국의 고유 영토입니다. 독도는 국제법적으로도 대한민국의 고유 영토입니다. 독도는 국제법적으로도 대한민국의 고유 영토입니다.
- 반복 변수를 사용하는 경우 : 매개변수 2개를 사용
for i in range(3, 5+1): print(f"{i}번째입니다.") >>> 3번째입니다. 4번째입니다. 5번째입니다.
※ 뒤의 range(A, B)에서 A≥B 일 경우, 오류가 발생하지 않고 그냥 아무 값도 출력되지 않는다..!- 반대로 반복하는 경우 : 매개변수 3개를 사용
해도 되긴 한데, reversed()함수를 조합하는 경우가 많아서 거의 안쓰임
for i in range(3, 0-1, -1): print(f"{i}번째입니다.") >>> 3번째입니다. 2번째입니다. 1번째입니다. 0번째입니다.
강조를 사용해서 3부터 0까지 -1씩 반복하는 코드
#반복 변수 _(underscore)
파이썬에서는 _를 식별자로 쓸 수 있기 때문에 이렇게 사용하기도 함. 과거의 파이썬은 반복문에서 반복 변수를 사용하지 않을 경우 _를 식별자로 쓰는 것을 추천했기 때문에 이런 코드가 나올 수 있음
for _ in range(7): print("테스트입니다.") >>> 테스트입니다. 테스트입니다. 테스트입니다. 테스트입니다. 테스트입니다. 테스트입니다. 테스트입니다.
'study with Q - 파이썬' 카테고리의 다른 글
37 - 백준 온라인 저지에서 여러 줄 입력 받기 - 추가문풀 필요 (0) 2024.04.22 36 - 수열의 일반항과 점화식, 등차 수열, 피보나치 수열 - 추가 문제 풀기 (0) 2024.04.16 34 - 딕셔너리 확인문제 (0) 2024.04.10 33 - 딕셔너리 요소 변경 / 추가 / 제거 (0) 2024.04.10 32- 딕셔너리와 반복문 (0) 2024.04.09 - 매개변수에 숫자 1개를 넣는 방법 range(A)