Ch 02. 변수와 데이터 타입 활용하기 [파이썬 고등 수학 정복]

파이썬 수학 계산 핵심!💡 Ch.2: 변수로 값 저장/재사용, 데이터 타입(int, float, str) 배우기. input()으로 값 받아 계산하는 법까지! #파이썬 #고등수학 #파이썬기초 #변수 #데이터타입

Part 1: 수학 공부를 위한 파이썬 첫걸음

Chapter 2: 컴퓨터에게 기억시키기 (Making the Computer Remember - Variables and Data Types)

학습 목표

  • 변수를 사용하여 데이터(값)를 저장하고 재사용할 수 있다.
  • 파이썬의 기본적인 데이터 타입인 정수(int), 실수(float), 문자열(str)을 구분하고 사용할 수 있다.
  • type() 함수를 사용하여 변수에 저장된 값의 데이터 타입을 확인할 수 있다.
  • input() 함수를 사용하여 사용자로부터 데이터를 입력받고, 이를 적절한 타입으로 변환하여 사용할 수 있다.

 

1. 데이터에 이름표 붙이기: 변수 (Variable)

수학 문제를 풀 때, 원주율을 π라고 쓰거나, 어떤 모르는 값을 x라고 두는 것처럼, 프로그래밍에서도 값에 이름을 붙여 저장하고 사용할 수 있습니다. 이렇게 값에 이름을 붙인 것을 변수(Variable)라고 합니다. 변수를 사용하면 값을 반복해서 입력할 필요가 없고, 코드의 의미를 더 명확하게 만들 수 있습니다. 마치 데이터 상자에 이름표를 붙여두는 것과 같습니다.

파이썬에서 변수를 만들고 값을 저장하는 방법은 매우 간단합니다. = 기호(할당 연산자)를 사용합니다.

변수이름 = 값

# radius 라는 이름의 변수에 5 라는 값을 저장
radius = 5

# pi 라는 이름의 변수에 3.14159 값을 저장
pi = 3.14159

# name 이라는 이름의 변수에 "Alice" 라는 문자열 값을 저장
name = "Alice"

# 변수에 저장된 값 출력하기
print(radius)
print(pi)
print(name)

실행 결과:

5
3.14159
Alice

변수 이름 규칙:

  • 영문자, 숫자, 밑줄(_)을 사용할 수 있습니다.
  • 숫자로 시작할 수 없습니다. (예: 1st_num 은 안됨)
  • 파이썬 예약어(키워드: if, for, while, class 등 파이썬 문법에 사용되는 단어)는 변수 이름으로 사용할 수 없습니다.
  • 대소문자를 구분합니다. (my_variableMy_Variable 은 다른 변수입니다.)
  • 변수 이름은 그 변수가 담고 있는 데이터의 의미를 잘 나타내도록 짓는 것이 좋습니다. (예: r 보다는 radius)

 

2. 값의 종류 구분하기: 데이터 타입 (Data Types)

