반응형
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 |