본문 바로가기
프로그래밍/Python

[Python] 반복문(for, while)

by 개발자 한량 2021. 12. 6.
728x90
반응형
SMALL

※반복문이란?

▶ for문의 개념

  • 기본적인 반복문으로, 반복 범위를 지정하여 반복을 수행
  • for문으로 반복문을 만들 경우 먼저 for를 입력하고 반복되는 범위를 지정해야 함

range 문법 : for 변수 in range(시작 번호, 마지막 번호, 증가값)

  • 마지막 번호의 마지막 숫자 바로 앞까지 리스트를 만듬
  • range(1, 5) : [1, 2, 3, 4], range(0, 5) : [0, 1, 2, 3, 4] 리스트 작성
  • 시작 번호와 증가 값은 생략 가능, 생략했을 경우 시작 번호는 0을, 증가값은 1을 사용
### for문 사용 방법 ###
# for i in list:
# for i in range(start, end, step) :

for i in range(10): #ranfe(0,10,1)
    print(i)
    
# 실행결과
0
1
2
3
4
5
6
7
8
9

 

for looper in [1,2,3,4,5]:
    print('hello', looper)
    
# 실행결과
hello 1
hello 2
hello 3
hello 4
hello 5

 

for i in [10, 20, 30, 40, 50]:
    print(i)

# 실행결과
10
20
30
40
50

 

 

* 문자열은 리스트와 같은 연속적인 데이터를 표현, 각 문자를 변수 i에 할당하여 반복문 사용 화면에 출력

for i in 'abcdefg':
    print(i)

# 실행결과
a
b
c
d
e
f
g

 

 

* 문자열로 이루어진 리스트의 값 반복문 사용

colors=['red', 'green', 'blue', 'pink', 'black', 'white']
print(colors)
for i in colors: # 이중 for문
    for j in i:
        print(j, end=' ')
    print()
    
# 실행결과
['red', 'green', 'blue', 'pink', 'black', 'white']
r e d 
g r e e n 
b l u e 
p i n k 
b l a c k 
w h i t e

 

 

* range 구문을 이용하여 1부터 9까지 2씩 증가시키는 for문

for i in range(1, 10, 2):
    print(i, end=" ")
    
# 실행결과
1 3 5 7 9

 

 

* range 구문을 이용하여 10부터 2까지 1씩 감소시키는 반복문

for i in range(10, 1, -1):
    print(i, end=" ")
    
# 실행결과
10 9 8 7 6 5 4 3 2

 


 

▶ while문의 개념

  • 어떤 조건이 만족하는 동안 명령 블록을 수행하고, 해당 조건이 거짓일 경우 반복 명령문을 더이상 수행하지 않는 구문
### while문 ### 
i=1
while i<10:
    print(i)
    i+=1

# 실행결과
1
2
3
4
5
6
7
8
9

▶ 반복문의 제어 : break문

  • 반복문에서 논리적으로 반복을 종료하는 방법
### 반복문의 제어 : break문 ###
sum=0
for i in range(100):
    sum+=i
    if(sum>=50):
        break
    print(i, sum)
print('for end : ',i,sum)

# 실행결과
0 0
1 1
2 3
3 6
4 10
5 15
6 21
7 28
8 36
9 45
for end :  10 55

▶ 반복문의 제어 : continue문

  • 특정 조건에서 남은 명령을 건너뛰고 다음 반복문을 수행
sum=0
for i in range(1, 10):
    sum+=i
    if(i%5==0):	# i가 5인 경우 i를 출력하지 않음
        continue
    print(i, sum)
    
# 실행결과
1 1
2 3
3 6
4 10
6 21
7 28
8 36
9 45

▶ 반복문의 제어 : else문

  • 어떤 조건이 완전히 끝났을 때 한번 더 실행해주는 역할
for i in range(10):
    print(i)
else:
    print("End of Program")
    
# 실행결과
0
1
2
3
4
5
6
7
8
9
End of Program

▶ 문자열 역순 출력

  • reverse_sentence : 입력된 문자열을 역순으로 출력하는 변수
sentence="I love you"
reverse_sentence=' '
for char in sentence:
    reverse_sentence = char + reverse_sentence
print(reverse_sentence)

reverse2=sentence[::-1]
print(reverse2)

# 실행결과
uoy evol I 
uoy evol I

 

# 실습 내용 : 평균 구하기(학생별 평균 구하기)

kor = [49, 80, 20, 100, 80]
math = [43, 60, 85, 30, 90]
eng = [49, 82, 48, 50, 100]

score=[kor, math, eng]
print(score)
student_score=[0.0, 0.0, 0.0, 0.0, 0.0]

# 이중 for문 
for i in range(len(score)):
    for j in range(len(score[i])):
        student_score[j]+=score[i][j]
    
a,b,c,d,e=student_score
student_score=[a/3, b/3, c/3, d/3, e/3]
print(student_score)

# 석차 구하기
student_rank = [1,1,1,1,1]
for i in range(len(student_score)):
    for j in range(len(student_score)):
        if student_score[j] > student_score[i]:
            student_rank[i]+=1
print(student_rank)
        
# 실행결과
[[49, 80, 20, 100, 80], [43, 60, 85, 30, 90], [49, 82, 48, 50, 100]]
[47.0, 74.0, 51.0, 60.0, 90.0]
[5, 2, 4, 3, 1]
728x90
반응형
LIST

댓글