WeniVooks

검색

Cursor 톺아보기 with Python

더 안전한 코드 만들기

Chapter 3-3: 더 안전한 코드 만들기

🎯 이번 시간에 배울 것
  • 코드에 안전장치 추가하기
  • 사용자가 잘못 입력해도 프로그램이 꺼지지 않게 하기
🌟 지난 시간 돌아보기

Chapter 3-2에서 코드에 설명을 추가하는 방법을 배웠죠!

하지만 아직도 이런 문제가 있어요:

  • "사용자가 숫자 대신 문자를 입력하면 프로그램이 꺼져요"
  • "0으로 나누면 에러가 나요"

바로 이럴 때 필요한 것이 안전장치입니다!

🚨 왜 안전장치가 필요할까요?
안전장치가 없는 코드
print("나누기 계산기")
a = int(input("첫 번째 숫자: "))
b = int(input("두 번째 숫자: "))
result = a / b
print("결과:", result)
print("나누기 계산기")
a = int(input("첫 번째 숫자: "))
b = int(input("두 번째 숫자: "))
result = a / b
print("결과:", result)

어떤 문제들이 생길까요? 🤔

  1. 사용자가 "안녕" 입력 → 프로그램 꺼짐
  2. 두 번째 숫자로 0 입력 → 프로그램 꺼짐
안전장치가 있는 코드
print("안전한 나누기 계산기")
 
# 첫 번째 숫자 입력받기
first_input = input("첫 번째 숫자: ")
 
# 숫자인지 확인하기
if first_input.isdigit():
    a = int(first_input)
    
    # 두 번째 숫자 입력받기
    second_input = input("두 번째 숫자: ")
    
    if second_input.isdigit():
        b = int(second_input)
        
        # 0으로 나누기 방지
        if b == 0:
            print("0으로 나눌 수 없어요!")
        else:
            # 계산하기
            result = a / b
            print("결과:", result)
    else:
        print("두 번째 입력이 숫자가 아니에요!")
else:
    print("첫 번째 입력이 숫자가 아니에요!")
print("안전한 나누기 계산기")
 
# 첫 번째 숫자 입력받기
first_input = input("첫 번째 숫자: ")
 
# 숫자인지 확인하기
if first_input.isdigit():
    a = int(first_input)
    
    # 두 번째 숫자 입력받기
    second_input = input("두 번째 숫자: ")
    
    if second_input.isdigit():
        b = int(second_input)
        
        # 0으로 나누기 방지
        if b == 0:
            print("0으로 나눌 수 없어요!")
        else:
            # 계산하기
            result = a / b
            print("결과:", result)
    else:
        print("두 번째 입력이 숫자가 아니에요!")
else:
    print("첫 번째 입력이 숫자가 아니에요!")

이제 어떤 입력을 해도 프로그램이 안전해요! 😊

🚀 실습 1: 나이 입력 프로그램 안전하게 만들기
원래 코드
print("나이 확인 프로그램")
age = int(input("나이를 입력하세요: "))
if age >= 18:
    print("성인입니다.")
else:
    print("미성년자입니다.")
print("나이 확인 프로그램")
age = int(input("나이를 입력하세요: "))
if age >= 18:
    print("성인입니다.")
else:
    print("미성년자입니다.")
Edit로 안전장치 추가하기

1. 코드 전체 선택하고 Ctrl+K 2. 요청: "이 코드에 안전장치를 추가해주세요"

개선된 결과
print("안전한 나이 확인 프로그램")
 
# 나이 입력받기
age_input = input("나이를 입력하세요: ")
 
# 숫자인지 확인하기
if age_input.isdigit():
    age = int(age_input)
    
    # 음수는 isdigit()에서 이미 걸러짐
    # 너무 큰 숫자 확인
    if age > 150:
        print("올바른 나이를 입력해주세요!")
    else:
        # 성인 여부 판단
        if age >= 18:
            print(f"{age}세는 성인입니다.")
        else:
            print(f"{age}세는 미성년자입니다.")
else:
    print("숫자로만 입력해주세요!")
print("안전한 나이 확인 프로그램")
 
# 나이 입력받기
age_input = input("나이를 입력하세요: ")
 
