오늘은 반복문에 대해 알아보자
n1 = int(input("정수 한 개를 입력하세요: "))
n2 = int(input("정수 한 개를 입력하세요: "))
n3 = int(input("정수 한 개를 입력하세요: "))
sum = n1 + n2 + n3
print(sum)
연산이 간단할 때는 반복문이 없어도 잘 처리할 수 있다
하지만 숫자가 엄청나게 커지거나 연산을 많이 한다면?
while 조건표현식:
코드블록
sum = 0 # 사용할 연산식은 = 0 써주기
n = 1
while n <= 10:
sum += n
n += 1
print(sum)

def sum_100() :
total = 0
n = 1
while total <= 100:
n = int(input("숫자를 입력하세요: "))
total += n
print(f"최종합계는 {total}")
sum_100()

def user_password():
password = 'HELLO'
while True:
user_input = input("비밀번호를 입력하세요: ")
if user_input == password:
print("인증성공")
break
else:
print("다시 입력하세요: ")
user_password()

for 변수 in 순서가 있는 객체:
코드블록
s = "hello"
for ch in s : # s 문자열을 하나씩 순회하면서 반복
print(ch)>> hfor 변수 in range:
코드블록
range내 특정 횟수/주기만큼 반복
# 1~10 까지 합
sum = 0
for n in range(1, 10):
sum += n
print(sum)
>> 45
def reverse_string(s):
reversed_s = ""
for char in s:
reversed_s = char + reversed_s
return reversed_s
s = input("문자열을 입력하세요: ")
reversed_s = reverse_string(s)
print(f"역순 결과는 {reversed_s}")

📌 역순되는 원리
reverse_s = ""
s= 'abc'
reverse_s = chr + reverse_s
= a + " " >> a
= b + a >> ba
= c + ba >> bac
import random
def random_sum(n):
total = 0
for _ in range(n):
random_num = random.randint(1, 100)
print(random_num)
total += random_num
return total
n = int(input("랜덤한 숫자를 입력하세요: "))
result = random_sum(n)
print(f"랜덤한 숫자의 합은 {result}")

📌 if문에서 else를 안 쓰는게 효율적이다
s = "지금 쇼핌몰에서 10번쨰 베스트 셀러 책은 뭐야?"
#while
char = 0
while char < len(s):
if s[char].isdigit():
print(char)
break
char += 1 #숫자를 찾지 못했을 때
#for
for char in range(len(s)):
if s[char].isdigit():
print(char)
break
>> 9
sum = 0
count = 0
while count < 10:
n = int(input("10개의 양의 정수를 입력하세요: "))
if n <= 0:
continue
sum += n
count += 1
print("입력한 숫자 개수는: ", count)
print("숫자 총 합은: ", sum)

def Sum(num):
if num > 1:
sum = 0
for i in range(1, num+1):
sum += i
return sum
else:
print("잘못된 출력입니다")
user_input = int(input("정수를 입력하세요(1이상): "))
print(Sum(user_input))
# 함수를 하나만 사용한다면 함수 안에서 input을 줄 수 있다
def Sum():
user_input = int(input("정수를 입력하세요(1이상): "))
if user_input > 1:
sum = 0
for i in range(1, user_input +1):
sum += i
return sum
else:
print("잘못된 출력입니다")
result = Sum()
print(result)

def star():
n = int(input("정수를 입력하세요: "))
star_total = ""
while n > 0:
star_total += "*"
n -= 1 # n=0이 될때까지 반복
print(star_total)
return star_total
star()

import random
def correct_num():
num = random.randint(1,100)
while True:
user_num = int(input("숫자를 입력하세요: "))
if user_num > num:
print("당신의 숫자가 정답보다 큽니다")
elif user_num < num:
print("당신의 숫자가 정답보다 작습니다")
else:
print("정답입니다")
break
correct_num()

def solution():
n = int(input("구구단을 출력해보고 싶은 숫자를 입력하세요(1~9): "))
for i in range(1, 10):
print(f"{n}x{i}={n*i} ")
solution()

def sum_string():
s = input("숫자를 포함한 문자열을 입력하세요: ")
total = 0
index = 0
while index < len(s):
if s[index].isdigit():
total += int(s[index])
index += 1
print('문자열 내 숫자합은: ', total)
sum_string()