변수에는 다양한 종류의 값을 저장할 수 있습니다. 파이썬은 값의 종류, 즉 데이터 타입(Data Type)을 중요하게 생각합니다. 수학에서도 정수, 유리수, 실수를 구분하듯이 말이죠. 자주 사용하는 기본 데이터 타입은 다음과 같습니다.

  • int (Integer): 정수. 소수점 이하가 없는 숫자입니다. (예: 17, 0, -100)
  • float (Floating-point number): 실수. 소수점 이하가 있는 숫자입니다. (예: 3.14, -2.5, 1.0)
  • str (String): 문자열. 글자들의 나열입니다. 작은따옴표(')나 큰따옴표(")로 감싸서 표현합니다. (예: "Hello", 'Python', "123") 주의: 따옴표 안의 숫자는 문자열로 취급됩니다.

type() 함수로 데이터 타입 확인하기

변수에 어떤 종류의 값이 들어있는지 확인하려면 type() 함수를 사용합니다.

age = 17          # 정수 (int)
height = 175.5    # 실수 (float)
school = "코딩고" # 문자열 (str)
score = "100"     # 문자열 (str) - 따옴표 안에 있음!

print( type(age) )     # 출력: <class 'int'>
print( type(height) )  # 출력: <class 'float'>
print( type(school) )  # 출력: <class 'str'>
print( type(score) )   # 출력: <class 'str'>

데이터 타입을 아는 것은 중요합니다. 왜냐하면 타입에 따라 할 수 있는 연산이 다르기 때문입니다. 예를 들어, 숫자끼리는 덧셈이 가능하지만, 숫자와 문자열을 바로 더할 수는 없습니다 (TypeError 발생).

 

3. 변수를 활용한 계산

변수를 사용하면 계산 과정을 더 명확하게 표현하고, 값을 변경하여 재계산하기도 쉽습니다.

# 원의 넓이 계산
radius = 5
pi = 3.14159

circle_area = pi * radius**2 # 변수를 이용하여 계산
print("반지름:", radius)
print("원주율:", pi)
print("원의 넓이:", circle_area)

print("-" * 20) # 구분선 출력

# 반지름 변경 후 다시 계산
radius = 10
circle_area = pi * radius**2
print("변경된 반지름:", radius)
print("변경된 원의 넓이:", circle_area)

실행 결과:

반지름: 5
원주율: 3.14159
원의 넓이: 78.53975
--------------------
변경된 반지름: 10
변경된 원의 넓이: 314.159

 

4. 사용자에게 물어보기: input() 함수

프로그램 실행 중에 사용자로부터 직접 값을 입력받고 싶을 때는 input() 함수를 사용합니다. input() 함수는 사용자에게 메시지를 보여주고, 사용자가 입력한 값을 문자열(str) 타입으로 반환합니다.

user_name = input("이름을 입력하세요: ")
print("안녕하세요,", user_name, "님!")

age_str = input("나이를 입력하세요: ")
print("입력하신 나이는", age_str, "세 입니다.")
print("나이의 데이터 타입:", type(age_str)) # str 타입임을 확인!

주의: input()으로 받은 값은 항상 문자열(str) 입니다. 만약 입력받은 값을 숫자로 계산하고 싶다면, 적절한 타입으로 변환해야 합니다.

타입 변환 (Type Conversion):

  • int(문자열 또는 실수): 문자열이나 실수를 정수로 변환합니다.
  • float(문자열 또는 정수): 문자열이나 정수를 실수로 변환합니다.
  • str(숫자): 숫자를 문자열로 변환합니다.
num1_str = input("첫 번째 숫자를 입력하세요: ")
num2_str = input("두 번째 숫자를 입력하세요: ")

# 문자열 상태로 더하면? -> 문자열 연결이 됨! (예: "10" + "20" -> "1020")
print("문자열 덧셈 결과:", num1_str + num2_str)

# 숫자로 변환하여 더하기
num1 = int(num1_str)  # 정수로 변환
num2 = int(num2_str)  # 정수로 변환
sum_result = num1 + num2
print("숫자 덧셈 결과:", sum_result)
print("덧셈 결과의 타입:", type(sum_result)) # int 타입

# 실수가 입력될 가능성이 있다면 float() 사용
base_str = input("삼각형의 밑변 길이를 입력하세요: ")
height_str = input("삼각형의 높이를 입력하세요: ")
base = float(base_str)     # 실수로 변환
height = float(height_str) # 실수로 변환
triangle_area = 0.5 * base * height
print("삼각형의 넓이:", triangle_area)

직접 해보기 (Follow Along Exercise)

  1. 자신의 이름과 좋아하는 과목을 각각 my_name, fav_subject 변수에 저장하세요.
  2. 두 변수를 이용하여 "제 이름은 [이름]이고, 좋아하는 과목은 [과목]입니다." 형식으로 문장을 만들어 출력하세요. (print() 함수는 여러 값을 콤마(,)로 구분하여 전달하면 띄어쓰기로 연결해 출력합니다.)
  3. 사용자에게 태어난 연도를 입력받아, int()로 변환한 후, 올해 연도(예: 2024)에서 빼서 만 나이를 계산하여 출력하는 코드를 작성해보세요.
# 직접 코드를 작성하고 실행해보세요!
my_name = "김파이"
fav_subject = "수학"
print("제 이름은", my_name, "이고, 좋아하는 과목은", fav_subject, "입니다.")

birth_year_str = input("태어난 연도를 입력하세요: ")
birth_year = int(birth_year_str)
current_year = 2024 # 이 부분은 필요에 따라 변경
age = current_year - birth_year
print("당신의 만 나이는", age, "세 입니다.")

연습 문제

  1. 두 변수 ab에 각각 10과 20을 저장한 후, 두 변수의 값을 서로 바꾸어 a에는 20, b에는 10이 저장되도록 하는 파이썬 코드를 작성하세요. (힌트: 임시 변수를 사용하거나, 파이썬의 특별한 방식을 찾아보세요: a, b = b, a)
  2. 사용자로부터 원의 반지름을 입력받아 (실수로 변환), 그 원의 둘레(2 * π * r)와 넓이(π * r²)를 계산하여 출력하는 프로그램을 작성하세요. (π 값은 3.14159 또는 math.pi 사용 - import math 필요)
  3. 사용자로부터 국어, 영어, 수학 점수를 각각 입력받아 (정수로 변환), 세 과목의 총점과 평균 점수를 계산하여 출력하는 프로그램을 작성하세요. (평균은 실수가 나올 수 있습니다.)

 

COMMENTS

BLOGGER: 4
  1. 두 변수의 값 서로 바꾸기

    두 변수 a와 b에 각각 10과 20을 저장한 후, 두 변수의 값을 서로 바꾸는 파이썬 코드는 다음과 같이 여러 방법으로 작성할 수 있습니다.

    방법 1: 임시 변수 사용 (가장 일반적인 방법)

    다른 언어에서도 흔히 사용하는 방식으로, 값을 잠시 저장해 둘 임시 변수(예: temp)를 활용합니다.

    # 초기값 설정
    a = 10
    b = 20
    print(f"바꾸기 전: a = {a}, b = {b}")
    # 임시 변수(temp)를 이용한 값 교환 temp = a
    # a의 값(10)을 temp에 잠시 저장 a = b
    # b의 값(20)을 a에 저장 (이제 a는 20) b = temp
    # temp에 저장해둔 원래 a의 값(10)을 b에 저장 (이제 b는 10)
    # 결과 확인
    print(f"바꾼 후: a = {a}, b = {b}")

    실행 결과:

    바꾸기 전: a = 10, b = 20
    바꾼 후: a = 20, b = 10


    방법 2: 파이썬의 특별한 방식 사용 (튜플 패킹/언패킹)

    파이썬에서는 여러 값을 동시에 할당하는 기능을 이용하여 훨씬 간결하게 변수 값을 교환할 수 있습니다. 이를 '튜플 패킹/언패킹'이라고 부르기도 합니다.

    # 초기값 설정
    a = 10 b = 20
    print(f"바꾸기 전: a = {a}, b = {b}")
    # 파이썬의 동시 할당 기능을 이용한 값 교환 a, b = b, a
    # 오른쪽에 있는 b와 a의 값을 동시에 왼쪽의 a와 b에 할당
    # 결과 확인
    print(f"바꾼 후: a = {a}, b = {b}")

    실행 결과:

    바꾸기 전: a = 10, b = 20
    바꾼 후: a = 20, b = 10


    설명:

    방법 1은 논리적으로 이해하기 쉽고 대부분의 프로그래밍 언어에서 통용되는 기본적인 방법입니다.

    방법 2는 파이썬의 간결하고 강력한 특징을 보여주는 대표적인 예시입니다. 코드가 짧아지고 임시 변수를 만들 필요가 없어 더 효율적입니다. 파이썬에서는 이 방법을 사용하는 것이 일반적입니다.

    책에는 두 가지 방법을 모두 소개하고, 파이썬에서는 두 번째 방법이 더 선호된다는 점을 설명해주면 학생들이 파이썬의 특징을 이해하는 데 도움이 될 것입니다.

    답글삭제
  2. ## 두 변수의 값 서로 바꾸기

    두 변수 `a`와 `b`에 각각 10과 20을 저장한 후, 두 변수의 값을 서로 바꾸는 파이썬 코드는 다음과 같이 여러 방법으로 작성할 수 있습니다.

    **방법 1: 임시 변수 사용 (가장 일반적인 방법)**

    다른 언어에서도 흔히 사용하는 방식으로, 값을 잠시 저장해 둘 임시 변수(예: `temp`)를 활용합니다.

    ```python
    # 초기값 설정
    a = 10
    b = 20
    print(f"바꾸기 전: a = {a}, b = {b}")

    # 임시 변수(temp)를 이용한 값 교환
    temp = a # a의 값(10)을 temp에 잠시 저장
    a = b # b의 값(20)을 a에 저장 (이제 a는 20)
    b = temp # temp에 저장해둔 원래 a의 값(10)을 b에 저장 (이제 b는 10)

    # 결과 확인
    print(f"바꾼 후: a = {a}, b = {b}")


    ```

    **실행 결과:**

    ```
    바꾸기 전: a = 10, b = 20
    바꾼 후: a = 20, b = 10
    ```

    **방법 2: 파이썬의 특별한 방식 사용 (튜플 패킹/언패킹)**

    파이썬에서는 여러 값을 동시에 할당하는 기능을 이용하여 훨씬 간결하게 변수 값을 교환할 수 있습니다. 이를 '튜플 패킹/언패킹'이라고 부르기도 합니다.

    ```python
    # 초기값 설정
    a = 10
    b = 20
    print(f"바꾸기 전: a = {a}, b = {b}")

    # 파이썬의 동시 할당 기능을 이용한 값 교환
    a, b = b, a # 오른쪽에 있는 b와 a의 값을 동시에 왼쪽의 a와 b에 할당

    # 결과 확인
    print(f"바꾼 후: a = {a}, b = {b}")


    ```

    **실행 결과:**

    ```
    바꾸기 전: a = 10, b = 20
    바꾼 후: a = 20, b = 10
    ```

    **설명:**

    * **방법 1**은 논리적으로 이해하기 쉽고 대부분의 프로그래밍 언어에서 통용되는 기본적인 방법입니다.
    * **방법 2**는 파이썬의 간결하고 강력한 특징을 보여주는 대표적인 예시입니다. 코드가 짧아지고 임시 변수를 만들 필요가 없어 더 효율적입니다. 파이썬에서는 이 방법을 사용하는 것이 일반적입니다.

    책에는 두 가지 방법을 모두 소개하고, 파이썬에서는 두 번째 방법이 더 선호된다는 점을 설명해주면 학생들이 파이썬의 특징을 이해하는 데 도움이 될 것입니다.

    답글삭제
  3. ## 원의 둘레와 넓이 계산 프로그램

    사용자로부터 원의 반지름을 입력받아 원의 둘레와 넓이를 계산하고 출력하는 파이썬 코드입니다. 두 가지 방법(math 모듈 사용 / 직접 π 값 사용)으로 작성할 수 있습니다.

    **방법 1: `math` 모듈의 `pi` 사용 (권장)**

    `math` 모듈을 사용하면 더 정확한 π 값을 편리하게 사용할 수 있습니다.

    ```python
    import math # 수학 관련 함수 및 상수를 사용하기 위해 math 모듈을 가져옵니다.

    # 1. 사용자로부터 반지름 입력받기 (문자열로 입력됨)
    radius_str = input("원의 반지름을 입력하세요: ")

    # 2. 입력받은 문자열을 실수(float)로 변환
    radius = float(radius_str)

    # 3. math.pi를 사용하여 원주율(π) 값 사용
    pi_value = math.pi

    # 4. 원의 둘레 계산 (2 * π * r)
    circumference = 2 * pi_value * radius

    # 5. 원의 넓이 계산 (π * r²)
    # r²은 r * r 또는 r ** 2 로 계산할 수 있습니다.
    area = pi_value * (radius ** 2)

    # 6. 결과 출력 (f-string을 사용하여 깔끔하게 출력)
    print(f"\n반지름: {radius}")
    print(f"원의 둘레: {circumference}")
    print(f"원의 넓이: {area}")


    ```

    **방법 2: π 값을 직접 지정 (3.14159 사용)**

    `math` 모듈을 사용하지 않고 π의 근사값을 직접 변수에 저장하여 사용할 수도 있습니다.

    ```python
    # 1. 사용자로부터 반지름 입력받기
    radius_str = input("원의 반지름을 입력하세요: ")

    # 2. 입력받은 문자열을 실수(float)로 변환
    radius = float(radius_str)

    # 3. 원주율(π) 값 직접 지정
    pi_value = 3.14159

    # 4. 원의 둘레 계산 (2 * π * r)
    circumference = 2 * pi_value * radius

    # 5. 원의 넓이 계산 (π * r²)
    area = pi_value * (radius ** 2)

    # 6. 결과 출력
    print(f"\n반지름: {radius}")
    print(f"원의 둘레: {circumference}")
    print(f"원의 넓이: {area}")


    ```

    **코드 설명:**

    1. **`import math`**: (방법 1) 수학 계산에 필요한 도구(함수, 상수)가 들어있는 `math` 모듈을 불러옵니다.
    2. **`input("원의 반지름을 입력하세요: ")`**: 사용자에게 메시지를 보여주고 키보드로 입력받습니다. 입력된 값은 항상 **문자열** 형태입니다.
    3. **`float()`**: `input()`으로 받은 문자열을 계산에 사용할 수 있도록 **실수(소수점이 있는 숫자)** 형태로 변환합니다.
    4. **`pi_value = math.pi`** 또는 **`pi_value = 3.14159`**: 원주율 값을 `pi_value` 변수에 저장합니다. `math.pi`가 더 정확합니다.
    5. **`circumference = 2 * pi_value * radius`**: 원의 둘레를 계산하는 공식을 코드로 구현합니다.
    6. **`area = pi_value * (radius ** 2)`**: 원의 넓이를 계산하는 공식을 코드로 구현합니다. `** 2`는 제곱을 의미합니다.
    7. **`print(f"...")`**: f-string 문법을 사용하여 변수(`radius`, `circumference`, `area`)의 값을 문자열 안에 넣어 깔끔하게 출력합니다. `\n`은 줄바꿈을 의미합니다.

    이 예제들을 통해 학생들은 사용자 입력(`input`), 자료형 변환(`float`), 모듈 사용(`import math`), 변수 활용, 기본적인 수학 연산, 그리고 결과 출력(`print`와 f-string) 등 파이썬 프로그래밍의 기초적인 요소들을 배울 수 있습니다.

    답글삭제
  4. ## 세 과목 총점 및 평균 계산 프로그램

    사용자로부터 국어, 영어, 수학 점수를 각각 입력받아 총점과 평균 점수를 계산하여 출력하는 파이썬 프로그램입니다.

    ```python
    # 1. 사용자로부터 각 과목 점수 입력받기
    # input() 함수는 문자열을 반환하므로, int()를 사용하여 정수로 변환합니다.
    korean_score_str = input("국어 점수를 입력하세요: ")
    korean_score = int(korean_score_str)

    english_score_str = input("영어 점수를 입력하세요: ")
    english_score = int(english_score_str)

    math_score_str = input("수학 점수를 입력하세요: ")
    math_score = int(math_score_str)

    # (더 간결한 방법) 입력과 변환을 한 줄에 처리할 수도 있습니다.
    # korean_score = int(input("국어 점수를 입력하세요: "))
    # english_score = int(input("영어 점수를 입력하세요: "))
    # math_score = int(input("수학 점수를 입력하세요: "))

    # 2. 세 과목의 총점 계산
    total_score = korean_score + english_score + math_score

    # 3. 평균 점수 계산
    # 총점을 과목 수(3)으로 나눕니다.
    # 파이썬에서 나눗셈(/) 결과는 항상 실수(float)입니다.
    average_score = total_score / 3

    # 4. 결과 출력
    # f-string을 사용하여 변수 값을 포함한 문자열을 깔끔하게 출력합니다.
    print("\n--- 점수 결과 ---")
    print(f"입력된 점수: 국어={korean_score}, 영어={english_score}, 수학={math_score}")
    print(f"총점: {total_score}")
    print(f"평균: {average_score}") # 평균 점수는 소수점 이하까지 표시될 수 있습니다.


    ```

    **코드 설명:**

    1. **`input("메시지")`**: 사용자에게 "메시지"를 보여주고 키보드로 입력을 기다립니다. 입력된 내용은 **문자열**로 취급됩니다.
    2. **`int()`**: 문자열 형태의 숫자를 실제 **정수** 숫자로 변환해줍니다. 점수는 보통 정수이므로 `int()`를 사용합니다. (만약 소수점 입력도 가능하다면 `float()`를 사용해야 합니다.)
    3. **`total_score = korean_score + english_score + math_score`**: 세 과목의 점수를 더하여 총점을 계산하고 `total_score` 변수에 저장합니다.
    4. **`average_score = total_score / 3`**: 계산된 총점을 과목 수인 3으로 나누어 평균 점수를 계산하고 `average_score` 변수에 저장합니다. 나눗셈 연산자 `/`는 결과가 정수로 나누어 떨어지더라도 항상 실수(float)형태로 결과를 반환합니다. 예를 들어 총점이 270이면 평균은 90.0 이 됩니다.
    5. **`print(f"...")`**: f-string 문법을 사용하여 계산된 총점과 평균 점수를 포함한 결과를 화면에 보기 좋게 출력합니다. `\n`은 줄바꿈을 의미합니다.

    이 예제를 통해 학생들은 사용자로부터 여러 값을 입력받고, 적절한 자료형(정수)으로 변환하며, 사칙연산(덧셈, 나눗셈)을 수행하고, 그 결과를 형식에 맞춰 출력하는 기본적인 프로그래밍 흐름을 연습할 수 있습니다.

    답글삭제

이름

건강,21,경제,8,교통수단,6,선거,2,세금,1,시니어,1,음식,9,정부,7,집안관리,5,평생교육,15,software,11,
ltr
item
아이스콘.day: Ch 02. 변수와 데이터 타입 활용하기 [파이썬 고등 수학 정복]
Ch 02. 변수와 데이터 타입 활용하기 [파이썬 고등 수학 정복]
파이썬 수학 계산 핵심!💡 Ch.2: 변수로 값 저장/재사용, 데이터 타입(int, float, str) 배우기. input()으로 값 받아 계산하는 법까지! #파이썬 #고등수학 #파이썬기초 #변수 #데이터타입
아이스콘.day
http://www.icecone.day/2025/04/python-high-school-math-ch02-variables-data-types.html
http://www.icecone.day/
http://www.icecone.day/
http://www.icecone.day/2025/04/python-high-school-math-ch02-variables-data-types.html
true
7981093494699837537
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE Search in 아이스콘.day ALL POSTS Not found any post match with your request Back Home 일요일 월요일 화요일 수요일 목요일 금요일 토요일 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월 Jan Feb Mar Apr 5월 Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago 어제 $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy 목차