# 숫자인지 확인하기
if age_input.isdigit():
    age = int(age_input)
    
    # 음수는 isdigit()에서 이미 걸러짐
    # 너무 큰 숫자 확인
    if age > 150:
        print("올바른 나이를 입력해주세요!")
    else:
        # 성인 여부 판단
        if age >= 18:
            print(f"{age}세는 성인입니다.")
        else:
            print(f"{age}세는 미성년자입니다.")
else:
    print("숫자로만 입력해주세요!")
🎉 놀라운 변화!

Before: 잘못 입력하면 프로그램 꺼짐 After: 어떤 입력을 해도 안전함

🎮 실습 2: 간단한 계산기 안전하게 만들기
원래 코드
print("간단한 계산기")
num1 = int(input("첫 번째 숫자: "))
num2 = int(input("두 번째 숫자: "))
 
print("더하기:", num1 + num2)
print("나누기:", num1 / num2)
print("간단한 계산기")
num1 = int(input("첫 번째 숫자: "))
num2 = int(input("두 번째 숫자: "))
 
print("더하기:", num1 + num2)
print("나누기:", num1 / num2)
Edit으로 안전장치 추가

코드 전체 선택 → Ctrl+K → "이 계산기에 안전장치를 추가해주세요"

개선된 결과
print("안전한 계산기")
 
# 첫 번째 숫자 입력받기
first_input = input("첫 번째 숫자: ")
 
# 첫 번째 숫자가 숫자인지 확인
if first_input.isdigit():
    num1 = int(first_input)
    
    # 두 번째 숫자 입력받기
    second_input = input("두 번째 숫자: ")
    
    # 두 번째 숫자가 숫자인지 확인
    if second_input.isdigit():
        num2 = int(second_input)
        
        # 더하기는 항상 안전함
        print("더하기:", num1 + num2)
        
        # 나누기는 0으로 나누기 확인 필요
        if num2 == 0:
            print("나누기: 0으로 나눌 수 없어요!")
        else:
            print("나누기:", num1 / num2)
    else:
        print("두 번째 입력이 숫자가 아니에요!")
else:
    print("첫 번째 입력이 숫자가 아니에요!")
print("안전한 계산기")
 
# 첫 번째 숫자 입력받기
first_input = input("첫 번째 숫자: ")
 
# 첫 번째 숫자가 숫자인지 확인
if first_input.isdigit():
    num1 = int(first_input)
    
    # 두 번째 숫자 입력받기
    second_input = input("두 번째 숫자: ")
    
    # 두 번째 숫자가 숫자인지 확인
    if second_input.isdigit():
        num2 = int(second_input)
        
        # 더하기는 항상 안전함
        print("더하기:", num1 + num2)
        
        # 나누기는 0으로 나누기 확인 필요
        if num2 == 0:
            print("나누기: 0으로 나눌 수 없어요!")
        else:
            print("나누기:", num1 / num2)
    else:
        print("두 번째 입력이 숫자가 아니에요!")
else:
    print("첫 번째 입력이 숫자가 아니에요!")
🔧 안전장치 만드는 방법
기본 패턴
# 사용자 입력받기
user_input = input("숫자 입력: ")
 
# 안전하게 확인하기
if user_input.isdigit():
    # 숫자라면 계속 진행
    number = int(user_input)
    print("입력한 숫자:", number)
else:
    # 숫자가 아니라면 에러 메시지
    print("숫자만 입력해주세요!")
# 사용자 입력받기
user_input = input("숫자 입력: ")
 
# 안전하게 확인하기
if user_input.isdigit():
    # 숫자라면 계속 진행
    number = int(user_input)
    print("입력한 숫자:", number)
else:
    # 숫자가 아니라면 에러 메시지
    print("숫자만 입력해주세요!")
자주 사용하는 안전장치들
# 1. 숫자 입력 안전하게 받기
user_input = input("숫자 입력: ")
if user_input.isdigit():
    number = int(user_input)
    print("입력한 숫자:", number)
else:
    print("숫자만 입력해주세요!")
 
# 2. 0으로 나누기 방지
if b != 0:
    result = a / b
    print("결과:", result)
else:
    print("0으로 나눌 수 없어요!")
 
# 3. 범위 확인
if 1 <= number <= 100:
    print("올바른 범위입니다!")
