본문으로 바로가기

파일의 IT 블로그

  1. Home
  2. 프로그래밍 강좌/Python [리뉴얼중]
  3. [파이썬 강좌] #4 변수를 이용해 숫자와 문자열 입력받기

[파이썬 강좌] #4 변수를 이용해 숫자와 문자열 입력받기

· 댓글개 · KRFile

전 시간에서 우리는 print() 함수를 통해 출력을 해보았는데요.
이렇게 출력만해서는 프로그램으로써의 기능은 무언가 출력하는 거 빼고는 아무런 기능이 없습니다.

2 * 10 이 20인건 알아서 이걸 print(2 * 10) 으로 출력한다고 쳐도

프로그램으로써는, 전광판을 만드는게 아닌 이상 아무런 가치가 없죠.

 

그런데 만약에 사용자로부터 무언가 입력을 받고 그것에 따라 모종의 처리를 하게 되면 프로그램으로써의 가치가 생기게 됩니다. ex) 반지름을 사용자로부터 입력받고 원의 넓이를 출력하는 프로그램


이번시간에서는 무언가를 입력받고, 그것을 활용하는것을 해봅시다.

 

a = input()
print(a)

입력 : Hi Python
>>> Hi Python


F5로 파이썬 프로그램을 실행하면 커서가 깜빡거립니다.
무언가를 입력하면 그대로 나오네요. 소스에 대한 간단한 설명을 하자면
a라는 변수를 만들고 그곳에 input() 함수를 넣었습니다.
아무 지정없이 input()을 써주면 그것은 문자열이 됩니다.  즉,a는 문자열 변수 가 되었습니다.

그걸 앞에서배운 print로 출력하는게 되겠네요.

 

변수란?

변수는 한마디로 카트같은 개념입니다. 무언가를 담을 수 있는 그릇을 만드는거죠.
그러한 그릇을 저장용도로도 사용하고 필요할땐 꺼내쓰는게 변수입니다.
문자열을 넣으면 그것은 문자열변수, 정수형태를 넣으면 그것은 정수형 변수.. 가 되겠습니다.

 

a = 30
b = 40

print(a * b)
>>> 1200

 

[ 변수명 = 변수에 저장할 값 ]

위 소스는 a라는 변수와 b라는 변수를 각각 30과 40으로 지정해둔후
그걸 이전강의에서 배운 print로 곱해서 출력하는 함수입니다.
* a와 b에는 정수가 들어가있기때문에 정수형 변수입니다.

수학적인 개념으로 보자면 대입이라고 할 수 있습니다.

그러나 주의할점은 a = 30; 이라는 문장은 a가 30과 같다 라는 수학적 문장이 절대 아닙니다. (비슷한 뜻으로 해석할 수 있겠지만 실제로 들여다보면 엄연히 다릅니다.)

 

= 의 경우 "대입 연산자" 라고 하는데 = 기호를 기준으로 오른쪽에 있는 값을 왼쪽에 저장(대입) 합니다.

 

예를 들어서 a = 30 이라는 문장을 해석해보면 오른쪽 30이라는 값을 왼쪽 a라는 변수(카트)에 저장해라 (대입해라) 라는 말으로 해석을 하시면 되겠습니다.

 

 

 

l = ['파일', '블로그', '환영해요']
print(l)

>>> ['파일', '블로그', '환영해요']

이건 l이라는 변수에 리스트를 넣은것인데, 리스트에 관해선 추후 포스팅할 예정입니다.
파이썬에서는 리스트를 활용해 다른언어에선 복잡하게 사용할 기능들을 간편하게 구현가능합니다.

 

a = 30
a = "Hello"
a = 3.0

파이썬에서는 변수에 원하는 값을 자유롭게 '=' 연산자를 이용해서 저장할 수 있습니다.

참고로 대입 연산자를 계속 사용하면 덮어쓰기의 형태로 진행됩니다.

 

