Python

[Python] 반복문 while

SangRok Jung 2022. 8. 29. 21:37
반응형

while


반복해서 문장을 수행해야 할 경우 while문을 사용한다.

 

 

 

 

▶ 기본 구조

조건문이 참인 동안에 수행문이 반복해서 수행된다.

while 조건문 :
    수행문1
    수행문2
    ...

 

▶ 1부터 999까지의 숫자를 출력하는 예시

num = 1
while num < 1000 : 
    print(num)
    num += 1

 

 

 

▶ 변수 number의 초기값이 1일 때 6이상이 되면 자동으로 멈추는 프로그램.

number = 0

while number < 6 :
    number += 1

print("number = %s" % number)

# number = 6

 

 

 

▶ 시작값과 끝값을 입력받아 시작 값 부터 끝 값 까지의 합 구하기

start = int(input("시작 값을 입력하세요 : "))
end = int(input("끝 값을 입력하세요 : "))

result = 0

while start <= end:
    result += start
    start += 1
    
print("result = %d" % result)


# 시작 값을 입력하세요 : 1
# 끝 값을 입력하세요 : 1000
# result = 500500

 

 

 

▶ 숫자를 입력받아 구구단 구현.

y = int(input("계산할 숫자를 입력하세요 : "))
x = 1

while x < 10 :
    print("%d * %d = %d" % (y, x, (y*x)))
    x += 1
    
# 계산할 숫자를 입력하세요 : 342
# 342 * 1 = 342
# 342 * 2 = 684
# 342 * 3 = 1026
# 342 * 4 = 1368
# 342 * 5 = 1710
# 342 * 6 = 2052
# 342 * 7 = 2394
# 342 * 8 = 2736
# 342 * 9 = 3078

 

 

▶ 해당 범위의 배수의 합 구하기

st = int(input("첫 수를 입력하세요 : "))
end = int(input("끝 수를 입력하세요 : "))
multi = int(input("배수를 입력하세요 : "))
result = 0
num = st

while num <= end : 
    if num % multi == 0 :
        result += num
    num += 1

print(f'{st}~{end}까지의 정수 중 {multi}의 배수의 합계 : {result}')



# 첫 수를 입력하세요 : 100
# 끝 수를 입력하세요 : 300
# 배수를 입력하세요 : 5
# 100~300까지의 정수 중 5의 배수의 합계 : 8200

 

 

 

▶ 섭씨를 화씨로 변환.

# celsius = int(input("Enter the Celsius : "))
# fahrenheit = int(input("Enter the Fahrenheit : "))
st = int(input("Enter the start value of Celsius : "))
end = int(input("Enter the End value of celsius : "))

num = st


print("-"*50)
print("{:<12} {:<12}".format("Celsius", "Fahrenheit"))
print("-"*50)

while num <= end :
    print("{:<12} {:<12}".format(num, round((num*1.8) +32), 2))
    num += 1
    
print("-"*50)

# Enter the start value of Celsius : -20
# Enter the End value of celsius : 5
# --------------------------------------------------
# Celsius      Fahrenheit  
# --------------------------------------------------
# -20          -4          
# -19          -2          
# -18          0           
# -17          1           
# -16          3           
# -15          5           
# -14          7           
# -13          9           
# -12          10          
# -11          12          
# -10          14          
# -9           16          
# -8           18          
# -7           19          
# -6           21          
# -5           23          
# -4           25          
# -3           27          
# -2           28          
# -1           30          
# 0            32          
# 1            34          
# 2            36          
# 3            37          
# 4            39          
# 5            41          
# --------------------------------------------------

 

 

 

 

 

▶ 시작값, 끝값, 배수 값을 입력받아 배수가 아닌 값을 출력하기.

st = int(input("Enter the value of start : "))
end = int(input("Enter the value of end : "))
multi = int(input("Endter the value of muliple : "))
num = st
count = 0

print("-" * 50)
print("A nonmultiple of %d among integers from %d to %d." % (multi, st, end))

while num <= end:
    if num % multi != 0 :
        print("{:<3}".format(num), end = " ")
        count += 1
        if count % 8 == 0 :
            print()
    num += 1
    
# Enter the value of start : 10
# Enter the value of end : 100
# Endter the value of muliple : 3
# --------------------------------------------------
# A nonmultiple of 3 among integers from 10 to 100.
# 10  11  13  14  16  17  19  20  
# 22  23  25  26  28  29  31  32  
# 34  35  37  38  40  41  43  44  
# 46  47  49  50  52  53  55  56  
# 58  59  61  62  64  65  67  68  
# 70  71  73  74  76  77  79  80  
# 82  83  85  86  88  89  91  92  
# 94  95  97  98  100

 

 

 

 

 

▶ 영문자 모음 추출하기.

sent = input("Enter the sentence : ")
vowel = ["a", "e", "i", "o", "u"]
index = 0
sentVowel = []


