TIL 4-1 : 입력과 자료형 변환

techbear·2022년 2월 13일
0

python

목록 보기
8/19
post-thumbnail

오늘은 사용자가 입력한 데이터를 입력받는 방법과 자료형이 다를경우 형변환을 통해 자료형을 변환하는 작업에 대해서 적어보겠다.

📋 입력과 자료형 변환

📌 데이터 입력 받기

  • input() : 입력함수
  • 사용자로부터 데이터를 입력 받는 함수

📁 사용방법

x = input()
  • x = input()
  • 할당연산(=) 오른쪽부터 실행
  • input 함수 실행 시, 입력을 기다린다
  • 사용자가 데이터를 입력하고 엔터를 치면
  • input 함수 자리에 데이터가 들어간다

📁 예시

x = input("입력하세요 >>>")
# 1) 할당연산자(=) 오른쪽부터 실행
# 2) input 함수 실행 시, 메세지를 출력하고 입력을 기다림
# 3) 사용자가 데이터를 입력하고 엔터를 치면
# 4) input 함수 자리에 데이터가 들어간다

📌 형변환

  • 자료형이란 자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 말한다
  • 문자열숫자가 같이 사용될 경우 숫자문자열로 바꾸거나 문자열숫자로 바꾸는 것을 말한다.
  • 문자열 ⇒ 숫자 : int(데이터)
  • 숫자 ⇒ 문자열 : str(데이터)

📋 실습으로 확인

📌 실습문제 1

  • input 데이터를 사용하여 2개의 숫자를 입력받아 합을 구하세요
  • 세부 문제는 아래에서 확인

📌 실습문제 1

  - 사용자로부터 2개의 숫자를 입력 받아 더한 결과를 출력
📌 입력값
 - 1번째 숫자 입력 : 30
 - 2번째 숫자 입력 : 40
📌 출력값
 - 70

# 입력값
first_value = input("1번재 숫자 입력 : ")
second_value = input("2번째 숫자 입력 : ")

# 출력값
total_value = first_value + second_value
print(total_value)

# 70이 나오는 것을 기대했으나 값은 3040이 출력되었다.

💥 원인
  1. input 데이터의 값은 문자열, 더하기 X (해결방법1, 2)
  2. 문자열을 숫자열로 변경해야 한다
📎 해결방법 1
   - input 데이터 값을 숫자형으로 형변환

# 입력값
first_value = int(input("1번재 숫자 입력 : "))
second_value = int(input("2번째 숫자 입력 : "))

# 출력값
total_value = first_value + second_value
print(total_value)

📎 해결방법 2
  - 출력할 값을 숫자형으로 형변환

# 입력값
first_value = input("1번재 숫자 입력 : ")
second_value = input("2번째 숫자 입력 : ")

# 출력값
total_value = int(first_value) + int(second_value)
print(total_value)

📌 실습문제 2

  • 태어난 연도와 현재연도를 입력받아 현재 나이 출력

📌 실습문제 2

  - 태어난 연도와, 현재연도를 입력 받아, 현재 나이를 출력하기
📌 입력값
  - 현재연도 입력 : 2022
  - 태어난 연도 입력 : 1993
📌 출력값
 - “현재 나이는 30 입니다.”

# 입력값
birth_year = input("태어난 연도 입력 : ")

# 출력값
cur_year = 2022
age = cur_year - birth_year
print("현재 나이는", age, "세 입니다.")

# 에러 발생
# TypeError: unsupported operand type(s) for -: 'int' and 'str'
# 숫자형과 문자열의 복합에서는 빼기 연산 지원하지 않는다

💥 원인
  1. input 데이터의 값은 문자열 빼기 X (해결방법 1)
  2. 문자열과 숫자열을 같이 출력할 수 없다 (해결방법 2)

📎 해결방법1
  - input 데이터 값을 숫자형으로 형변환 또는 age의 값을
    int형으로 변환한다.

# 입력값
birth_year = int(input("태어난 연도 입력 : "))

# 출력값
cur_year = 2022
age = cur_year - birth_year
print("현재 나이는", age, "세 입니다.")
# 입력값
birth_year = input("태어난 연도 입력 : ")

# 출력값
cur_year = 2022
age = int(cur_year) - int(birth_year)
print("현재 나이는", age, "세 입니다.")

📎 해결방법2
  - 빼기 연산의 문제는 해결되었다
  - 출력 시에 문제 발생
  - TypeError: can only concatenate str (not "int") to str
  - str("int" 아님)만 str에 연결할 수 있습니다.
  - 출력문에 age를 문자열로 형변환

# 입력값
birth_year = input("태어난 연도 입력 : ")

# 출력값
# age를 문자열로 형변환하면 정상적으로 계산된 결과 출력
cur_year = 2022
age = int(cur_year) - int(birth_year)
print("현재 나이는", str(age), "세 입니다.")

📌 추가 확인

  • 파이썬에서 변수에 입력한 데이터의 자료형을 확인하는 방법이다
  • 자료형 확인 시에는 “print(type(data))” 확인한다.
# 변수의 값
val1 = 10
val2 = "10"

# 자료형 확인
print(type(val1))
print(tpye(val2)) 
profile
Today is Wonderful Magic!!

0개의 댓글