안녕하세요
서울 꺼벙 천사입니다
[ 혼자 공부하는 파이썬 개정판 ]을 정리하고 있습니다

지난번에는
숫자형에 대해 정리하였습니다
https://velog.io/@nspro0318/11.-Chapter-02-%EC%9E%90%EB%A3%8C%ED%98%95-%EC%88%AB%EC%9E%90%ED%98%95

이번에는
변수와
input에 대해 정리를 하도록 하겠습니다

변수
변수는
변수를 한자로 쓰면
變數
[ 변하는 수 ]라는 뜻이지만
파이썬을 비롯한 프로그래밍 언어에서 사용하는
변수의 개념은
간단하게 정리를 하면
값을 저장하는 공간이라고 생각을 하면 됩니다
데이터 타입에 해당하는 것을 담아두는 그릇이 변수이고
필요할 때마다 꺼내서 쓸 수 있지만
새로운 값을 넣으면
기존의 값이 새로운 값으로 변경되기 때문에
변수라는 용어를 사용합니다

변수 만들기
파이썬에서 변수를 만드는 것에
여러 가지 용어가 사용이 되고 있습니다
[ 변수 선언 ]이라고 하는데
형식은 아주 간단합니다

변수의이름 = 변수에 넣을 값

위에서 사용된
변수에 이름을 다른 용어로
[ 식별자 ]라는 용어를 사용하기도 합니다
[ = ]는
같다는 의미가 아닌
오른쪽에 있는 것을 왼쪽에 넣으라는 의미로 사용된 것이고
이것을 [ 할당 연산자 ][ 대입 연산자 ]라는 용어를 사용하기도 합니다
변수에 넣을 값은
파이썬에서 사용할 수 있는 모든 데이터 타입을 사용할 수 있습니다

변수를 사용하는 이유
[ 서울 꺼벙 천사 만세!!! ]를
10번 출력하려면

print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')
print('서울 꺼벙 천사 만세!!!')

위와 같이 입력을 하고
저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

복잡하고 힘든 작업이 될 수 있습니다
다음과 같이 사용하면
아주 간편하게 해결할 수 있습니다

name = '서울 꺼벙 천사 만세!!!'
print(name * 10)

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

조금 복잡하게 보이지만
10번 반복이 된 것을 볼 수 있습니다
이때 [ name ]이라는 것이 변수의 이름이고
[ '서울 꺼벙 천사 만세!!!' ]는 변수의 내용이 되는 것이고
[ = ]는 [ '서울 꺼벙 천사 만세!!!' ]라는 것을
[ name ]에 넣으라는 의미입니다
[ name ]이라는 것에는 어떠한 데이터 타입도 넣을 수 있고
[ name ]이라는 것에 새로운 값을 넣으면
내용이 변경되기 때문에
[ 변수 ]라는 용어를 사용하는 것입니다

name = '서울 꺼벙 천사 만세!!!'
print(name)
name = 1, 3, 12, 300, 7000
print(name)

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

복합 대입 연산자
복합 대입 연산자는
[ 할당 연산자 = ]와
연산자를 함께 사용하는 것으로
다음과 같은 것들이 있습니다
+= 덧셈 후 대입
-= 밸셈 후 대입
*= 곱셈 후 대입
/= 나눗셈 후 대입
%= 나눗셈의 나머지 연산 후 대입
**= 거듭제곱 연산 후 대입
다음과 같이 사용할 수 있습니다

one = 100
print('one에 들어 있는 값은 ',one)
one += 20
print('one += 20의 결과는 ',one)
one -= 20
print('one -= 20의 결과는 ',one)
one *= 20
print('one *= 20의 결과는 ',one)
one /= 20
print('one /= 20의 결과는 ',one)
one %= 20
print('one %= 20의 결과는 ',one)
one **= 20
print('one **= 20의 결과는 ',one)

저장을 하고
실행을 하면
다음과 같은 결과가 나옵니다

input
지금까지 변수를 선언하고
변수에 값을 대입하고
print 명령어를 이용하여
출력을 하는 것을 해 보았습니다

