파이썬(Python)_반복문
1. 반복 수행을 위한 for 문
-
for 문
- 리스트, 튜플, 사진, 문자열과 같은 객체 항목들을 순회하며 특정 작업을 반복해서 수행하기 위해 사용 -
for 문의 문법
for 변수 in 순회할 객체: # 순회할 객체의 첫번째 항목부터 마지막 항목까지 차례로 변수에 대입
명령문1
명령문2
✨ ex. 구구단의 경우 한줄 한줄 일일이 코드를 짤 수 있으나, but 코드 상에 많은 중복이 나타나고 변경사항 발생시 수정사항이 많아짐
→ 코드의 중복된 부분을 찾아 반복문 안에서 처리하는 명령문으로 바꿔 해결!
- for 문을 활용한 구구단 프로그램
dan = int(input("단을 입력하세요: "))
for i in (1,2,3,4,5,6,7,8,9):
print("{0} x {1} = {2:>2}".format(dan, i, dan * i)) # >2 정렬의 방향을 우측으로 하고 자릿수는 2자리로 함
dan = int(input("단을 입력하세요: "))
for i in range(1, 10, 1):
print("{0} x {1} = {2:>2}".format(dan, i, dan * i)) # 위 코드와 동일함.
- range( ) 함수 :
- 객체를 생성하는 코드- 범위를 다룸
- range(범위의 시작 값, 종료 값, 증감치)
1) 첫 번째 인자 값은 범위에 포함되고, 두 번째 인자로 전달된 값은 범위에 포함되지 않음
2) 두 번째 인자는 생략할 수 없으며, 첫 번째 인자와 세 번째 인자는 생략 가능
3) 인자를 생략할 경우 첫 번째 인자의 기본값은 0, 세 번째 인자의 기본값은 1
1 range(0, 10, 1) # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
2 range(10, 1) # 첫 번째(0) 인자 생략
3 range(10) # 첫 번째(0), 세 번째(1) 인자 생략
4 range(1, 10, 2) # 1, 3, 5, 7, 9
5 range(10, -1, -2) # 10, 8, 6, 4, 2, 0
- for 문에서 사전(Dictionary) 객체를 이용해 항목 출력
dogs = {1: "골든리트리버", 2: "진돗개", 3: "보더콜리"}
for key in dogs:
print("{0} : {1}".format(key, dogs[key]))
for key, value in dogs.items(): # <class 'dict_items'> 객체 활용
print("{0} : {1}".format(key, value))
[결과]
1 : 골든리트리버
2 : 진돗개
3 : 보더콜리
- for 문에서 문자열을 이용한 개별 문자 출력
str = "Python"
for c in str:
print("{0}".format(c))
[결과]
P
y
t
h
o
n
- for 문에서 리스트 객체를 이용해 총점을 구하는 코드
scores = [100, 95, 88, 98] # 리스트형으로 4개의 점수를 저장
total = 0 # 총점 초기화
for score in scores:
total += score
print("총점: {0}".format(total))
[결과]
총점 : 381
2. 중첩된 for 문
-
중첩된 for 문
- for 문 안에 또 다른 for 문이 들어있는 형태 -
중첩된 for 문의 문법
- 순회할 객체1의 항목수 x 순회할 객체2의 항목수 만큼 반복문이 실행됨
for 변수1 in 순회할 객체1:
for 변수2 in 순회할 객체2:
명령문1
명령문2
...
- 중첩된 for 문을 활용한 구구단 출력 코드
dan = range(2, 10) # range 객체로 2~9 정수 값을 항목으로 가짐
num = range(1, 10) # range 객체로 1~9 정수 값을 항목으로 가짐
for i in dan:
for k in num:
print("{0} x {1} = {2:>2}".format(i, k, i * k))
if k == 9: # True일 경우 각 단 사이에 공백 라인을 출력하기 위한 코드
print()
for i in dan:
for k in num:
print("{0} x {1} = {2:>2}".format(i, k, i * k))
print() # 위와 동일한 코드
[결과]
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
3 x 1 = 3
3 x 2 = 6
...
3. 반복 수행을 위한 while 문
-
while 문
- bool 값을 반환하는 조건식의 결과에 의해 반복 결정
- 조건식이 False 값을 반환해야 while 문의 반복이 중지되므로 무한반복의 방지를 고려해야 함 -
while 문의 문법
while 조건식:
명령문1
명령문2
...
- while 문으로 작성한 구구단 출력 코드
dan = int(input("단을 입력하세요: "))
i = 1
while i < 10: # i가 10일 경우 False를 반환하면서 while문이 종료됨
print("{0} x {1} = {2:>2}".format(i, k, i * k)) # :>2 정렬방향 우측, 자릿수는 2자리
i += 1 # 변수 i에 대해 반복이 일어날 때마다 1씩 증가시키는 문장이 없다면 무한루프에 빠짐
- while 문에서 리스트 객체를 이용해 총점을 구하는 코드
scores = [100, 95, 88, 98] # 리스트형으로 4개의 점수 저장
total = 0 # 총점 변수 초기화
cnt = len(scores)
i = 0 # 첫 번째 항목의 위치(인덱스)를 나타내는 0을 저장
while i < cnt:
total += scores[i]
i += 1
print("총점: {0}.format(total))
[결과]
총점: 381
4. 반복을 제어하기 위한 break 문, continue 문
-
for 문 : 순회할 객체의 마지막 항목까지 반복
-
while 문 : bool 값을 반환하는 조건식이 False를 반환할 때까지 반복
-
break 문 : 논리적으로 반복문을 빠져나갈 때 사용
-
continue 문 : 이후 코드는 건너뛰고 반복문을 계속 실행할 때 사용
answer = "" # 변수 answer는 공백 문자열("")로 초기화
while True:
answer = input("명령을 입력하세요.\n'q'를 입력하면 프로그램이 종료됩니다. : ")
if answer == "q":
break # 'q' 입력시 while 문에서 벗어남
print("'{0}'를 입력하셨습니다.".format(answer))
print("프로그램을 종료합니다...")
[결과]
명령을 입력하세요.
'q'를 입력하면 프로그램이 종료됩니다. : q
프로그램을 종료합니다...
answer = ""
while True:
answer = input("명령을 입력하세요.\n'q'를 입력하면 프로그램이 종료됩니다. : ")
if answer == "q":
break
print("'{0}'를 입력하셨습니다.".format(answer))
print("프로그램을 종료합니다...")
[결과]
명령을 입력하세요.
'q'를 입력하면 프로그램이 종료됩니다. : a
'a'를 입력하셨습니다.
- continue 문 예시
- 1부터 10까지 저장되어 있는 리스트 객체에서 3의 배수를 제외한 합을 구하는 코드
numlist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
total = 0 # 총합을 저장할 변수 초기화
for n in numlist:
if n % 3 == 0: # n의 값이 3의 배수인지 검사하기 위해 나머지(%) 연사자 사용
continue # n의 값이 3의 배수일 때 : 나머지 블록은 건너뛰고 for 문으로 제어를 옮김
total += n # n의 값이 3의 배수가 아닐 때 : 변수 total에 값을 누적
print("3의 배수를 제외한 총합: {0}".format(total))
[결과]
3의 배수를 제외한 총합: 37
5. for문과 while문을 활용해 프로그램 만들기
- Step 1.
- Step 2.
- Step 3.
해당 포스팅은 아래의 사이트를 참고하여 작성하였습니다.
SW Expert Academy https://swexpertacademy.com/
Author And Source
이 문제에 관하여(파이썬(Python)_반복문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yb_engineer/파이썬Python반복문저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)