English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Python for 루프는 목록이나 문자열과 같은 시퀀스의 항목을 순회할 수 있습니다.
Python에서 for 루프는 시퀀스(list،tuple،string) 또는 다른 이터레이블 객체. 시퀀스에서 이터레이션을 진행하는 것을 순회라고 합니다.
for val in sequence: for 루프의 본문
이곳에서 val은 각 반복에서 시퀀스 내 항목 값을 가져오는 변수입니다.
루프는 시퀀스의 마지막 항목에 도달할 때까지 계속됩니다. for 루프의 주체를 나머지 코드와 구분하기 위해 인덱싱을 사용합니다.
#프로그램은 목록에 저장된 모든 숫자의 합을 찾습니다 #숫자 목록 numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # 총 합을 저장하는 변수 sum = 0 # 리스트를 순회합니다 for val in numbers: sum = sum+val print("총 합은", sum)
프로그램을 실행할 때, 출력은 다음과 같습니다:
총 합은 48
range() 함수를 사용하여 숫자 시퀀스를 생성할 수 있습니다. range(10)은 0에서9의 숫자 사이의 숫자(10개 숫자).
또한 시작, 종료, 단계를 range(start, stop, step_size)로 정의할 수 있습니다. 제공되지 않으면, step_size는 기본적으로1.
range 객체는 우리가 그것을 생성할 때 그것이 '포함'하는 모든 숫자를 생성하지 않기 때문에 일정한 의미에서 '불활성'입니다. 하지만 이는 이터레이터가 아니며, in, len, getitem 연산을 지원합니다.
이 함수는 모든 값을 메모리에 저장하지 않기 때문에 비효율적입니다. 따라서, 시작, 종료, 단계를 기억하고 실행 중에 다음 숫자를 생성합니다.
모든 항목을 출력하도록 함수를 강제할 수 있습니다. list() 함수를 사용할 수 있습니다.
이 예제에서 이 점을 보여줍니다.
print(range(10)) print(list(range(10)) print(list(range(2, 8)) print(list(range(2, 20, 3))
출력 결과
range(0, 10] ) 1, 2, 3, 4, 5, 6, 7, 8, 9] [0,2, 3, 4, 5, 6, 7] [0,2, 5, 8, 11, 14, 17]
[
we can use the range() function in the for loop to iterate over a sequence of numbers. It can be combined with the len() function to iterate over a sequence by index. Here is an example. # 인덱스로 목록을 탐색하는 프로그램 genre = ['pop', 'rock', 'jazz'] # 인덱스로 목록을 탐색하는 프로그램 for i in range(len(genre)):
프로그램을 실행하면 다음과 같은 출력이 됩니다:
print("I like", genre[i]) I like pop I like rock
else 블록을 가진 for 루프
for 루프에서 사용하는 시퀀스의 항목이 다 빠진 경우 else 부분을 실행합니다.
break 키워드는 for 루프를 중단할 수 있습니다. 이 경우 else 부분은 무시됩니다.
따라서 중단이 발생하지 않았다면 for 루프의 else 부분을 실행합니다.
이것은 이를 설명하는 예제입니다.
digits = [0, 1, 5] for i in digits: print(i) else: print("남은 항목이 없습니다.")
프로그램을 실행하면 다음과 같은 출력이 됩니다:
0 1 5 남은 항목이 없습니다.
여기서 for 루프는 목록의 항목을 출력할 것이며, 루프가 다 끝나면 else 코드 블록을 실행하고 "남은 항목이 없습니다.
for...else 문은 break 키워드와 함께 사용할 수 있으며, break 키워드가 실행되지 않았을 때에만 else 블록을 실행합니다. 예를 들어:
# 학생 성적을 표시하는 프로그램 student_name = 'Soyuj' marks = {'James': 90, 'Jules': 55, 'Arthur': 77} for student in marks: if student == student_name: print(marks[student]) break else: print('이 이름의 항목을 찾을 수 없습니다.')
출력 결과
이 이름의 항목을 찾을 수 없습니다.