일반화의 또 다른 예로 6세또는 6개의 테이블뿐만 아니라 모든 크기의 곱셈 테이블을 인쇄하는 프로그램을 원한다고 가정해 보겠습니다. print_mult_table에 매개 변수를 추가할 수 있습니다: 예를 들어 제곱근을 계산하는 한 가지 방법은 뉴턴의 방법입니다. n의 제곱근을 알고 싶다고 가정해 보십니까. 거의 모든 근사치로 시작하면 다음 공식으로 더 나은 근사치를 계산할 수 있습니다: 반복제어 구조를 가르치지 않는 것은 큰 실수이며, 증거가 제시되면 두 가지를 모두 가르치려고 한다면 먼저 가르치는 것이 좋습니다. 결정은 쉬워 보인다. (2) 높은 수준의 기능의 역할 : 나는 높은 수준의 기능을 탐구하는 연구를 모른다 (카티 피슬러가 강우 문제를 이길 하는 데 사용 하는 것 들 처럼, 또는 지도/감소/필터) 재귀 및 반복 제어의 이해의 개발에 구조. 상위 수준 함수는 for/repeat/while과 같은 고정된 형식을 가지고 있지만 더 간단하고 기능적인 형식입니다. 먼저 높은 수준의 기능을 가르칠 수 있을까요, 재귀 또는 반복적 제어 구조로 이어질 수 있을까요? 아니면 높은 수준의 기능을 구현하는 두 가지 방법으로 재귀 또는 반복 제어 구조를 가르칠 수도 있습니까? (1) 블록 기반 언어의 역할 : 당신이 말했듯이, 이전 연구는 반복 적 제어 구조가 초보자를위한 구문적으로 복잡하다는 것을 발견했다. 그러나 여러 연구에 따르면 블록 기반 반복 구조는 텍스트 기반 버전보다 초보자에게 훨씬 쉽습니다. 다시 귀가-블록 반복->텍스트 반복을 진행하면 어떻게 됩니까? 더 복잡한 텍스트 기반 반복 제어 구조로의 전환을 스캐폴드할까요? 첫째, 같음은 대칭이고 할당은 그렇지 않습니다. 예를 들어 수학에서 a = 7이면 7 = a입니다.

그러나 파이썬에서 문 a = 7은 합법적이고 7 = a는 아닙니다. 이스케이프 시퀀스는 문자열의 아무 곳에나 나타날 수 있습니다. 이 예제에서는 탭 이스케이프 시퀀스가 문자열의 유일한 것입니다. 문자열에서 백슬래시를 어떻게 나타낸다고 생각하십니까? 추적은 약간 지루하고 오류가 발생하기 쉬울 수 있지만 (그래서 우리는 컴퓨터가 처음에이 작업을 수행하도록 합니다!), 그러나 프로그래머가 가지고있는 필수 기술입니다. 이 추적을 통해 코드 작동 방식에 대해 많은 것을 배울 수 있습니다. 예를 들어 n이 2의 전원이 되는 즉시 프로그램이 루프 본체의 log2(n) 실행을 완료해야 한다는 것을 관찰할 수 있습니다. 또한 최종 1이 출력으로 인쇄되지 않음을 알 수 있습니다. 그러나 게으른 경우, 당신은 아마 몇 가지 트릭을 학습하여 속임수. 예를 들어 n과 9의 곱을 찾으려면 n – 1을 첫 번째 숫자로, 10 – n을 두 번째 숫자로 쓸 수 있습니다.