혼자공부하는 파이썬_d3

CH 4 : 변수

👏1 변수란?

원주율 3.141592...를 파이 π 기호로 정의, 약속한 것처럼
어떤 저장 공간을 의미

변수라는 저장공간을 만든 후,
그 내부에 값을 넣었다가 필요시 호출하여 사용함

>>>pi = 3.141592
>>>pi
3.141592

👏2 변수 만들기& 사용하기

1) 변수 생성

변수를 생성하는 법은 변수를 선언하는 것
위에 α나 δ가 아닌 pi 변수를 선언하여 생성

2) 변수에 값 할당

위에서 pi = 3.141592 라고 선언한 것과 같음

=는 수학에선 '같다' 이지만,
프로그래밍에서는 '할당'하겠다는 의미
우변의 값을 좌변에 넣어> 할당하겠다

3) 변수 참조

변수에서 값을 꺼내는 것

  1. 변수에 저장된 값 출력
    ① 위에서 처럼 pi
    ② 또는 print(pi)
    3.141592

  2. 변수에 저장된 값 연산
    pi + α

👏3 변수 특징

1) 숫자, 문자열 연산

변수의 특징에 따라 달라짐

pi는 실상 숫자 자료이기 때문에
숫자 연산은 됨

>>>pi-3
0.141592

그러나 문자열 연산은 안됨

>>>pi + 안녕하세요
에러

2) 파이썬 변수의 유연성

자바, c 언어에서는
변수에 저장할 자료형을 따로 선언해줘야함

int pi 

파이썬에서는 이런 과정 필요없음
그러나 자료형 파악 실수해서, 에러발생 가능성 높음
(하나의 변수엔 하나의 자료형만 넣어서 활용하는게 좋음 )

👏4 복합 대입 연산자

변수와 기존 연산자와 조합하여 사용하는 것

숫자 복합 대입 연산자
+=
-=
*=
/=
//= : 나머지 후 소수점 제외 값 구한 후 대입
%= : 숫자 나머지 구한 후 대입
**= : 숫자 제곱후 대입

>> number = 10
>> number += 10
>> number += 20
>> number += 30
>> print(number)
70

문자열 복합 대입 연산자
+=
*=

>> str = "안녕"
>> str *2 
>> str += !
>> print(str)
안녕안녕!

👏5 input( )

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

input 함수의 ( ) 안에 입력한 내용 : 프롬프트 문자열 이라고 함
즉 사용자가 입력하는 자료가 숫자, 문자, 불(TF) 뭐든 다 문자열 취급

input ( ) 함수 사용 후 실행하면
사용자에게 자료입력을 요구하면서 대기 중
이렇게 종료되지 않은 채로 대기되고 있어 멈춰 있는것을 블록이라고 함

예시 통해 보면

string = input("인사말을 입력하세요> ")
                  input함수가 사용자에게 입력 요구하며 코드 진행 블록 
                  사용자에겐 인사말을 입력하세요> |커서 이렇게 보여짐
                  사용자가 안녕하세요 하고 데이터 입력
print (string)    string 변수 출력하면
안녕하세요         string 변수의 갑으로 안녕하세요 출력

비쥬얼 코드로 손코딩
✅위 코딩을 실행하면
터미널에 입력하라고 나오고,
자료값을 입력하면 자료와 자료형이 print 됨
✅위 코딩을 보면 사용자가 입력하는 자료형이 뭐든간에
input 함수 거치고 나면
모두 문자열 str 인 것 확인 ✅ 위 코딩에서 오류가 남
왜냐하며 number 변수의 자료값이 123이더라도
input 함수를 거쳤기 때문에 "123"이라는 문자열이 됨
그렇기 때문에 "123" 문자열과 100 숫자는 연산이 될 수 없음

👏6 문자열을 숫자로 바꾸기

input( ) 함수의 입력 자료형은 항상 문자열이기
때문에 숫자로 변환을 해줘야 연산 가능

이러한 변환을 캐스트라고 부름

int ( ) 함수 : 문자열을 int (정수) 자료형으로 변환
float ( ) 함수 : 문자열을 float (실수) 자료형으로 변환
✅input 함수로 입력된 문자열"12"가
int 함수로는 숫자 12로 변환된 것 확인 가능
실제로 연산을 했을때 string 변수와 int 변수 연산 결과가 다름
✅input ( ) 에서 사용자가 입력한
자료가 정수형으로 소수점이 없더라도
float 이면 134.0으로 나타남
(이후 의미없는 소수점 생략 배울 예정)

👏7 숫자를 문자열로 바꾸기

str ( ) 함수, format ( ) 함수 2개 있는데
여기서는 str( ) 함수

int ( ) 와 float ( ) 함수처럼
다른 자료형 값을 str( ) 함수 매개변수에 넣으면
문자열로 변환됨 = 캐스트 됨
✅ 23.45 실수여도 str ( ) 함수를 통해
문자열 자료형으로 변환 = 캐스팅 가능
type ( ) 함수로 확인해도 class str

👏8 ValueError 예외

1. 숫자가 아닌것을 숫자로 변환 > 에러

✅"로봇이 아닙니다"라는 문자열은
int( ) 함수로 변환 될 수가 없음 > 에러
input 함수의 내용이 숫자일때만 int, float 함수로 변환 = 캐스트 가능

2. 소수점 있는 숫자 문자열 int( )로 변환 > 에러

✅"3.14"라는 실수형 문자열은
int( ) 함수로 변환 될 수가 없음 > 에러
.
😋 팁 : 정수, 실수(부동 소수점) 구분 어려우면
우선 float( ) 함수 사용하는 것이 좋음
정수는 실수에 포함되기 때문

3일차 학습의 잡담
책에서 ㅋㅋㅋㅋ 
1장이 끝나면서 외울것이 너무 많아요 ㅠㅠㅠ ! 라는 생각이 들면 
사실 맞다며, 영어에서 알파벳 배운 거랑 마찬가지라고
저자가 말한다 

그렇지만 3일 동안 나는 양이 너무 많아ㅠ 라는 생각보단
이해 + 책 예제말고 응용 코딩을 해보면서
새로운 것을 배워 발전하고 있다는 설렘과
학습 속도는 괜찮은지, 학습 방법은 맞는건지, 정말 내 것이 된건지에 대한 
불안이 계속 느껴졌다

구체적으로는 
input print int float 이런 함수들을 사용하면서
내용 이해, 에러는 안나는지, 실행 결과는 맞는지에 대해 중점적으로 보면서
공부를 하다보니...
오류 없이 실행결과 나타나는지 목표가 아니라
하나의 기능, 프로그램, 서비스 들을 만들어 가치생산이 내 목표인데
이게 맞나.. 싶다

그렇지만
한번에 완벽히, 벼락치기 처럼 단기간에 장시간 공부를 지양하며
최대한 이해 + 반복 학습으로 체득되는 학습을 지향하고자
마음먹었기 때문에 설렘에 들뜨지 않고
불안에 우울해하지 않으려 노력했다 

그저 꾸준히 하루하루 할 수 있는만큼 성실하고 최선을 다해 배우면 된다고 되뇌면서,
불안은 생길때마다 고이 접어두고
불안할 틈도 없이 몰입해서 ~ 공부부터 더 하기로 ~ ! 

좋은 웹페이지 즐겨찾기