Python에서 for 루프는 목록, 튜플, 집합, 사전 및 문자열을 포함하여 다양한 객체 및 데이터 유형을 반복하는 데 사용할 수 있습니다.
for 루프: 기본 구문은 다음과 같습니다.
for variable in sequence:
# code to execute
Example:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
Output:
apple
banana
cherry
또한 range() 함수와 함께 for 루프를 사용하여 반복할 일련의 숫자를 생성할 수 있습니다.
for i in range(5):
print(i)
Output:
0
1
2
3
4
range() 함수는 0에서 시작하여 지정된 숫자(포함되지 않음)까지 일련의 숫자를 생성합니다. 시퀀스의 시작 번호와 단계 크기를 지정할 수도 있습니다.
for i in range(2, 10, 2):
print(i)
Output:
2
4
6
8
이렇게 하면 2부터 시작하여 10(포함되지 않음)에 도달할 때까지 2씩 증가하는 일련의 숫자가 생성됩니다.
Python에서 while 루프는 지정된 조건이 참인 한 코드 블록을 반복적으로 실행하는 데 사용됩니다. while 루프의 기본 구문은 다음과 같습니다.
while 루프: 기본 구문은 다음과 같습니다.
while condition:
# code to execute
Example:
i = 1
while i < 6:
print(i)
i += 1
Output:
1
2
3
4
5
루프가 무한정 계속 실행되는 무한 루프를 생성하지 않도록 while 루프를 사용할 때 주의하는 것이 중요합니다. 이를 방지하려면 while 루프의 조건이 결국 거짓이 되도록 해야 합니다.
중첩 루프: 중첩 루프라고도 하는 루프 내에 루프가 있을 수도 있습니다. 이는 여러 시퀀스를 반복하려는 경우에 유용합니다. 중첩 루프의 기본 구문은 다음과 같습니다.
for variable1 in sequence1:
for variable2 in sequence2:
# code to execute
Example:
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x, y)
Output:
red apple
red banana
red cherry
big apple
big banana
big cherry
tasty apple
tasty banana
tasty cherry
Python에는 루프를 사용할 때 발생할 수 있는 몇 가지 일반적인 오류
SyntaxError: 이 오류는 루프 문의 구문에 오류가 있을 때 발생합니다. 예를 들어 for 또는 while 줄 끝에 있는 콜론을 잊어버리거나 루프 내에서 코드를 들여쓰지 않습니다.
for i in range(10)
print(i)
Output:
File "test.py", line 1
for i in range(10)
^
SyntaxError: invalid syntax
이 예에서 SyntaxError는 for 문에서 range(10) 표현식 뒤에 콜론을 추가하는 것을 잊었기 때문에 발생합니다.
NameError: 이 오류는 정의되지 않았거나 범위에 없는 변수를 사용하려고 할 때 발생합니다. 예를 들어 루프에서 변수 이름의 철자를 잘못 입력하거나 루프 외부에서 루프 내부에 정의된 변수를 사용하려고 하는 경우입니다.
for i in range(10):
j = i + k
print(j)
Output:
NameError: name 'k' is not defined
이 예에서 NameError는 정의되지 않았거나 범위에 없는 변수 k를 사용하여 발생합니다.
TypeError: 이 오류는 수행 중인 작업과 호환되지 않는 값 또는 데이터 유형을 사용하려고 할 때 발생합니다. 예를 들어 문자열을 목록의 인덱스로 사용하거나 정수 값을 반복하려고 합니다.
for i in 10:
print(i)
Output:
TypeError: 'int' object is not iterable
이 예제에서 TypeError는 반복할 수 없는 정수 값 10을 반복하려고 시도하여 발생합니다.
IndexError: 이 오류는 존재하지 않는 시퀀스의 요소에 액세스하려고 할 때 발생합니다. 예를 들어, 3개의 요소만 있는 목록의 5번째 요소에 액세스하려고 합니다.
my_list = [1, 2, 3]
for i in range(4):
print(my_list[i])
Output:
IndexError: list index out of range
이 예에서 IndexError는 요소가 3개뿐인 목록의 네 번째 요소에 액세스하려고 시도하여 발생합니다.
ValueError: 이 오류는 유효하지 않은 값으로 작업을 수행하려고 할 때 발생합니다. 예를 들어 int() 함수를 사용하여 숫자를 나타내지 않는 문자열을 정수로 변환하려고 합니다.
my_string = "hello"
my_num = int(my_string)
print(my_num)
Output:
ValueError: invalid literal for int() with base 10: 'hello'
이 예제에서 ValueError는 int() 함수를 사용하여 숫자를 나타내지 않는 문자열을 정수로 변환하려고 시도함으로써 발생합니다.
KeyboardInterrupt: 이 오류는 예를 들어 사용자 입력을 기다리는 while 루프를 사용할 때 프로그램이 입력을 기다리는 동안 사용자가 프로그램을 중단할 때 발생합니다.
while True:
user_input = input("Enter a number: ")
print("You entered: ", user_input)
Output:
^C
루프가 제대로 작동하는지 확인하려면 코드를 주의 깊게 확인하고 발생하는 모든 오류를 해결하는 것이 중요합니다. 경우에 따라 오류 처리를 추가하거나 조건문을 사용하여 오류 발생을 방지해야 할 수 있습니다.
'파이썬' 카테고리의 다른 글
[python]#10 Python dictionary & error 유형 (0) | 2023.02.25 |
---|---|
[python]#9 파이썬 함수, 에러 유형 (0) | 2023.02.24 |
[python]#7 list 함수들 (0) | 2023.02.22 |
[Python]#6 논리 연산자 and or not (0) | 2023.02.21 |
[Python]#5 조건문 if / else 중첩 if / elif (0) | 2023.02.20 |