💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    종합문제 | ✅저자: 이유정(박사)

    📝 문제1] 문자열 이어붙이기 vs 숫자 더하기 두 숫자를 입력받아, 문자열로 이어붙이기와 숫자 덧셈 결과를 출력해보세요.

    🖨️ 출력 결과 예시:

    입력A> 3
    입력B> 5
    문자열 자료: 35
    숫자 자료: 8
    

    ✅정답:

    a = input("입력A> ")
    b = input("입력B> ")
    
    print("문자열 자료:", a + b)        # 문자열 이어붙이기
    print("숫자 자료:", int(a) + int(b))  # 숫자 덧셈
    

    📝 문제2] 두 자리 숫자 나누기 두 자리 숫자(예: 45)를 입력받아, 각 자리의 숫자를 분리하여 더한 결과를 출력하세요.

    힌트: 문자열 인덱싱 사용
    예시 입력: 454 + 5 = 9
    

    🖨️ 출력 결과 예시:

    두 자리 숫자 입력> 45
    각 자리 수의 합: 9
    

    ✅정답:

    num = input("두 자리 숫자 입력> ")   # 예: "45"
    # 문자열 인덱싱으로 각 자리 접근
    digit1 = int(num[0])  # '4' → 4
    digit2 = int(num[1])  # '5' → 5
    print("각 자리 수의 합:", digit1 + digit2)  # 4 + 5 → 9
    

    🔍 해설: num[0], num[1]을 통해 문자열에서 각 자릿수를 가져옵니다. 각각을 정수형으로 변환하여 더합니다.


    📝 문제3] 각각을 정수형으로 변환하여 더합니다. 두 숫자를 입력받아 덧셈, 뺄셈, 곱셈, 나눗셈 결과를 출력하세요.

    🖨️ 출력 결과 예시:

    입력A> 12
    입력B> 4
    더하기: 16
    빼기: 8
    곱하기: 48
    나누기: 3.0
    

    ✅정답:

    a = int(input("입력A> "))
    b = int(input("입력B> "))
    
    print("더하기:", a + b)
    print("빼기:", a - b)
    print("곱하기:", a * b)
    print("나누기:", a / b)
    

    📝 문제4] 문자열을 정수로 변환하기 문자열 "100"을 정수로 바꾸고, 자료형과 함께 출력하세요.

    🖨️ 출력 결과 예시:

    <class 'int'> 100
    

    ✅정답:

    num = int("100")         # 문자열을 정수로 바꿈 
    print(type(num), num)    # 출력: <class 'int'> 100
    

    🔍 해설:
    "100"은 문자열이므로, int() 함수를 사용하여 정수로 변환합니다.


    📝 문제5] 문자열을 실수로 변환하고 곱하기 "3.14"를 숫자로 바꾸고 2를 곱한 결과를 출력하세요.

    🖨️ 출력 결과:

    6.28
    

    ✅정답:

    pi = float("3.14")            # 문자열을 실수로 바꿈 
    print(pi * 2)                 # 출력: 6.28
    

    🔍 해설:
    "3.14"는 문자이지만 float() 함수로 실수형으로 변환하여, 곱셈 연산이 가능합니다.


    📝 문제6] 사용자 입력 받아 곱하기 사용자에게 두 숫자를 입력받고, 실수로 바꾼 다음 곱한 결과를 출력하세요.

    🖨️ 출력 결과:

    입력1> 1.5
    입력2> 2
    곱한 값은 3.0 입니다.
    

    ✅정답:

    a = float(input("입력1> "))   # 사용자 입력을 실수로 변환 
    b = float(input("입력2> "))   # 사용자 입력을 실수로 변환 
    print("곱한 값은", a * b, "입니다.")
    

    🔍 해설:
    input()으로 입력받은 값을 float()으로 변환하여 소수점까지 정확하게 곱셈 결과를 구할 수 있습니다.


    💭직접 풀어보세요.

    ◽ inch 단위를 cm 단위로 변경하기

    📝 문제1] 출력결과와 같이 f-string을 이용하여 보기 좋게 문장을 출력하세요.

    1 inch = 2.54

    🖨️ 출력결과:

    10인치는 25.4cm 입니다.
    

    ✅ 정답:

    inch = 10
    cm = inch * 2.54
    print(f"{inch}인치는 {cm}cm 입니다.")
    

    🔍 설명: inch = 10 "10인치"를 변수에 저장합니다. 인치(inch)는 길이의 단위예요. cm = inch * 2.54 1인치는 2.54cm이니까, 10인치를 센티미터로 바꾸려면 10 * 2.54 = 25.4가 돼요. print(f"{inch}인치는 {cm}cm 입니다.") f-string을 이용해서 보기 좋게 문장을 출력합니다.


    📝 문제2] 사용자에게 인치 값을 직접 입력받게 하여 출력결과 처럼 나오게 수정해보세요.

    🖨️ 출력결과:

    인치를 입력하세요: 5
    5.0인치는 12.7cm 입니다.
    

    ✅ 정답:

    inch = input("인치를 입력하세요: ")  # str형 (문자)
    inch = float(inch)                  # 실수형으로 바꾸기
    cm = inch * 2.54
    print(f"{inch}인치는 {cm}cm 입니다.")
    

    🔍 설명: input("인치를 입력하세요: ") 사용자가 직접 값을 입력할 수 있도록 해요. 예를 들어 5라고 입력하면 "5"라는 문자로 저장돼요. float(inch) 입력한 문자열 "5"는 계산이 안 되기 때문에 숫자(소수 가능)로 바꿔줘요. cm = inch * 2.54 입력한 숫자를 센티미터로 변환해요. print(...) 변환된 결과를 출력해줘요.


    📝 문제3] 사용자로부터 숫자를 입력받아 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈) 결과를 출력하세요

    🖨️ 출력예시:

    첫 번째 숫자> 5
    두 번째 숫자> 6
    덧셈 결과: 11.0
    뺄셈 결과: -1.0
    곱셈 결과: 30.0
    나눗셈 결과: 0.8333333333333334
    

    ✅ 정답 코드:

    input_a = float(input("첫 번째 숫자> "))
    input_b = float(input("두 번째 숫자> "))
    
    print("덧셈 결과:", input_a + input_b)
    print("뺄셈 결과:", input_a - input_b)
    print("곱셈 결과:", input_a * input_b)
    print("나눗셈 결과:", input_a / input_b)
    

    📝 문제4] 아래 내용을 참조해여 원주율, 반지름, 원의 둘레, 원의 넓이를 출력하세요.

    원주율 = 3.14159265 반지름 = 10 원의 둘레 - 공식: 2πr 원의 넓이 - 공식: πr²

    ✅ 정답 코드:

    PI = 3.14159265 
    r = 10
    
    print("원주율 =", PI)
    print("반지름 =", r)
    print("원의 둘레 =", 2 * PI * r)  
    print("원의 넓이 =", PI * r * r)   
    

    🖨️ 출력결과:

    원주율 = 3.14159265
    반지름 = 10
    원의 둘레 = 62.831853
    원의 넓이 = 314.159265
    

    📝 문제1] 숫자 두 개를 문자열로 합쳐 출력하기 숫자 57을 이용해 "5 + 7 = 12" 형태로 출력하세요.

    ✅ 정답 코드:

    a = 5 b = 7 
    print("{} + {} = {}".format(a, b, a + b))
    

    🖨️ 출력 결과:

    5 + 7 = 12
    

    🔍 해설: {} 3개를 준비하고, .format(a, b, a+b)로 각각 첫 번째, 두 번째, 세 번째 자리에 값을 삽입합니다. a+b는 숫자 덧셈 결과(12)가 되어 마지막 {}에 들어갑니다.


    📝 문제2] 문자열과 변수 함께 출력하기 이름이 "지민"이고 나이가 21살일 때, "지민님의 나이는 21살입니다." 를 출력하세요.

    ✅ 정답 코드:

    name = "지민"
    age = 20
    print("{}님의 나이는 {}살입니다.".format(name, age))
    

    🖨️ 출력 결과:

    지민님의 나이는 21살입니다.
    

    🔍 해설: {}를 사용하여 문장 안에 name, age 변수를 삽입합니다. 중간에 따옴표나 + 연산자를 쓰지 않아도 자연스럽게 이어집니다.


    📝 문제3] 사용자 입력으로 문장 만들기 사용자에게 과일 이름과 개수를 입력받아 "사과를 3개 샀어요." 처럼 출력하세요.

    ✅ 정답 코드:

    fruit = input("과일 이름: ")    # 예: 사과
    count = input("개수: ")         # 예: 3
    
    print(fruit)
    print(count)
    print("{}를 {}개 샀어요.".format(fruit, count))
    

    🖨️ 예시 실행:

    과일 이름: 사과 
    개수: 3 
    사과를 3개 샀어요.
    

    🔍 해설: input() 함수는 항상 문자열(str)로 입력값을 받습니다. 별도의 변환 없이 format() 함수에 그대로 전달할 수 있습니다. {}를 통해 과일 이름과 개수를 순서대로 자연스럽게 넣어 출력합니다.


    📝 문제1] IndexError 수정하기
    아래의 코드는 IndexError가 발생하는데 오류가 발생하지 않도록 수정하세요.

    print("제품명: {}, 가격: {}, 수량: {}".format("노트북", 150만원))
    

    ✅ 정답 코드:

    print("제품명:{},가격:{},수량:{}".format("노트북","150만원","3개"))
    

    🖨️ 출력 결과:

    제품명: 노트북, 가격: 150만원, 수량: 3

    🔍 해설: 원본 코드에서는 값이 2개뿐이라 마지막 {}에서 에러가 발생했습니다. 수정된 코드에서는 .format()에 총 3개의 값을 제공하여 {}의 개수와 맞췄습니다.


    📝 문제2] 적절한 값 삽입하기
    아래 문장을 출력하기 위한 format() 코드를 작성해보세요.

    🖨️ 출력 결과:

    "서울에서 부산까지 거리는 약 400km입니다."
    

    ✅ 정답 코드:

    print("{}에서 {}까지 거리는 약 {}km입니다.".format("서울", "부산", 400))
    

    🖨️ 출력 결과:

    서울에서 부산까지 거리는 약 400km입니다.
    

    🔍 해설: {}는 총 3개, .format()에도 총 3개의 값이 정확하게 맞추어 들어갑니다. 순서대로 도시이름과 거리 숫자를 넣어주어 자연스러운 문장을 만듭니다.

    💬 보충설명 (현업 팁):
    format()을 사용할 때는 작성한 문장과 값이 많아질수록 개수가 맞지 않는 실수가 쉽게 발생하므로,
    코드를 작성한 뒤 반드시 테스트를 통해 확인하는 습관을 갖는 것이 중요합니다.


    📝 문제1] 위 코드의 출력 결과는?

    num = 52.0 
    print("Fixed point: {:.3f}".format(num))
    

    52
    52.0
    52.000000
    52.000

    ✅ 정답:52.000


    📝 문제2] 아래 중 출력 결과로 알맞은 것은?

    num = 52.273 
    print("{:.2f}".format(num)) 
    print("{:g}".format(num))
    

    52.27 / 52.273
    52.27 / 52.27
    52.27 / 52.3
    52.27 / 52

    ✅ 정답:52.27 / 52.273

    💬 :.2f는 소수점 2자리까지
    💬 :g는 가능한 한 간단한 형식이기 때문에 불필요한 0은 생략, 이 경우 그대로 52.273 입니다.


    📝 문제3] 지수 표현과 일반 표현 비교, 출력 결과 중 맞는 것은?

    num = 0.000012345 
    print("{:e}".format(num)) 
    print("{:g}".format(num))
    

    0.000012345 / 0.000012345
    1.234500e-05 / 1.2345e-05
    12345e-9 / 12.345
    1.23 / 0.000012345

    ✅ 정답:1.234500e-05 / 1.2345e-05

    💬 :e지수 표기 (e-지수)
    💬 :g도 작거나 크면 지수 표기로 표현하지만 간단한 형식으로 보여줌 (소수점 생략 등)

    TOP
    preload preload