본문 바로가기
Python

[Python] while문 for문(리스트내포, 딕셔너리, 리스트 , 이중for문)

by ybin.im 2024. 12. 6.

반복문

반복문을 통해서 값을 일일이 대입해야 하는 일과 같은 반복업무를 프로그램으로 수행할 수 있다.
파이썬에서 반복문은 for문과 while문이 있다.

while - 특정 조건이 완료될 때 까지 반복
for - 지정한 횟수만큼 반복

 

1. while문

while 조건식:
    실행문

while문은 조건식이 True일 경우 실행문을 계속 반복한다.
False가 되면 종료된다.

-------------------------------------------

while True:
    실행문
    break

위와 같은 while문으로 무한루프를 만들 수 있는데,
이런 상황엔 break로 종료조건을 만들어 종료시켜줘야한다.

 

while문 무한루프

while True:
    실행문
     break

 while문에선 원할 때 까지 값을 입력받는 무한루프를 의도적으로 만들 수 있다.
무한루프에선 종료조건을 만날때 까지 프로그램을 반복한다.

▶ break문
break문은 무한루프를 탈출시켜준다. 
조건문에서 종료조건을 입력하면 break를 통해 반복문에서 빠져나온다.


▶ continue문
continue를 만나면 continue밑의 코드로 진행하지 않고 다시 반복문 처음으로 되돌아간다.

 

 

▶코드

양수를 입력하여 1부터 입력한 수 까지의 합을 구하는 프로그램
모두 while문 무한루프에 들어가서 종료조건을 입력할 때 까지 돌아간다.

1. 종료 또는 되돌아가는 조건
 - 첫 조건문에선 .isdigit() 메서드로 양수를 입력했는지 판단.
   continue를 사용하여 밑의 코드를 실행하지 않고 위로 돌아간다.

 - 두번째 조건문에선 user_input이 종료인지 판단
   break문을 사용하여 while문 무한루프에서 벗어나며 프로그램 종료

 - 세번째 조건문에선 user_input이 0인지 판단.
   continue를 사용하여 밑의 코드를 실행하지 않고 위로 돌아간다.

2. 위 조건을 모두 통과했다면
 - str로 들어온 user_input을 int자료형으로 바꾼다.

 - 또 while문을 사용하여 += 연산자를 사용하여 1부터 입력받은 수 까지의 합을 구한다.

3. f문자열로 결과 출력 


2. for문

for 변수 in 시퀀스:
     반복 실행할 코드

for문은 주어진 시퀀스 요소를 반복순회하며 반복 실행할 코드를 수행한다.
위와 같은 형태로 사용하며, 콜론( : )을 붙여 사용한다.

시퀀스 : 문자열, 리스트, 튜플, range() 등등

▶ range()

range(start, end, step)

range는 연속된 정수를 생성한다.
start와 step은 지정하지 않아도 된다.

ex) range(5)  # 0~4
ex) range(1, 5)  # 1~4
ex) range(1, 8, 2)  # 1, 3, 5, 7

▶ for문과 리스트

1. for x in [ 요소1, 요소2, 요소 3, ... ]:

2. list = [ 요소1, 요소2, 요소3, ... ]
    for x in list:

 

▶ 코드

number 리스트 생성

for문에서 number를 시퀀스로 두고
num을 변수로 둬 값을 부른다.

if 조건문을 사용하여 2의 배수만 출력하는 프로그램

 

출력된 값.


▶ list 내포

변수 = [ 표현식 for 요소 in 시퀀스 if 조건문 ]

리스트 안에 for문과 if문을 함께 사용가능
if문은 사용하지 않아도 된다.

표현식을 거친 값이 배열로 만들어진다.

▶ 코드

# 리스트 내포
1 ~ 19까지의 수 범위의 수를 제곱하여 리스트로 만든다.

# if문과 함께사용
1 ~ 9까지의 수에서 2의 배수만 제곱하여 리스트로 만든다.

 


▶ for문과 딕셔너리

딕셔너리는 key값와 value값으로 이루어진 배열

 

▶코드

 - 딕셔너리

 

 - 키값만 순회

그냥 딕셔너리변수만 시퀀스에 사용해도 되지만,
명시적으로 .keys() 메서드를 적어주는게 좋다.

 

 - 밸류값만 순회

.values() 메서드를 사용하면 value값만 가져온다.

 

 - 키값, 밸류값 같이 순회

1. .items() 메서드를 사용하면 key와 value값을 튜플값으로 반환한다.

2. .keys() 메서드를 사용하면 key를 가져올 수 있고. 딕셔너리변수[key]를 해주면 value값을 가져올 수 있따.

3. for문 요소에 두개의 변수를 넣어주면 순서대로 key와 value값을 가져온다.
    이렇게 하면 튜플형식이 아닌 값으로 가져올 수 있다.

▶전체 결과값

결과값


3. 이중for문과 이차원리스트

for x in 시퀀스:
     for y in 시퀀스:
          실행문

반복문 안에 반복문
내부 반복문은 외부 반복문이 한 번 반복될 때 마다 새롭게 실행된다.

 

▶ 코드 구구단 만들기

1.외부 반복문 ( i )
 - 2 ~ 9 까지의 수를 순회한다.
 - 몇 단인지 출력

2. 내부 반복문 ( j )
 - 1 ~9 까지의 수를 순회
 - i 와 j 의 수를 곱한다.
 
 외부는 단( i )를 의미
 내부는 곱하는 수( j )를 의미