(파이썬) 루프. 카운터가 있는 루프 - for


루프

"Hello"라는 단어를 표시해야 하는 상황을 상상해 보십시오. 10번. 어떻게 해야 할까요?
print("Hello") 명령을 10회 받아 쓸 수 있습니다. <예비> print("안녕하세요") print("안녕하세요") print("안녕하세요") print("안녕하세요") print("안녕하세요") print("안녕하세요") print("안녕하세요") print("안녕하세요") print("안녕하세요") print("안녕하세요")
하지만 10번이 아니라 20, 30, 40번이 필요하다면? 그리고 200번이면? 이 경우 복사하는 데 시간이 오래 걸립니다. 그리고 사용자가 화면에 정보를 표시해야 하는 횟수를 직접 선택할 수 있어야 한다면? 

특별한 구조가 이 작업에 대처하는 데 도움이 될 것입니다. 이를 루프라고 합니다.
 
루프 - 특정 명령 시퀀스가 ​​여러 번 반복되는 알고리즘 구조입니다.< /사업부>
대부분의 프로그래밍 언어에는 변수가 있는 루프(for)와 조건이 있는 루프(while)의 두 가지 유형의 루프가 있습니다.
첫 번째 유형의 사이클부터 시작하겠습니다.
 

변수 또는 알려진 단계 수를 사용하여 루프(loop for)

어떤 행동의 반복 횟수를 알고 있거나 우리에게 알려진 데이터를 사용하여 반복 횟수를 계산할 수 있는 경우가 종종 있습니다. 일부 프로그래밍 언어에는 명령에 의해 러시아어로 작성된 명령이 있습니다.
REPEAT(반복 횟수).

이 경우 특정 반복 횟수를 지정할 수 있습니다. 
기계 수준에서 이 주기가 어떻게 작동하는지 보는 것은 흥미롭습니다.
1. 특정 메모리 셀이 메모리에 할당되고 반복 횟수가 기록됩니다.
2. 프로그램이 루프 본문을 한 번 실행하면 이 셀(카운터)의 내용이 1씩 감소합니다.
3. 이 셀이 0이면 루프 실행이 종료됩니다.

Python에는 그러한 구성이 없지만 for가 있습니다.
  <사업부>
기억해야 합니다!
for 루프 연산자의 일반적인 형식은 다음과 같습니다. <예비> <카운트 변수> <카운터 변수의 값>에서:     # 루프 본문
1. 카운터 변수의 이름은 무엇이든 될 수 있습니다(문자 i를 더 자주 사용함)
2. 루프 본문은 루프 헤더(for)가 있는 행을 기준으로 오른쪽으로 이동하여 작성됩니다. PEP8 표준은 4칸 이동합니다.
 
"Hello"라는 단어의 출력을 작성하는 방법에 대한 예를 살펴보겠습니다. 10번.
 
예시 1
<예비> for i in range(10): # 범위 내 가변 변수 i에 대해(범위 내)   # 0 ~ 10(10은 포함되지 않음) print("Hello") # 안녕하세요를 출력합니다.   변수는 루프의 완료된 반복(단계) 카운터입니다. 이 경우 루프는 i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9에 대해 실행됩니다. 정확히 10번입니다.
같은 프로그램을 다르게 작성할 수 있습니다.
 
예시 2
<예비> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]의 i에 대해: print("안녕하세요") 예제 2에서는 루프가 필요한 변수 i의 모든 값을 나열합니다. 값이 많으면 내장 함수range()를 사용하는 것이 더 편리합니다.
 range() 함수에 의해 구축된 값의 순서는 유한합니다. 루프는 항상 종료됩니다. 

for

루프의 기능 값 시퀀스의 단계를 변경하고 처음부터 시작하지 않는 방법은 무엇입니까?  range() 함수는 기본적으로 각 다음 숫자가 이전 숫자보다 1 큰 시퀀스를 만듭니다. 다른 항목에서 range 기능을 사용할 수 있습니다.

함수 항목의 일반적인 형식은 다음과 같습니다. <예비> 범위([시작], 중지[, 단계])
  • start: 시퀀스의 시작 번호입니다.
  • stop: 지정된 숫자까지 생성하지만 해당 숫자는 포함하지 않습니다.
  • 단계: 시퀀스(단계)의 각 숫자 간의 차이
<사업부>

기억해야 합니다!
  • 모든 매개변수는 정수여야 합니다.
  • 각 매개변수는 양수 또는 음수가 될 수 있습니다.
  • range()(및 일반적으로 Python)는 인덱스 0을 기반으로 합니다. 이는 인덱스 목록이 1이 아닌 0에서 시작함을 의미합니다. 함수에 의해 생성된 마지막 정수  range() stop에 의존하지만 포함하지 않습니다. 예를 들어 range(0, 5)는 5를 포함하지 않는 정수 0, 1, 2, 3, 4를 생성합니다.


예시 1
<예비> 범위(10, 0, -1)의 i에 대해: 인쇄(i*i) 이 프로그램은 10에서 1까지의 자연수의 제곱을 내림차순으로 표시합니다.
  • 10: 시퀀스의 첫 번째 숫자입니다.
  • 0: 시퀀스의 끝 번호(이 번호는 포함하지 않음).
  • -1: 단계


예시 2
<예비> 범위(0, 101, 5)의 i에 대해: 인쇄(i) 이 프로그램은 0에서 100까지의 모든 숫자를 5씩 증가시켜 표시합니다.
  • 0: 시퀀스의 첫 번째 숫자입니다.
  • 101: 시퀀스의 끝 번호(이 번호는 포함하지 않음).
  • 5: 단계

N회 반복

우리가 지금까지 작성한 for 루프가 있는 모든 프로그램은 범용이라고 할 수 없습니다. 루프 본문의 반복 횟수는 우리가 직접 설정하기 때문입니다. 
그러나 반복 횟수가 다른 값에 따라 달라지면 어떻게 될까요? 예를 들어, 사용자 자신이 주기의 반복 횟수를 설정하기를 원합니다.
이 경우 어떻게 해야 할까요?
모든 것이 매우 간단합니다. 숫자 시작 및 종료 값 대신 사용자가 계산하거나 설정할 수 있는 모든 변수를 사용할 수 있습니다.

예를 들어 1에서 N까지 숫자의 제곱을 표시해야 합니다. 여기서 변수 N의 값은 키보드에서 입력됩니다. 사용자.
프로그램은 다음과 같습니다. <예비> N = int(input()) # 키보드에서 N 입력 for i in range(1, N+1): # 루프: 1에서 N까지의 모든 i에 대해  - 변수 i # 1에서 N까지 순차적으로 값을 취합니다.   print("square", i, "=", i*i)  # 숫자의 제곱을 출력합니다. 루프에 진입하면 대입문 i = 1이 실행된 다음 변수 i가 각 단계마다 1씩 증가합니다(i += 1 코드>). i <= N 조건이 참인 동안 루프가 실행됩니다. 루프 본문에서 유일한 출력 문은 지정된 형식에 따라 숫자 자체와 해당 사각형을 화면에 인쇄합니다.
제곱 또는 기타 낮은 지수의 경우 곱셈을 사용하는 것이 좋습니다.

프로그램을 실행하고 변수 N의 다른 값으로 작업 결과를 확인합니다.