yumyum

[Python] 반복문 while 본문

ICT기반 클라우드 네트워크 해킹 침해대응전문가/Python

[Python] 반복문 while

yumyum0603 2023. 10. 25. 15:11
# while이란 for문처럼 어떤 실행문을 반복할 때 사용
# for의 경우에는 range() 횟수로 반복문 제어
# while문은 조건식을 만들어 조건이 성립될 때까지 반복문을 실행

"""형식

변수 = 0 (시작값)
while 변수 < 끝값 (반복문이 끝날 조건) :
    들여쓰기 실행문, 이곳을 반복 (print, 연산,,,,)
    변수 += 1 // 변수 = 변수 + 1

"""

i = 1
while i < 11 :
    print("while문 반복 : %d" % i)
    i = i + 1
    #이 식을 넣어야 무한 루프 하지 않음
    # 변수 증가 시키는 식은 꼭!!!! 마지막에 쓰기!!!!
# =>
# while문 반복 : 1
# while문 반복 : 2
# while문 반복 : 3
# while문 반복 : 4
# while문 반복 : 5
# while문 반복 : 6
# while문 반복 : 7
# while문 반복 : 8
# while문 반복 : 9
# while문 반복 : 10

i = 1
while i < 11 :
    i = i + 1
    print("while문 반복 : %d" % i)
        #이 식을 넣어야 무한 루프 하지 않음
    # 변수식 순서 바뀔때
    # =>
    # while문 반복 : 2
    # while문 반복 : 3
    # while문 반복 : 4
    # while문 반복 : 5
    # while문 반복 : 6
    # while문 반복 : 7
    # while문 반복 : 8
    # while문 반복 : 9
    # while문 반복 : 10
    # while문 반복 : 11

## 1~10까지의 합
sum, i = 0, 1

while i < 11 :
    sum = sum + i
    i = i + 1

print("1부터 10까지의 합 : %d" % sum)

# Quiz) 1~100 까지 짝수만 더한 값 구하기

sum, i = 0, 2

while i < 101 :
    sum = sum + i
    i = i + 2
print("1부터 100까지 짝수의 합 : %d " % sum)

# Quiz) 시작값, 끝값 입력받아 합 구하기

sum= 0
a = int(input("시작값을 입력해주세요"))
b = int(input("끝값을 입력해주세요"))
while a < (b+1) :
    sum = sum + a
    a = a + 1
print("합 : %d " % sum)

#### 무한 반복 // 무한 루프
while True :
    print("ㅋ", end="")

# while문을 이용한 무한반복
# 사용자가 종료할때까지 프로그램이 종료되지 않게
# ctrl + c : 인터럽트 (종료)


# 더하기 계산기
sum = 0
a, b = 0,0
while True :
    a = int(input("첫번째 숫자를 입력하세요 : "))
    b = int(input("두번째 숫자를 입력하세요 : "))
    print("더한값은 : %d" % (a+b))
# => 무한반복으로 계산기가 나옴

## Quiz) 사칙연산계산기 -> if 연산자 입력받은거 => 종료 안되게

num1, op, num2 = 0, "", 0

while True :
    num1 =int(input("첫번째 숫자를 입력하세요"))
    op = input("연산자를 입력하세요(+,-,*,/) : ")
    num2 =int(input("두번째 숫자를 입력하세요"))

    if op == "+" :
        print("%d + %d = %d 입니다" % (num1, num2, num1 + num2))
    elif op == "-" :
        print("%d - %d = %d 입니다" % (num1, num2, num1 - num2))
    elif op == "*" :
        print("%d * %d = %d 입니다" % (num1, num2, num1 * num2))
    elif op == "/" :
        print("%d / %d = %d 입니다" % (num1, num2, num1 / num2))
    else :
        print("연산자가 틀렸습니다")


#### 반복문 제어 (break)
# 반복문 탈출할 때 사용
# ctrl + c => 코드 안에 녹여낸다
# 종료하고싶은 곳에 break 쓰기만 하면 된다
# for, while 둘 다 사용 가능

i = 0
for i in range (1,11,1) :
    print("for문을 이용한 %d" % i)
    break
    # => for문을 이용한 1
# => 원래는 10번 돌아가야하는데 break때문에 한번만 돌아가고 끝난다

## break동작 조건 만들어주기
sum = 0
a, b = 0,0
while True :
    a = int(input("첫번째 숫자를 입력하세요 : "))
    if a == 0 :
        break
    b = int(input("두번째 숫자를 입력하세요 : "))
    if b == 0 :
        break
    print("더한값은 : %d" % (a+b))

print("0 입력해서 프로그램 종료")

# =>첫번째 숫자를 입력하세요 : >? 5
# 두번째 숫자를 입력하세요 : >? 2
# 더한값은 : 7
# 첫번째 숫자를 입력하세요 : >? 5
# 두번째 숫자를 입력하세요 : >? 0
# 0입력해서 프로그램 종료

# Quiz) 1~100까지 합 구하기 만들건데
#   합이 1000 넘어갈 때 i 갑 몇인지 출력, 종료


sum, i = 0, 1

while i < 101 :
    sum = sum + i
    if sum >= 1000 :
        break
    i = i + 1
# if식이 i = i + 1 뒤에 들어가면 1000에 +1 한 값이 들어가게 된다
# 그러므로 if식은 i = i + 1 이전에 넣도록 한다

print("합이 1000일때 i 값 : %d, 종료합니다" % i)

### continue
# 블록에 남은 부분을 건너뛰고 반복문의 처음으로 돌아감
# 3의 배수를 제외한 1~100까지의 합 구하기

sum, i = 0, 0
for i in range (1,100) :
    if i % 3 == 0 :
        continue

    sum = sum + i
    print(i)
print("1~100의 합계(3의 배수제외 : %d" % sum)

# Quiz) 3,6,9 게임
#   1,2,짝,4,5,짝,7,8,짝,10,11,12,짝,,, // 짝, 짝, 짝, 짝짝(33)
# 1~50까지


for i in range(1, 51):
    str_i = str(i)
    count_369 = 0
    for x in str_i:
        if (x == '3') or (x == '6') or (x == '9'):
            count_369 += 1
    if count_369 == 0:
        print(str_i+':', i)
    else:
        print(str_i+':', count_369 * '짝')

'ICT기반 클라우드 네트워크 해킹 침해대응전문가 > Python' 카테고리의 다른 글

[Python] 문자열  (0) 2023.10.27
[Python] 리스트, 튜플, 딕셔너리  (0) 2023.10.25
[Python] 반복문 for  (0) 2023.10.24
[Python] 조건문  (0) 2023.10.24
[Python] 연산자  (0) 2023.10.23