본문 바로가기
프로그래밍 언어/Python

[Python] 변수와 입력

by 성연_ 2024. 11. 11.

들어가기 전 용어 정리

  • 변수 값을 저장할 때 사용하는 식별자
  • 블록 프로그램이 실행 도중에 잠시 멈추는 것
  • 리턴값 함수의 결과로 나오는 값

변수를 만들고 사용하는 방법

  • 변수 선언 변수를 생성한다.
  • 변수에 값 할당 변수에 값을 넣는다.
  • 변수 참조 변수에서 값을 꺼낸다.
변수 = 값

위의 형태처럼 변수 이름을 적어 선언하고, = 을 입력한 후 값을 입력하면

선언한 변수에 값을 할당한 것이다.

pi = 3.14

pi라는 변수에 3.14라는 값을 저장한 예시

 

선언한 변수를 사용하는 '참조'를 할 때는 참조할 위치에서 변수 이름을 써주면 된다.

# 변수에 할당된 값으로 연산
pi + pi

# 변수에 할당된 값을 출력
print(pi) # 3.14

위의 두 예시처럼 변수를 참조할 수 있다.

 

주의 ! 변수 pi에 저장된 값은 숫자이기 때문에 숫자 연산은 가능하지만 문자열과 연산할 수는 없다.


복합 대입 연산자

변수를 활용하면 기존의 연산자와 조합해서 사용할 수 있는 복합 대입 연산자가 있다.

복합 대입 연산자는 자료형에 적용하는 기본 연산자와 = 연산자를 함께 사용하여 구성하는 연산자이다.

 

예를 들어 변수 a에 대해

a += 10을 연산하면 a = a+10과 같은 결과를 낸다.

연산자 이름 설명
+= 덧셈 후 대입
-= 뺄셈 후 대입
*= 곱셈 후 대입
/= 나눗셈 후 대입
%= 나머지를 구한 후 대입
**= 제곱 후 대입

숫자에 적용할 수 있는 복합 대입 연산자 종류

num = 50
num += 5
num -= 10
num /= 5
print(num) # 9

위의 예시를 보면 num의 초깃값은 50이다.

한 줄씩 연산해보면

초깃값 50에 5를 덧셈한 후 대입하여 num에 55가 저장되고

55가 저장된 num에서 10을 뺄셈 후 대입한 값으로 45,

45에서 5를 나눗셈 후 대입하여 9가 저장된다.

따라서 print(num)을 했을 때 9가 출력된다.

 

 

문자열도 마찬가지로 복합대입 연산자를 사용할 수 있다.

연산자 이름 설명
+= 연결 후 대입
*= 반복 후 대입

문자열에 적용할 수 있는 복합 대입 연산자

str = "안녕"
str += "하세요"
str *= 2
print(str) # 안녕하세요안녕하세요

위의 예시를 보면 변수 str의 초깃갑으로 "안녕"을 저장한 후,

"하세요"를 연결 후 대입하여 str의 값이 "안녕하세요"로 저장되었고

두 번 반복하여 print(str)을 했을 때 "안녕하세요안녕하세요"가 출력된다.


사용자로부터 데이터를 입력받을 때 사용하는 방법 : input() 함수

명령 프롬프트에서 사용자로부터 데이터를 입력받을 때 input() 함수를 사용한다.

 

사용자로부터 데이터를 입력받기 위해 input() 함수를 쓴다.

이때 input() 함수의 괄호 안에 입력한 내용을 프롬프트 문자열이라고 하며,

사용자로부터 입력을 요구하는 안내 내용을 포함한다.

input("이름을 입력하세요: ")

위의 예시에서 "이름을 입력하세요: "가 프롬프트 문자열이다.

 

이 코드를 실행하면 사용자가 입력 후 Enter 키를 누르기 전까지 코드 진행을 블록한다.

 

사용자가 입력 후 Enter 키를 누르면 입력한 내용은 해당 input 함수의 리턴값이 된다.

이 값은 다른 변수에 대입하여 사용할 수 있다.

name = input("이름을 입력하세요: ")	# 이름을 입력하세요: 
print(name)

출력된 "이름을 입력하세요: "뒤에 사용자가 입력 한 후 Enter 키를 누르면 입력한 내용이 변수 name에 저장된다.

그 후 name을 출력하면 사용자가 입력한 내용이 출력된다.

 

input() 함수의 입력 자료형

이 전의 예제에서 사용자에게 입력받은 name의 자료형을 보면,

print(type(name)) # <class 'str'>

str, 즉 문자열이다.

 

age = input("나이를 입력하세요: ")
print(age)

그럼 이처럼 숫자를 입력받았을 때의 자료형은 무엇일까?

확인해보면,

print(type(age))	# <class 'str'>

보다시피 int나 float으로 숫자가 아닌 str, 문자열이다.

 

input() 함수는 사용자가 어떤 것을 입력해도 결과는 무조건 문자열 자료형이다.


자료형 변환 : 문자열 → 숫자

input() 함수의 결과는 항상 문자열이기 때문에 숫자 연산에 활용하려면 자료형을 변환해줘야 한다.

 

이 때 사용하는 함수는,

  • int() 함수 문자열을 int 자료형으로 변환한다.(int:정수)
  • float() 함수 문자열을 float 자료형으로 변환한다.(float:실수/부동 소수점)

int()와 float() 두 가지가 있다.

 

사용자의 77년 후 나이를 계산하는 간단한 예제를 만들어보자.

age = int(input("나이를 입력하세요: ")) # 나이를 입력하세요: 21
print("77년 후 나이는", age + 77, "살 입니다.")	# 77년 후 나이는 98 살 입니다.

입력받은 숫자 21에 int() 함수를 사용해주면 변수 age의 자료형은 숫자 연산을 할 수 있는 정수형이 된다.

21에 77을 더하면 98이 되므로 숫자 연산이 정확하게 된 것을 알 수 있다.

 

주의 ! 입력받은 내용이 문자열, 예를 들어 "스물한살"이라면 숫자로 변환할 수 없다.

주의 ! 입력받은 내용이 실수형, 예를 들어 "3.14"라면 int() 함수로 변환할 수 없다.

하지만 정수형은 float() 함수를 사용할 수 있다. 단, "21"을 입력받았을 때 float() 함수를 사용하면 21.0이 된다.

 

자료형 변환 : 숫자 → 문자열

  • str() 함수 숫자를 문자열으로 변환한다.

int() 와 float() 함수와 비슷한 형태를 가진다.

int_str = str(3)
float_str = str(3.14)
print(type(int_str), int_str)	# <class 'str'> 3
print(type(float_str), float_str)	# <class 'str'> 3.14

위의 예제처럼 숫자도 str() 함수를 통해서 숫자로 변환할 수 있다는 것을 알 수 있다.