변수의 개요
-가장 기초적인 프로그래밍 문법 개념
-데이터(값)을 저장하기 위한 메모리 공간의 프로그래밍상 이름
이 순간 컴퓨터에서 무슨 일이 일어났나?
[문제]
professor = “Sungchul Choi” 의의미는”
① professor의 이름은 Sungchul Choi 이다.
② professor는 Sungchul Choi 이다.
③ professor와 Sungchul Choi는 같다.
④ professor에 Sungchul Choi를 넣어라
✔④ Professor에 Sungchul Choi를 넣어라
정확히는 Professor라는 변수에 “Sungchul Choi“ 라는 값을 넣으라는 의미
그럼 변수는 어디에 저장될까?
변수(Variable)란?
수학식 2x + 7y = 14에서 변수는 x와 y를 의미함
프로그래밍에서 변수는 수학과 약간 다른 개념
프로그래밍에서는 변수는 값을 저장하는 장소
변수는 메모리 주소를 가지고 있고 변수에 들어가는 값은 메모리 주소에 할당됨
[참고] 컴퓨터의 구조 – 폰 노이만(John von Neumann) 아키텍처
폰 노이만 아키텍처에서는 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행할 경우
그 정보를 먼저 메모리에 저장시키고 CPU가 순차적으로 그 정보를 해석하고 계산하여 사용자에게 결과값 전달
메모리와 변수 💡
- 변수 : 프로그램에서 사용하기 위한 특정한 값을 저장하는 공간
- 선언되는 순간 메모리 특정영역에 물리적인 공간이 할당 됨
- 변수에는 값이 할당되고 해당값은 메모리에 저장 됨
- A = 8 의의미는“A는8이다”가아닌 A라는이름을가진메모리주소에8을저장하라임
변수 이름 작명법
- 알파벳, 숫자, 언더스코어(_) 로 선언 가능
ex) data = 0, _a12 = 2, _gg = 'afdf’
- 변수명은 의미 있는 단어로 표기하는 것이 좋다
ex) professor_name = 'Sungchul Choi’
- 변수명은 대소문자가 구분된다.
ex) ABC와 Abc는 같지 않다
- 특별한 의미가 있는 예약어는 쓰지 않는다.
ex) for, if, else 등
Basic Operations (간단한 연산)
- 복잡한 프로그램을 작성하기 앞서 간단한 사칙연산과 문자열 처리 등의 기초적인 연산을 알아야함
1) 기본 자료형(primitive data type)
2) 연산자와 피연산자
3) 데이터 형변환
- 이를 통해 간단한 프로그램 작성의 기초를 익힘
기본 자료형 (primitive data types)
Dynamic Typing
코드 실행시점에 데이터의 Type을 결정하는 방법
연산자(Operator)와 피연산자(operand)
- + , -, * , / 같은 기호들을 연산자라고 칭함
- 연산자에 의해 계산이 되는 숫자들은 피연산자라 칭함
- “3 + 2” 에서 3과 2는 피연산자, +는 연산자 임
- 수식에서 연산자의 역할은 수학에서 연산자와 동일
- 연산의 순서는 수학에서 연산순서와 같음
- 문자간에도 + 연산이가능함 -> concatenate
제곱승과 나머지 구하기
- "**"는 제곱승 계산 연산자
- "%"는 나머지를 구하는 연산자
- a += 1 는 a = a +1 과 같은 의미로 증가연산 (-=)
데이터 형 변환: 정수형 ↔ 실수형
- float()와 int() 함수를 사용하여 데이터의 형 변환 가능
10.3과 10.7 정수형으로 형 변환 후 덧셈하면 결과값은?
실수형에서 정수형으로 형 변환시 소수점 이하 내림
✔ print(int(a + b))= 20
데이터 형 변환: 숫자 ↔ 문자열
문자열로 선언된 값도int() , float()함수로형변환가능
a와 b를 실수형으로 덧셈하고, 문자열로연결하려면? -> 형 맞추기
a = float(a) # a를 실수형으로 형 변환 후 a에 할당
b = a # 실수형 a 값을 b에 할당
print (a + b) # 두 실수형 더한 후 출력
a = str(a) # 실수형 a 값 문자열로 변환 후 a 할당
b = str(b) # 실수형 b 값을 문자열로 변환 후 b 할당
print (a + b) # 두 값을 더한 후 출력
76.376.3 # 문자열간 덧셈은 문자열간 단순 연결
데이터 형 확인하기
type() 함수는 변수의 데이터형을 확인하는 함수
컴퓨터의 반올림 오차
c = 38.8 # c에 실수형 38.8 할당
print (c) # c 출력
38.8
c # c에 있는 값은?
38.799999999999997 # 응?
컴퓨터의 모든값은 이진수로 변환되어 메모리에 저장
Python 2.7에서만 나오는숫자 3.x 에선 정상으로 나옴
컴퓨터의 반올림 오차
0.1을 이진수 변환해라
단순한 실수도 이진수로 변환하면 무한소수가 됨
반올림 오차는 충분히 작아 반올림을 하여 일반적으로 문제가 되지않음
[참고] 컴퓨터는 왜 이진수를 쓰나
컴퓨터는 실리콘이라는 재료로 만든 반도체로 구성됨
반도체는 특정 자극을 줬을 때 전기를 통할 수 있게 하는 물질
도체와 부도체에 반해 반도체는 전류의 흐름의 제어가 가능
전류가 흐를 때 1, 흐르지 않을 때 0으로만 숫자를 표현할 수 있음
이진수 한자리를 bit라 칭하고 8개의 bit는 1byte
List 또는 Array
- 시퀀스 자료형, 여러 데이터들의 집합
- int, float 같은 다양한 데이터 타입 포함
list 의 특징
- 인덱싱 indexing
- 슬라이싱 slicing
- 리스트 연산
- 추가 삭제
- 메모리 저장 방식
- 패킹과 언패킹
- 이차원 리스트
인덱싱 (Indexing)
- list에 있는 값들은 주소(offset)를 가짐 -> 주소를 사용해 할당된 값을 호출
슬라이싱 (Slicing)
- list의 값들을 잘라서 쓰는 것이 슬라이싱
- list의 주소 값을 기반으로 부분 값을 반환
리스트의 연산
- concatenation, is_in, 연산 함수들
리스트의 연산 – 추가와 삭제
- append, extend, insert, remove, del 등 활용
Python 리스트만의 특징
- 다양한 Data Type이 하나에 List에 들어감
리스트 메모리 저장 방식
- 파이썬은 해당 리스트 변수에는 리스트 주소값이 저장됨
패킹과 언패킹
- 패킹 : 한 변수에 여러 개의 데이터를 넣는 것
- 언패킹 : 한 변수의 데이터를 각각의 변수로 반환
이차원 리스트
- 리스트 안에 리스트를 만들어 행렬(Matrix) 생성
ⓒ NAVER Connect Foundation
'AI > 머신러닝(ML)' 카테고리의 다른 글
[인공지능] 파이썬 기초 문법 | Conditionals and Loops (0) | 2023.02.09 |
---|---|
[인공지능] 파이썬 기초 문법 | Function and Console I/O (0) | 2023.01.11 |
[인공지능] 파이썬 기초 문법 | 파이썬 개요 (0) | 2023.01.11 |
3 - 3 함수_함수 호출 방법 (1) | 2022.12.21 |
3 - 2 함수_함수와 매개변수 (0) | 2022.12.21 |
댓글