else:
    print("1부터 100 사이의 숫자를 입력해주세요!")
# 1. 숫자 입력 안전하게 받기
user_input = input("숫자 입력: ")
if user_input.isdigit():
    number = int(user_input)
    print("입력한 숫자:", number)
else:
    print("숫자만 입력해주세요!")
 
# 2. 0으로 나누기 방지
if b != 0:
    result = a / b
    print("결과:", result)
else:
    print("0으로 나눌 수 없어요!")
 
# 3. 범위 확인
if 1 <= number <= 100:
    print("올바른 범위입니다!")
else:
    print("1부터 100 사이의 숫자를 입력해주세요!")
🎯 실습 3: 나만의 프로그램 안전하게 만들기
미션: 점수 입력 프로그램

시작 코드:

print("등급 확인 프로그램")
score = int(input("점수 입력: "))
 
if score >= 90:
    print("A등급")
elif score >= 80:
    print("B등급")
elif score >= 70:
    print("C등급")
else:
    print("F등급")
print("등급 확인 프로그램")
score = int(input("점수 입력: "))
 
if score >= 90:
    print("A등급")
elif score >= 80:
    print("B등급")
elif score >= 70:
    print("C등급")
else:
    print("F등급")
개선 미션

1. 코드 전체 선택하고 Ctrl+K 2. 요청: "이 점수 프로그램에 안전장치를 추가해주세요"

다음과 같이 개선될 거예요:

print("안전한 등급 확인 프로그램")
 
# 점수 입력받기
score_input = input("점수를 입력하세요 (0-100): ")
 
# 숫자인지 확인하기
if score_input.isdigit():
    score = int(score_input)
    
    # 점수 범위 확인
    if score < 0 or score > 100:
        print("0부터 100 사이의 점수를 입력해주세요!")
    else:
        # 등급 계산
        if score >= 90:
            print(f"{score}점은 A등급입니다!")
        elif score >= 80:
            print(f"{score}점은 B등급입니다!")
        elif score >= 70:
            print(f"{score}점은 C등급입니다!")
        else:
            print(f"{score}점은 F등급입니다!")
else:
    print("숫자로만 입력해주세요!")
print("안전한 등급 확인 프로그램")
 
# 점수 입력받기
score_input = input("점수를 입력하세요 (0-100): ")
 
# 숫자인지 확인하기
if score_input.isdigit():
    score = int(score_input)
    
    # 점수 범위 확인
    if score < 0 or score > 100:
        print("0부터 100 사이의 점수를 입력해주세요!")
    else:
        # 등급 계산
        if score >= 90:
            print(f"{score}점은 A등급입니다!")
        elif score >= 80:
            print(f"{score}점은 B등급입니다!")
        elif score >= 70:
            print(f"{score}점은 C등급입니다!")
        else:
            print(f"{score}점은 F등급입니다!")
else:
    print("숫자로만 입력해주세요!")
🌟 학습 성과 체크
오늘 배운 내용
✅ .isdigit()로 숫자 입력 확인하기
✅ 0으로 나누기 방지하기
✅ 입력 범위 확인하기
✅ 사용자 친화적 에러 메시지 만들기
✅ .isdigit()로 숫자 입력 확인하기
✅ 0으로 나누기 방지하기
✅ 입력 범위 확인하기
✅ 사용자 친화적 에러 메시지 만들기
🎉 마무리

축하합니다! 이제 여러분은 안전한 코드를 만들 수 있습니다! ✨

🔥 오늘의 성취
  1. 입력 검증 방법 습득
  2. 안전장치 추가하는 방법 습득
  3. 사용자 친화적 에러 메시지 작성법 습득
💡 다음 시간 예고

다음 Chapter 3-4에서는 **"종합 실습 - 완전한 프로그램 만들기"**를 배워보겠습니다!

🎯 오늘의 과제

직접 Edit 기능을 사용해서 여러분의 프로그램에 안전장치를 추가해보세요!

여러분의 코드는 이제 안전하고 믿을 수 있습니다! 🚀

{"packages":["numpy","pandas","matplotlib","lxml"]}
3.2 코드에 설명 추가하기3.4 완전한 프로그램 만들기