이름을 입력받아
인사말을 출력하는 것을 파이썬으로 만들려면
어떻게 해야 할까요?
변수에 들어갈 값을 미리 정할 수 없죠?
이럴 때 사용하는 명령이
input이라는 것입니다

input('당신의 이름은 무엇입니까? 이름을 입력하세요!!! : ')
print(input('당신의 이름은 무엇입니까? 이름을 입력하세요!!! : '))

저장을 하고
실행을 해보겠습니다!

분명히 출력을 하는 print 명령이 있는데
아무런 결과가 표시되지 않고
오른쪽 맨 끝에 커서가 깜박이고 있습니다
어떤 값이 입력되기를 기다리는 상태를 말하는 것으로
[ 프롬프트 ]라고 합니다
깜박이고 있는 커서에
[ 서울 꺼벙 천사 ]라고 입력을 하고
[ Enter ]를 누르면

만들려고 했던
이름을 입력하면
인사말을 출력하는 것을 작성하려면
다음과 같이 하면 됩니다

name = input('당신의 이름은 무엇입니까? 이름을 입력하세요!!! : ')
print(input(name + '님 만나서 반갑습니다'))

저장을 하고
실행을 하면

역시 값이 입력되기를 기다리는 프롬프트 상태가 되며
[ 서울 꺼벙 천사 ]라고 입력을 하고
[ Enter ]를 누르면

데이터 타입 변환
파이썬에서 데이터 타입을 알고 싶을 때 사용하는 명령어가
type입니다

name = input('당신의 이름은 무엇입니까? 이름을 입력하세요!!! : ')
print(input(name + '님 만나서 반갑습니다'))
print(type(name))

저장을 하고
실행을 하고
[서울 꺼벙 천사]라고 입력을 하고
[ Enter ]를 누르면

데이터 타입이 str
즉 string 문자열로 나옵니다
그런데 누가 문자 대신에
숫자 12를 입력했다고 하면
다음과 같은 결과가 나옵니다

분명 숫자 12를 입력을 받았는데
[ int ]가 아닌
[ str ]로 확인됩니다
이것이 input 명령의 특징 중에 한 가지입니다
input 명령을 이용해서 입력을 받은 값은
무조건 문자열(str)로 저장이 된다는 것입니다
문자열은
반복 연산자(*)와
연결 연산자(+)만 사용할 수 있습니다
예를 들면
2개의 숫자를 입력받아
곱셈을 한 결과를 표시하려고
다음과 같이 입력을 하고

one = input('숫자를 입력하세요 : ')
two = input('또 다른 숫자를 입력하세요 :')
print(one * two)

저장하고
5와
12를 입력받으면
어떤 결과가 나올까요?
60이 나올까요?

에러가 발생을 합니다
그러면 정상적인 결과가 나오게 하려면 어떻게 해야 할까요?
input으로 받은 값들은 무조건
문자열로 인식을 한다고 했습니다
그래서 정수형으로 변경을 해야 하는데
이러한 작업을 [ 데이터 타입 변환 ][ 데이터 형 변환 ]이라는 용어를 사용합니다
어렵지 않습니다
다음과 같이 수정을 하면 됩니다

one = int(input('숫자를 입력하세요 : '))
two = int(input('또 다른 숫자를 입력하세요 :'))
print(one * two)

저장을 하고
실행을 하면

원하는 답이 나옵니다
[ str ]로 인식된 숫자를 숫자형 데이터 타입으로 변경하려면
int를 적고
() 안에 [ str ]로 인식된 숫자를 적으면 됩니다
[ int ]로 인식되어 있는 것을
실수형 데이터 타입으로 변경하려면
float를 적고
() 안에 [ int ]로 인식된 숫자를 적으면 됩니다
[ int ]나 [ float ]로 인식된 숫자를
문자열 데이터 타입으로 변경하고 싶으면
str를 적고
() 안에
[ int ]나 [ float ]로 인식된 숫자를 적으면 됩니다

첫 작성 : 2022년 7월 8일 금요일

profile
프로그래밍을 독학하는 서울 꺼벙 천사입니다

0개의 댓글