파이썬 기초

[파이썬 기초] 3. 출력과 입력

외양간찾는 새끼소 2025. 2. 27. 12:07

1. 출력

Terminal창

화면에 보이는 HP값, 닉네임, 캐릭터 모두 출력 기능에 의해 보여지고 있는 것입니다.
우리가 사용하는 IDE는 이렇게 화려하게 출력 할 수는 없습니다.
오히려 IDE가 이렇게 화려하게 출력하는 기능을 가지고 있으면 IDE를 사용할 때마다 컴퓨터가 매우 힘들어 할 것입니다.

IDE는 가장 단순하고 컴퓨터가 안 힘들어 하는 출력 기능을 사용합니다. 바로 Terminal창 입니다.
우리는 컴퓨터에게 “내가 원하는 값을 출력해” 또는 “저장하고 있던 데이터 출력해” 라는 명령어를 내리는 방법을 배울 것입니다.
IDE를 통해 컴퓨터에게 출력 명령을 내리면 컴퓨터는 Terminal창에 출력해 줄것입니다.

💡화려한 출력은 어떻게 할까?

프로그램을 사용해서 화려한 출력을 구현합니다.
게임의 경우 Unity, Unreal Engine 이라는 프로그램을 통해 화려한 출력을 구현합니다.
웹의 경우 HTML, CSS, JS 언어로 명령을 내리면 화려한 웹의 모습으로 출력을 할 수 있습니다.
앱의 경우 Android Studio, VSCode 프로그램을 사용해서 앱의 모습으로 출력 할 수 있습니다.
즉, 화려한 출력을 하고 싶으면 각 프로그램에서 사용하는 언어를 배워서 프로그램을 사용하면 화려한 출력을 할 수 있습니다.

print()

”내가 원하는 값을 Terminal창에 출력해” 라는 명령어는 print() 함수를 통해 컴퓨터에게 명령할 수 있습니다.

코딩을 배울 때 국룰인 “Hello World 를 Terminal창에 출력해”를 구현해 보겠습니다.

print("Hello World")

이번에는 “age 변수에 저장한 값을 Terminal창에 출력해”라는 명령을 내려봅시다.
print() 함수에 변수명을 넣어주면 해당 변수에 저장된 값을 Terminal창에 출력해 줍니다.

age = 28
print(age)

“age에 저장한 값과 ‘Hello Word”, 28을 함께 Terminal에 출력해줘”라는 명령을 내려봅시다.
print()함수에 , 를 사용하면 여러개를 한꺼번에 Terminal에 출력할 수 있습니다.

age = 28
print(age, "Hello World", 28)

2. 입력

게임에서 채팅창을 구현한다고 생각해봅시다.
유저들에게 키보드를 통해 입력을 받아서 채팅창을 통해 입력받은 글자를 보여줘야합니다.
먼저 “키보드를 통해 입력받아라” 하는 명령어에 대해 알아보겠습니다.
게임에서는 화려한 채팅창을 통해 입력을 받지만 우리의 조촐한 IDE는 Terminal창을 통해서 입력을 받습니다. (입력후 Enter 눌러야 입력 끝인것을 알아들어요.)

input()

파이썬에선 input() 함수“키보드를 통해 입력받아라”라는 명령어 입니다.
코드는 아래와 같습니다.

input()

하지만 위 코드만 실행하면 입력을 받기만 하고 끝이 납니다.
입력을 받은 값을 저장해 둬야겠죠?
이전 시간에 배운것을 잘 사용하면 “입력 받은 값을 저장해라”라는 코드를 짤 수 있을 것입니다.

user_chat = input()

추가적으로 input() 함수에는 무엇을 입력해야하는지 안내해주는 기능이 있습니다.
input() 함수의 괄호안에 안내 텍스트를 적어주면 입력시 안내 문구가 나옵니다.
이 기능을 활용하면 user에게 의도된 입력값을 받을 수 있습니다.

age = input("나이를 입력해 주세요 : ")

3. 형변환

input() 명령어로 입력 받은 값은 항상 str 데이터 타입으로 받을 수 있습니다.

age = input("나이를 입력해 주세요 : ")
print(type(age)) # type(변수) 를 사용하면 변수의 자료형을 확인할 수 있습니다. 

input()명령어로 입력받은 값의 자료형을 바꾸고 싶을 땐 형변환 이라는 것을 사용합니다.
정수로 바꾸고 싶은 경우 int() 함수
소수로 바꾸고 싶은 경우 float() 함수를 사용하여 형변환을 할 수 있습니다.

age = input("나이를 입력해 주세요 : ")
int_age = int(age)
print("입력 데이터 타입 : ", type(age))
print("형변환 데이터 타입 : ", type(int_age))

num = input("소수를 입력해 주세요 : ")
float_num = float(num)
print("입력 데이터 타입 : ", type(num))
print("형변환 데이터 타입 : ", type(float_num))
💡그 외 형변환
  • string으로 형변환
    
      age = 28
      str_age = str(age)
    
      print(str_age)
      print(type(str_age))
  • str() 함수를 사용하면 됩니다.
  • bool으로 형변환
      # 숫자형 -> bool
      print(bool(-123))
      print(bool(1.23))
      print(bool(0))
    
      # 문자형 -> bool
      print(bool(''))
      print(bool("가나다라"))
      print(bool("False"))
  • bool()함수를 사용하면 되지만 bool은 변형되는 기준이 조금 특이합니다.
    숫자형 → bool 형변환의 경우 0이 아닌 모든 수를 True로, 0을 False로 형변환 합니다.
    문자형 → bool 형변환의 경우 비어있는 문자형을 False로, 비어있지 않은 모든 문자열을 True로 형변환 합니다.
  • None Type 형변환
  • None 타입은 특수해서 형변환이 존재하지 않습니다.

4. 출력 심화

나이와 이름을 입력 받은 후 ‘당신의 이름은 ~이고 나이는 x 살 이군요!’를 출력하는 코드를 만들어 봅시다!
정답을 보기 전에 직접 만들어 보세요!

  • 정답 코드
  • age = input("나이를 입력해 주세요 : ") int_age = int(age) name = input("이름을 입력해 주세요 : ") print("당신의 이름은", name,"이고 나이는", int_age, "살 이군요!")

문자열 사이에 변수 값을 출력하고 싶을때 , 를 이용하면 출력 할 수 있습니다.
하지만 귀차니즘 심한 개발자들이 이런식의 피곤한 출력 방법을 놔둘리가 없습니다.

이런 문제를 해결하고자 f-string 이라는 것을 사용합니다.
string이 시작하는 부분에 f를 적고 {} 안에 변수명을 적으면
문자열 사이에 변수 값을 출력 할 수 있습니다.

age = input("나이를 입력해 주세요 : ")
int_age = int(age)
name = input("이름을 입력해 주세요 : ")

print(f"당신의 이름은 {name}이고 나이는 {int_age}살 이군요!")

f-string 과 같은 역할로 format() 함수를 사용하여 구현 할 수 도 있습니다.
저는 f-string을 애용합니다.

age = input("나이를 입력해 주세요 : ")
int_age = int(age)
name = input("이름을 입력해 주세요 : ")

print("당신의 이름은{} 이고 나이는 {}살 이군요!".format(name, age))