728x90
SMALL

7-1 for문

for문과 while문은 동일한 연산, 명령문을 반복 작업하지 않고 반복문을 사용하여 간단하게 작성 가능

- for문의 사용

정해진 횟수만큼 반복할 때 사용

for 변수명 in 범위 :
     명령문1
     명령문2

범위에는 숫자, 문자열, 리스트, 튜플 모두 가능
변수명에는 관용적으로 i, j, k, x를 사용
무한반복 되지 않도록 종료되는 값을 설정할 것

예제)

 

a=[40,90,65,86]
cnt=0
for i in a:
  cnt+=1
  if(i>=80):
    print(cnt,"번 학생 성적",i,"은 매우 잘함")
  elif(i>=60):
    print(cnt,"번 학생 성적",i,"은 잘함")
  else:
    print(cnt,"번 학생의 성적",i,"은 보통이다")

 

<실행 결과>

 

1 번 학생의 성적 40 은 보통이다

2 번 학생 성적 90 은 매우 잘함

3 번 학생 성적 65 은 잘함

4 번 학생 성적 86 은 매우 잘함

 

- range 활용

range를 사용하여 범위 대신 해당 횟수 동안 반복 가능, 끝숫자 전까지를 나타냄!!range(끝숫자)range(시작숫자, 끝숫자)range(시작숫자, 끝숫자, 증가숫자)

 

for i in range(1,9,2): #9 전까지 2씩 증가
  print(i)

for x in range(8,1,-2): # 1전까지 2씩 감소
  print(x)

 

<실행 결과>

 

1

3

5

7

8

6

4

2

 

for 문 예제)

a=[40,90,60,88]
x=len(a)
for i in range(x):
  print(i+1,"번 학생의 성적은 ",a[i])

 

<실행 결과>

 

1 번 학생의 성적은 40

2 번 학생의 성적은 90

3 번 학생의 성적은 60

4 번 학생의 성적은 88

 

- 중첩 for문

중첩반복은 반복문안에 다른 반복문을 사용할 수 있음반복은 몇번이고 가능하지만 구조의 간편성을 위해 2중 또는 3중 이상하지 않는 것이 바람직함

 

예시) 구구단

for a in range(1,10):
  for i in range(1,10):
    print(a, "X",i,"=",a*i)

 

실행 결과 생략

 

7-2 while문과 break / continue

- while문

조건이 만족하는 경우 동안 반복함
for문은 반복 횟수가 정해져 있느나 while문은 조건식, 변수 사용에 따라 반복 횟수가 변함

 

while문의 구조)

 

while(조건식 = 참):
     명령문1
     명령문2

반복이 진행될 때 조건식이 False가 되어 반복문이 종료될 수 있도록 설정해야 함, 무한반복이 되면 안됨

 

while문 예시)

 

book=input("주문할 책 제목")
sbook=set() # 빈 집합함수 만들기
while(book!="종료"):
  sbook.add(book)
  book=input("주문할 책 제목")
for x in sorted(sbook): 
  print(x)

 

<실행 결과>

 

주문할 책 제목해리

주문할 책 제목포터

주문할 책 제목꿀잼

주문할 책 제목종료

꿀잼

포터

해리

 

- break / continue 문

break : 현재 반복문을 벗어나게 함
continue : 명령문을 수행하지 않고 다음 반복으로 넘어감

 

break문 예시) 정수 입력 후 수의 합을 계산하고 -1이 입력되면 종료

sum=0
a=int(input("정수 입력"))
while(True):
  if(a==-1):
    break
  sum+=a
  a=int(input("정수 입력"))
print("합계는", sum ,"입니다.")

 

<실행 결과>

 

정수 입력10

정수 입력20

정수 입력30

정수 입력-1

합계는 60 입니다.

 

continue문 예시) 5개의 정수 입력 후 그 중 3의 배수만 출력

for x in range(5):
  a=int(input("정수 입력"))

  if(a%3!=0):
    continue # 다음 반복으로 넘어가라!
  else:
    print("입력받은 수",a,"3의 배수")

 

728x90
LIST
Dylan07