위 코드를 실행시켜보면 a에 값을 계속 덮어쓰기 하다가 마지막 a = 3.0 코드에 의해 a는 3.0이 저장되게 됩니다.

 

프로그램은 기본적으로 위에서 아래로 순차적으로 한줄 한줄씩 실행됩니다.

 

a = input()
print(a)

입력 : Hi Python
>>> Hi Python


본론으로 돌아와서, 이런식으로는 입력은 받을 수 있지만 무슨값을 입력받는지 사용자가 정확히 알 수 없습니다. 사용자가 입력하는 값을 정확히 알 수 있게 하기 위해

 

입력을 받을때 "어떤 수를 입력하세요 : " 같이 메세지를 출력해주면 좋지 않을까요?

이런 메세지들을 프롬프트, 힌트 라고도 하는데 input 함수 내부에 값을 써주면 이 기능을 구현할 수 있습니다.

 

*위에 "입력 : " 이라는 부분은 제가 보기 좋으라고 적어둔 것이고 실제로는 커서만 깜빡이고 입력을 대기하고 아무것도 출력되지 않습니다.

 

width = input('밑변의 길이를 입력해주세요 : ')
height = input('삼각형의 높이를 입력해주세요 : ')

Sum = int(width) * int(height) * 0.5

print('삼각형의 넓이는 :' , Sum , '(cm2) 입니다')

입력1 : 5
입력 2 : 10

출력 : 삼각형의 넓이는 : 25.0 (cm2) 입니다

 

위 프로그램을 실행해보면 밑변과, 삼각형의 높이를 입력하라 하고 각각 입력하면 넓이를 출력해줍니다.

input안에 물어볼 질문을 문자열형태로 입력하고 이것을 Sum이란 변수를 생성한후에
입력한 높이와 밑변의 길이를 계산을 위해 int()를 사용해서 정수 형태로 변환한다음 계산후 넣어줬습니다.

 

기본적으로 input() 은 입력을 문자열로 처리하기 때문에 10이라고 width에 입력을 해도 "10" 이라는 문자로 처리 됩니다. 저번 강의에서도 설명드렸듯이 정수 (영어로 integer) 끼리만 사칙 연산이 가능합니다. width에 문자열로 들어온 숫자들을 정수형태로 바꿔줘야 하는데 그게 바로 int() 라는 함수입니다.

 

그런데 삼각형의 넓이 결과 값인 Sum 의 식이 조금 더럽습니다.

 

Sum = int(width) * int(height) * 0.5

변환 과정이 그대로 들어가 있어서 식이 직관적이지 못하네요.

Sum = width * height * 0.5 로 써주고 싶은데 방법이 없을까요?

 

하면 아래 방법을 사용해주시면 됩니다.

 

width = int(input('밑변의 길이를 입력해주세요 : '))
height = int(input('삼각형의 높이를 입력해주세요 : '))

print('삼각형의 넓이는 :' , width * height * 0.5, '  (cm2) 입니다')

문장이 한결 간결해졌습니다. 아까 위와 동일한 작동을 하는 코드이구요.


input() 은 기본적으로 문자열로 입력을 받으므로 입력과 동시에 숫자로 바꿔주고 싶으시면 int(input()) 과 같이 작성해주시면 됩니다.

 

import math

n = int(input('숫자 입력 : '))
print(math.sqrt(n))

입력 : 9
>>> 3.0

위는 제곱근을 구하는 예제입니다.
여기서 import는 다른 라이브러리를 가져올때 사용합니다

제곱근을 구할시 math라는 라이브러리를 가져와서 사용해야합니다.

어렵게 생각하지 마시고 누가 math.py 라는 파일에 이미 제곱근을 구하는 코드던, 수학적 계산이던 누가 다 만들어 둬서 저희는 거기서 함수 기능만 빼와서 쓰신다고 이해하시면 되겠습니다.


*라이브러리 : 프로그래밍 하는 사람들이 기능들을 쉽게 사용할수있도록 만들어놓은 백과사전의 일종

SNS 공유하기
💬 댓글 개
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.