Python 언어를 사용하면 루프 본문 내에 다른 루프를 삽입할 수 있습니다.
Python for 루프 중첩 구문:
iteration_var의 순서:
iteration_var의 순서:
문
문
Python while 루프 중첩 구문:
while 표현식:
while 표현식:
문
문
루프 본문 내에 다른 루프 본문을 포함할 수 있습니다. 예를 들어 while 루프 내에 for 루프를 포함할 수 있으며, 반대로 for 루프 내에 while 루프를 포함할 수 있습니다.
예:
1. 첫 번째 목록에서 한 번에 하나의 항목을 가져오고 두 번째 목록에서 한 번에 하나의 항목을 가져와서 새 목록에 포함합니다. 모든 조합
List1 = ['zi', 'qiang', 'xue', 'tang']
List2 = [1, 2]
new_list = []
List1의 m:
List2의 n:
new_list.append([m, n])
new_list 인쇄
결과:
[['zi', 1], ['zi', 2], ['qiang', 1], ['qiang', 2], ['xue ', 1], ['xue', 2], ['tang', 1], ['tang', 2]]
2. 목록에서 한 번에 두 개를 선택하여 모든 조합을 찾습니다
목록 = [1, 2, 3, 4, 5 ]
length = len(List)
for x in range(0, length-1):
for y in range(x+ 1, length) :
목록[x], 목록[y]
인쇄 결과:
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
3. 다음 예에서는 중첩 루프를 사용하여 2와 20 사이의 소수를 출력합니다.
분석: 숫자 n의 경우 1에서 n ** 0.5(근 n )가 나누어지면 n은 소수이다.
3.1 구현에 사용
# -*- 코딩: utf-8 -*-
n = 20
범위(1, n)에 있는 i의 경우:
범위(2, int(i**0.5))에 있는 j의 경우:
if i % j == 0:
break
else:
i를 인쇄하면 '소수'입니다.
3.2 while을 사용하여 구현
#!/usr/bin/python
# -* - 코딩: utf-8 -*-
i = 2
while(i < 20):
j = 2
while(j <= (i/j)):
if not(i%j): # 또는 정수 나누기를 의미하는 경우 i % j == 0이라고 씁니다.
break
j = j + 1
if (j > i/j):
print i, "is a prime number"
i = i + 1
print "Good bye!"
설명: i % j는 i를 j 이후의 나머지로 나눈 값입니다. 숫자의 경우 0에 해당하는 Boolean 값은 false이고, 그 외의 값은 true가 된다. not(i%j)는 i%j가 0일 때만 조건이 성립할 수 있다는 뜻으로, 균등하게 나눌 수 있다는 뜻이다.
위 예시 출력 결과:
2는 소수입니다
3은 소수입니다
5는 소수
7은 소수
11은 소수
13은 소수
17은 소수 번호
안녕하세요!