기본 형태
리스트 이름 = [ 요소, 요소, 요소, 요소 ]
for <요소를 저장할 변수 이름> in 리스트 이름 :
print (요소를 저장할 변수 이름)
* 반복문의 구조 및 작동 원리를
반드시 완벽하게이해하고
넘어가야 한다.
예제 코드
a = [ 1, 2, 3, 4 ,5 ]
for element in a:
print(element)
=>
1
2
3
4
5
위 코드 해석
a = [1,2,3,4,5]
for element in a:
a라는 리스트 안에 있는
요소(1,2,3,4,5)를
element라는 변수에
넣고
print(element)
이를 실행!
a 리스트의 요소들이 변수에
하나씩넣어져 차례대로
반복되어출력된다.
처리 과정이 보이지 않기에
출력된 결과만 보면 잘 모를 수 있지만,
내부적으로는
현재 리스트 요소들 중
맨 앞 요소인 1을
제일 먼저 꺼내 오고 종료,
그다음 요소를 꺼내오고 종료,
식의 반복되는 작업이 있는 것!
각 요소들이 줄바꿈 되어
출력되는 것이 바로 그 이유이다.
이것이 바로 조건문!
*다양한 반복문 문제 풀이로
알아보는 꼭 이해하고 알고
있어야 하는 사용 방법들
반복문 문제를 처음 접하다 보면
이걸 도대체 어떻게 풀어야 할지 몰라
당황할 때가 한두 번이 아니다.
아직 사용법도 미숙하고 정 안되겠기에
답을 봐도 좀처럼 이해가 안 되기 일쑤인데
중요한 것은 문제를 푸는 발상을
이해하고 배우고 필요하다면
외우는 것이라고 한다.
다양한 문제 통해 문제 해결
발상을 살펴보자!
1. if 조건문과 for 반복문을
조합하여 사용이 가능하다.
예제 1)
회원 등급을 알려주자
예제 2)
짝수 홀수 구분해 주기
나머지 연산자를 활용하여
컴퓨터가 처리하기 좋은 방식으로
코드를 작성한다.
2. 리스트 내 각 숫자의 자릿 수를
확인해 보는 법
체크 포인트
1. if 문과 조합하지 않고 사용
2. 리스트의 요소에 문자가 섞여있음
3. 숫자와 문자를 더하는 방법
3. 리스트는 중첩 사용이 가능하다.
문제)
아래 리스트를 하나로 합쳐
숫자를 차례대로 출력하시오
list_of_list = [
[ 1, 2, 3 ],
[ 4, 5, 6, 7 ],
[ 8, 9 ]
]
for a in list_of_list:
for b in a :
print( b )
*포인트는중복문의 중첩 사용!
일반적으로 리스트가 중첩되면
for 반복문도 중첩한다는 룰이 있다.
물론 반복문 한 번으로 다 돌리는
방법도 있지만 나중에 살펴보자.
4. 리스트의 대 괄호 내부에는
연산된 값을 넣어 사용할 수 있다.
문제)
특정 범위를 뺑뺑이 돌리는 식을
사용해 풀어야 하는 문제로,
numbers = [ 1,2,3,4,5,6,7,8,9 ]
output = [ [ ], [ ], [ ] ]
for number in numbers:
output ( ).append(number)
print(output)
: 실행 결과로
[1,4,7], [2,5,8], [3,6,9]
가 나와야 한다.
output( )에 들어갈 식은?
답:
output [ (number -1 ) % 3 ].append(number)
[number % 3]만 해주는 경우
답에서 요구하는 실행 결과와는
인덱스 위치가 다르게 출력된다.
그래서 -1을 추가로 해 주었는데
-1이 아니라 +2를 해줘도 결과는 같다.
* 참고사항
리스트 내의 연산을 살펴보자!
a = [ 1, 2, 3, 4, 5, 6, 7]
a [ 1 + 1]
=> 3
a [ 1 - 1]
=> 1
a [ 1 * 1 ]
=> 2
출력되는 결괏값은
리스트 내 요소들의 정숫값을
계산하는 것이 아닌
바로인덱스(위치) 끼리의 연산이다.
즉,
a [1 + 1]이란,
숫자 1 더하기 1이 아닌
리스트의 1번째 위치에 있는 숫자(2)를
먼저 선택하고, 그 숫자를 기준으로
다음 1번째에 있는 숫자(3)을
꺼내달라는 뜻이다.
위의 예제에서 보면 곱셈까지는 있는데
나눗셈은 없다. 나눗셈을 한번 살펴보자.
에러를 살펴보면
리스트의 인덱스는
반드시 integer(정수) 여야 하고
float(소수점)은 안된다는 뜻인데
나누기 연산자는
딱 떨어지는 값이라 해도
무조건 float 값을 돌려준다.
나누기 연산자를 사용할 땐
정수 나누기 연산자인 //를 사용한다.
a [ 1 // 1 ]
=> 2
*위 1번의 예제 2번
짝수 홀수 나누는 문제를
새롭게 코딩해 보자.
numbers = [88, 23, 245, 2, 99, 70, 77]
holzzak = [ "짝수" , "홀수" ]
for number in numbers:
print(" { }는 { } 입니다".format (number, holzzak[number % 2]))
코드를 해석해 보자.
holzzak이라는 리스트에는
각각 짝수와 홀수 값이 있다.
number라는 변수에 numbers라는
리스트의 값들이 들어있고
이 각각의 값들을 나머지(%) 2로
연산하여 나오는 값이 0이라면
holzzak의 리스트의 0번째인
"짝수"가 출력,
나머지 연산 값이 1이라면,
holzzak 리스트의 1번째 값인
"홀수"가 출력되는 것.
*반복문 고전 예제
피라미드 만들기
뭔가 다른 방법도 있을듯 한데..
생각해 보자
'프로그래밍 > Python' 카테고리의 다른 글
기초) 딕셔너리 2 (중요) (2) | 2020.05.24 |
---|---|
기초) 딕셔너리 정리 (0) | 2020.05.23 |
기초) list 관련 함수 / 파괴적.비파괴적 함수의 개념 (0) | 2020.05.21 |
기초) list 기본 정리 (0) | 2020.05.21 |
기초) bool ( ) 함수와 pass 키워드 (0) | 2020.05.21 |