Python - 반복문(while문, for문)

nahye·2021년 5월 7일
0

while문

  • 조건식이 True이면 문장1을 수행하고 거짓이면 while문을 빠져 나온다.
  • 형식 1)
  • 형식 2) while 조건식:
    반복 수행할 문장
    else:
    반복문 수행 완료 후 수행할 문장
count = 1
total = 0   //1. 초기식

while count <= 100:         //2. 조건식, loop 변수
    total = total + count  //3. 반복처리할 내용
    count = count + 1     //4. 증감식

print("1부터 100까지의 합은 :", total)
print("The End...")

else활용(결과동일)

count = 1
total = 0

while count <= 100:
    total = total + count
    count = count + 1
else:
    print("1부터 100까지의 합은 :", total)

print("The End...")

break를 쓰면 else는 안 나오고 while문을 벗어나 print로 간다.

이 경우는 else문을 못 씀
if 조건만 만족하면 바로 the End 출력
else가 정렬이 안 맞춰졌기 때문

for문

  • 반복 수행할 횟수가 정해진 경우에 사용되는 반복문이다.
  • 형식 1) for 변수 in 반복 사용할 객체:
    반복 수행할 문장
  • in
  • 형식 2) for 변수

dct는 비순차 자료형
비순차 자료형은 python Interpreter가 내부적 규칙에 의해 순서를 정함
비순차 자료형이라 순서를 정확히 알 수 없다.

3은 누적이 되지 않음
continue가 range로 보내기 때문

3은 없음
item = 3일 때 바로 range로 가서

item = 3일때
break라서 for문을 아예 나가버림

이중 for문 구구단

<이중 for 문 옆으로 나열>

먼저 단이 출력
그 다음 한 행씩 출력

num1 = int(input("첫번째 숫자를 입력하시오 => "))
num2 = int(input("두번째 숫자를 입력하시오 => "))

if num1 > num2:
    min_num = num2
    max_num = num1
else:
    min_num = num1
    max_num = num2

for dan in range(min_num , max_num +1):
    print(" ** %d단 ** " % dan, end=" ") # end=" " : 옆으로 나열

print() # 줄바꿈작업

for i in range(1,10):
        for dan in range(min_num, max_num+1):
            print(" %d * %d = 2%d " % (dan, i, dan*i), end=" ")
        print()

min(), max() = 내장함수
bulitin보다

우선 순위 : L > G > M
내장함수로 min, max가 있으니
헷갈리지 않게 min_num, max_num 라고 적어준 것!

증감값은 생략가능
1부터 10까지가 아닌 1~9까지 나옴(최종값은 안 나옴)
9번 반복됨
반복수행의 횟수를 range 함수를 통해서 규정할 수 있다.

range() 함수

문제 :

코드 작성해보기

이건 힌트

답:

num1 = int(input("첫번째 숫자를 입력하시오 => "))
num2 = int(input("두번째 숫자를 입력하시오 => "))
# 임의의 숫자 2개 입력

if num1 > num2:
    min = num2
    max = num1
else:
    min = num1
    max = num2
# 대소 구분 min에는 작은값, max에는 큰값 집어넣음

print()

cnt = 0

if min == 1:
    min = 2
# 1은 제외 값이기 때문에 1은 무조건 2로 바꾸기

for i in range(min, max+1):
                # if i == 1:
            # continue # i가 1이면 바로 스킵하는 거, 하지만 매번 for문을 돌릴 때마다 수행시켜야함
        for j in range(2, i): # j는 2~9까지
            if i % j == 0: #소수가 아니면 for문 빠져나옴
                break
        else: # i가 소수인 경우 수행
            print("%5d " % (i), end=" ")
            cnt +=1 # 소수의 갯수 카운트
            if cnt % 10 == 0: # 소수의 갯수가 10의 배수이면 줄바꿈 수행
                print()
if cnt % 10 != 0:
    print()

print("총 소수의 개수 = %d", cnt)
profile
Slow and steady wins the race

0개의 댓글

관련 채용 정보