while index <= len(sent) -1: 
    if sent[index].lower() in vowel : 
        sentVowel.append(sent[index])
    index += 1

result = " ".join(sentVowel)
print("Vowel : %s\nnumber of vowel : %d" % (result, len(result.replace(" ",""))))

# Enter the sentence : apple
# Vowel : a e
# number of vowel : 2

 

 

 

 

 

▶ 문장 역순으로 출력하기.

st = input("Enter the sentence : ").replace(" ", "-")
index = 1

while index <= len(st) :
    print(st[index * -1], end = "")
    index += 1


# Enter the sentence : I love you baby~
# ~ybab-uoy-evol-I
st = input("Enter the sentence : ")
index = 1
li = []

while index <= len(st) :
    li.append(st[index * -1])
    index += 1

print("".join(li).replace(" ", "-"))

# Enter the sentence : apple is fruit.
# .tiurf-si-elppa
st = input("Enter the sentence : ").replace(" ", "-")
index = len(st) -1

while index >= 0:
    print(st[index], end = "")
    index -= 1


# Enter the sentence : i love you baby
# ybab-uoy-evol-i

 

 

 

 

 

 

 

 

 

 

while문 강제로 빠져나오기

while문의 맨처음으로 돌아가기


break : 반복문을 벗어난다.

while문은 조건문이 참인 동안 계속해서 while문 안의 내용을 반복적으로 수행한다.

하지만 break문을 이용해서 강제로 빠져 나올 수 있다.

 

 

 

 

continue : 해당 조건문(반복문) 아래의 문장을 실행 하지 않고 조건문(반복문)으로 다시 돌아 갈 때 사용한다.

while문 안의 문장을 수행할 때 입력 조건을 검사해서 조건에 맞지 않으면 while문을 빠져나가는데

continue문을 사용해서 맨 처음으로 돌아갈 수 있다.

 

 

 

▶ 사탕 자판기

candy = int(input("Enter the number of candy : "))
money = int(input("Enter the money you have  : "))
price = int(input("Enter the price of candy : "))

print("-"*50)

while money :

    money -= price
    print("amount the pay. remaining amount is %dWON" % money)
    candy -= 1
    print("give the candy. remaining candy is %d" % candy)

    if candy == 0 :
        print("no more candy.")
        break
    elif money <= 0 :
        print("no more money")
        break

        
# Enter the number of candy : 10
# Enter the money you have  : 300
# Enter the price of candy : 50
# --------------------------------------------------
# amount the pay. remaining amount is 250WON
# give the candy. remaining candy is 9
# amount the pay. remaining amount is 200WON
# give the candy. remaining candy is 8
# amount the pay. remaining amount is 150WON
# give the candy. remaining candy is 7
# amount the pay. remaining amount is 100WON
# give the candy. remaining candy is 6
# amount the pay. remaining amount is 50WON
# give the candy. remaining candy is 5
# amount the pay. remaining amount is 0WON
# give the candy. remaining candy is 4
# no more money

 

 

 

 

 

▶ 단어를 입력받아 문장 출력 멈추기.

sen = input("Enter the sentence : ")
word = input("Enter characters to abort : ")

print("-"*50)

for i in sen :

    if i == word :
        break
    print(i, end = " ")
else :
    print()
    print("All the characters were printed out.")
    
# Enter the sentence : black pink
# Enter characters to abort : z
# --------------------------------------------------
# b l a c k   p i n k 
# All the characters were printed out.

 

 

 

 

 

▶ 커피 자판기

stock = int(input("Enter the stock of the coffee : "))


print("-"*50)

while True :
    amount = int(input("Enter the amount money : "))
    
    if amount == 300 :
        print("1 coffee")
        stock -= 1
    elif amount > 300 : 
        print("1 Coffe and Change %dWON" % (amount - 300))
        stock -= 1
    else : 
        print("shortage of the money.")
    if stock == 0 :
        print("stock is 0, sold out.")
        break

# Enter the stock of the coffee : 3
# --------------------------------------------------
# Enter the amount money : 300
# 1 coffee
# Enter the amount money : 400
# 1 Coffe and Change 100WON
# Enter the amount money : 500
# 1 Coffe and Change 200WON
# stock is 0, sold out.

 

 

 

 

 

 

 

종합예제


▶ 게시글 중 태그된 내용만 추출.

title = """On top of the world! Life is so fantastic if you just let it. I have never been happier. #nyc #newyork #vacation #traveling"""

tag_list = title.split("#")[1::]

print(tag_list)

# ['nyc ', 'newyork ', 'vacation ', 'traveling']

 

 

 

 

 

반응형

'Python' 카테고리의 다른 글

[Python] 예제 : 요일 확인 프로그램  (0) 2022.08.30
[Python] 예제 : 회문(Palindrom)  (0) 2022.08.29
[python] 반복문 for  (0) 2022.08.26
[python] 조건문 if  (0) 2022.08.25
[Python] 문자열 형식화, 문자열 함수  (0) 2022.08.24