02 변수
대학원와서
뇌과학입문, 인공지능입문부터
코드잇, coursera 까지
(조기교육 #코드잇 출신 코린이)
다양한 루트를 통해 기본 문법을 익혀왔고,
기본 문법은 다 안다고
자부했지만 뭔가 그 뿌리에 대한
정확한 로직은 부족했던 것 같다.
역시 복습이 쵝오!라고 생각한게
여기서 다시 배우니 더 잘 이해되고
부족했던 로직까지 모두 채워지는 느낌이랄까?
선생님 쵝오!
아무튼 이 글은 고수님들 올려놓은 담백한 글로는 이해가 안되고,
정확하게 알고가야 속이 시원한 누군가를 위해 도움이 되길 바라며 쓰는 글
참고로 Na 코린이는
학부 - 심리학, 대학원 - 인지심리학을 전공.사람 행동데이터 분석, 뇌파분석을 이용한 뇌과학을 연구해서
성골 AI 학과 대학원생과는 거리가 멉니다.. 🥲(울지뫄)
프로그램이 하는일?
변수를 알아보기 전
프로그램이 무슨 일을 하는지 먼저 생각해BoZa
프로그램을 정보를 처리한다.
코드에선 이 정보를 변수(Variable)과 값으로 표현
그래서 변수의 개념을 아는 것이 매우 중!요!
01 변수의 정의
변수(Variable)란?
1. 데이터를 담는 메모리 공간
2. 값의 의미를 나타내는 이름
변수의 정확한 이해를 돕고자 변수를 선언해보자!
1. name이라는 변수에 "코린이"라는 값을 할당해 주었다.
2. age라는 변수에 "5"라는 값을 할당해 주었다.
⚠ 변수라는 것은 값을 담는 공간, 값에 부여해주는 이름인 것 ⚠
name = "코린이"
age = 5
근데 맘이 바뀐 내가 이름을 잼민이로 바꾸고 싶어졌다.
우리가 name이란 이름에 다시 다른 값을 부여한다면?
그렇다면 name의 값에 코린이는 사라지고...잼민이로 바뀌게 된다.
name이란 변수가 없었다면 메모리에 새로 name이라는 공간이 생기지만, 있다면 있는 공간에 값을 대체하게 된다.
name = "잼민이"
02 변수 규칙
원래 공부는 기초부터 쌓는게 중요하다니깐, 기본적인 변수 이름 규칙부터 알고 가자.
1. 일반 문자(알파벳 뿐 아니라 한글, 한자 등 모든 일반 문자 사용 가능 unbelievable!)
2. 숫자는 두번째 글자부터 가능(감히 문자 앞에 나올수 없음)
3. 예약어는 사용할 수 없다.
4. 대소문자 구분한다(생각보다 똑똑)
그럼 규칙 이외에도 일반적으로 약속처럼 쓰이는 관례에 대해서 알아보자!
왜냐면 우린 혼자 일 안하고 남이랑 같이 일하게 될 수도 있으니, 남들이 다 지키는 rule은 따라야 하니꽌!
변수의 일반적 관례
1. 보통은 소문자로 주고, 상수의 경우는 대문자로 작성
2. 단어 구별은 _ 사용 ex) my_email_address <= snake 표기법
3. 혹, 단어 구별을 위해 중간에 대문자 사용 myEmailAddress <= camel 표기법
snake와 camel 표기법 사용하는 이유는 myemailaddress 이렇게 쓰는 것보단 훨씬 눈에 잘 들어오잖아요!
⚠ 예약어는 뭔데요? (어려운말 써놓고 정의 안 알려주는거 그켬하는 사람인 Na)
파이썬의 예약어란 무엇인가? 영어로 Reserved words 혹은 keyword 라고 한다. 여러분이 파이썬셸을 열었을 때 이미 사용할 수 있는 단어이고 명령어이다. 예약어 란 말은 컴파일러에 의하여 먼저 예약이 되있다는 말이며, 사용자가 클래스,함수,변수 등의 이름으로 사용할 수 없다는 뜻이다.
예약어(Reserved words or Keyword)
이미 사용할 수 있는 단어 즉 이것을 명령어라고 한다. 우리가 자주 쓸 것 같아서 이미 파이썬에서 이 단어가 어떤 명령을 수행할지 미리 예약 해 둔것이다. 예약어라는 말은 컴파일러에 의해 먼저 예약 되있다는 말이라고 한다. 그래서 우리는 변수 이름에 사용할 수 없다(우리가 남이 예약된 좌석에 앉을 수 없잖아).
예를 들면 내가 회식에서 집에 먼저 가고 싶은 것.
그래서 친구한테 내가 "고구마"라고 보내면 전화를 해달라고 했다.
그러면 심각하게 전화받고 일이 생겨서 가봐야 한다고 하고 가려고 ㅇㅋ? 그러면 "고구마"라는 단어는 친구가 나를 전화번호부에서 내 이름을 검색해서 통화버튼을 눌러 전화거는 일을 수행하게 한다. 그러면 "고구마"는 예약어가 되는 것!
03 변수 선언
우리도 이제 기본적인 변수 선언을 해봅시다.나는 snack이라는 변수에 내가 좋아하는 오징어땅콩이라는 값을 부여해주고 싶었다.그리고 price 변수에 1000원이라는 값도 부여해주었다.
snack = "오징어땅콩"
snack_price = 1000
근데 알고보니 1500원이란다. 이걸 위에서 한 것처럼 다시 변수 선언을 해서 값을 대체해 줄수도 있지만,
대졸자(아직 석사 학위 ㄴㄴ)로서 나는 무려 '더하기'를 해보려고 한다.
snack_price = snack_price + 500
print(snack_price)
이렇게 고대로 따라하면 1500이 나온다. 안나오면 유치원 입학 거절 🥲
그럼 두가지 의문이 생길 수 있다.
1. snack_price + 500만 해주는면 되지. 왜 갑자기 'snack_price =' 이건 왜 넣어줘?
이유는 snack_price + 500 만 해줘도 1500이 나올것이다. 하지만 다시 snack_price 치면 그대로 1000원 나올걸?
사람 마냥 이해력이 좋지 않아서, 컴퓨터는 우리가 값을 바꿔주고 싶다면 꼭 변수 이름을 넣고 선언을 해줘야 한다.
나 이거 500원 더한 가격으로 snack_price를 바꿀거야! 라고 말해주는 것이다.
2. print는 갑자기 왜쓰세요?
이건 외워라! python에선 값을 출력하고 싶을때 print를 쓴다.
우리도 워드 작업하고 하드카피로 보고 싶을 때 프린팅 이용하는 것처럼 print를 써야 결과물 출력 가능.
so 직관적! 귀도 판 로섬 고마워♡ㅕ
그럼 변수는 한번에 한개 밖에 선언 못하나요?
아니요 여러개 부여 ssap 가능
누가 나 핸드폰, 시계, 테블릿 피씨, 랩탑까지 다 뭐쓰냐고 하는데 난 애플 러버라 다 애플이라고 알려주고 싶다.
근데 이렇게 쓰면 너무 귀찮다.
phone = "apple"
watch = "apple"
tablet = "apple"
이렇게 '='로 한번에 선언 ssap가능
phone = watch = tablet = "apple"
그런데 다른 값을 부여하고 싶어졌다면?
내가 samsung이나 LG 제품을 쓰는게 있을 수도 있잖아요....
earphone, laptop, television = "apple", "samsung", "LG"
그렇다면 ','를 사용하면 된다. 변수와 그에 들어갈 값들은 순서를 맞춰야 하는 것 잊지말기!
이것은 외우ㅓ라. 이해의 부분이 아니다 이거슨.
04 동적 타입 언어
파이썬은 동적 타입 언어(Dynamic Typed Language)이다.
동적 or 정적 이 뜻 알져? 모른다면 코딩 공부가 아니라...ㄱ,..국...어 공부 부터 해야 할 것 같다;
다양한 데이터 타입 값들을 재할당 가능이 뭐냐고?
바로 이것이다. 우리는 아까 snack_price에 1500원이라는 값을 재 할당 해주었고, 지금은 "천오백원"에 이어 1500.0으로 다시 재재재할당하는 변덕을 부릴 수 있다. 근데 1500 or 천오백원 or 1500.0 이것이 정수 or 문자 or 소수점으로 다른 타입이라는 것은 아직 데이터 타입 안 배웠지만 알고 있다.
우리는 snack_price에 어떤 타입을 넣을지 안 정했기 때문에 이렇게 다양한 타입이 들어갈 수 있고, 또 내가 값을 할당하고 실행하기 전까지 데이터 타입은 안 정해지는 아쥬 dynamic 한 방식이라는 것!
snack_price = "천오백원"
snack_price = 1500.0
모든 언어가 동적 타입언어 이것은 아니다.
선언 시점에 데이터 타입이 결정 되어 정해진 타입의 값만 저장 할 수 있는 더 엄격한 정적 타입언어(statically typed language)도 있다. 이것에 속하는 것은 컴퓨터 언어의 시조새 C 언어, C++, Java등이 있다.
우리는 변수에 부여된 값이 무엇인지 그 값의 타입을 확인해 볼 수 있다.
바로 그 방법은 type을 쓰고 (변수)를 이어서 써주는 것. (타입을 확인하기 위해 type 명령어를 쓴다? 직관성에 입 벌어짐..)
type(snack_price)
오늘 데이터 타입까지 이어서 해보려했지만, 그건 다음에 이어서 써보는 걸로! 🙋🏻