[TIL: 0116] 파이썬 기초

ryun·2023년 1월 18일
0

TIL

목록 보기
4/34

변수와 식별자

변수 (Variable)
  • 오른쪽의 값을 왼쪽에 할당한다
    - =
    - 할당 연산자
    - 데이터를 저장하기 위해서 사용
    - 변수 사용하면 복잡한 값들을 쉽게 사용할 수 있음(추상화)
    - 동일 변수에 다른 데이터를 언제든 할당 할 수 있기 때문에 변수라고 불림
    - 변수와 반대되는 것은 상수 (한번 정하면 절대 변하지 않는 값)

  • 추상화(변수를 사용해야 하는 이유)
    - 코드 가독성 증가
    - 숫자를 의미 단위로 작성 가능
    - 코드 수정이 용이

  • 변수의 할당
    - 같은 값을 동시에 할당할 수 있음
    - a = b = 2000
    - 다른 값을 동시에 할당할 수 있음
    - a, b = 2000, 3000

  • 중요한 것
    - 임시 변수 활용

식별자(Identifiers)
  • 변수의 이름을 식별자(변수, 함수, 클래스 ...)
    - 읽기 쉽고 이해하기 쉬운 변수명이 최고
    - 변수 이름 규칙
    - 영문 알파벳, 언더스코어, 숫자로 구성
    - 첫 글자에 숫자가 올 수 없음
    - 길이 제한 없고, 대소문자 구별
    - 어떤 키워드는 예약어로 사용할 수 없음
    - 파이썬이 이미 쓰고 있는 단어들
    - 내장 함수나 모듈 등의 이름도 사용하지 않아야 한다
    - 동작 예상할 수 없게 임의로 값을 할당하게 되므로 범용적이지 않은 코드가 됨

  • 주석 다는 습관
    - 코드에 대한 쉬운 이해
    - 유지보수 용이
    - 협업 용이

  • 연산자
    - 산술 연산자(Arithmetic Operator)
    - / 나눗셈
    - // 몫
    - % 나머지

자료형
  • 자료형이 왜 필요할까?

  • 자료형과 메모리
    - 하드디스크 ssd보다 램이 훨씬 빠르다
    - CPU라는 연산장치는 컴퓨터의 브레인
    - 10이 들어갈 공간을 메모리에 만든다
    - 각각의 공간에 주소값을 넣는다
    - 10이라는 데이터를 해당 주소로 찾아가서 저장한다
    - 10이 필요해지면 해당 주소로 가서 읽어온다
    - 주소값을 기억하기가 어렵다
    - 그래서 변수를 사용
    - 주소값에 대한 별명
    - 변수를 쓰는 순간
    - 변수와 주소값을 매핑하는 과정이 내부적으로 이루어진다

  • 프로그래밍에서 변수는 메모리의 주소를 기억하는 이름이다`
    - 데이터 기억, 할당받는 것

  • 자료형마다 차지하는 메모리의 크기가 다르다

  • id()
    - id(변수명): 주소값이 나온다

  • 자료형 분류
    - 수치형
    - 진수 표현 가능
    - 2진수: 0b
    - 8진수: 0o
    - 16진수: 0x
    - 실수 자료형(float)
    - 유리수와 무리수를 포함하는 '실수'를 다루는 자료형
    - 0.1, 100.0, -0.003
    - 정수를 이진수로 변환하는 건 쉽다, 하지만 소수라면?

  • 실수 연산시 주의할 점 (부동 소수점)
    - 실수는 끝이 없다, 2진수로 표현하면 무한대로 반복 > 메모리 낭비가 심하다
    - 값 비교하는 과정에서 정수가 아닌 실수면 주의할 것
    - 매우 작은 수보다 작은지를 확인하거나 math 모듈 활용

    	- 문자열 자료형
    		- 작은 따옴표나 큰 따옴표 
    		- 하나의 소스코드 내에서 하나의 문장부호를 선택하여 유지하도록 함
  • Escape Sequence
    - 문자 안에서 컴퓨터를 제어하고 싶어서 만든 것
    - 역슬래시 뒤에 특정 문자가 와서 특수한 기능을 하는 문자 조합 (제어 시퀀스)
    - 특정 문자가 기능을 한다
    - \n
    - 줄 바꿈 (엔터)
    - 그냥 문자열에 역슬래쉬 넣고 싶으면 역슬래쉬 두 개 쓰면 된다
    - \r
    - 캐리지 리턴
    - aaaaa\rbbb
    - bbbaa
    - 캐리지 리턴 뒤에 있는 문자가 앞의 문자 앞에서부터 채움 (해봐야 안다)

  • 문자열 연산
    - 덧셈 가능
    - 곱셈 가능

  • String Interpolation (문자열을 변수를 활용해 만드는 법)
    - f-string
    - print(f'Hello, {name}!')

  • None
    - 파이썬 자료형 중 하나
    - 나중에 변수를 할당해놓기 위해서
    - 값이 없음을 표현하기 위해 존재
    - 어떤 것도 반환하지 않을 때 사용

  • 불린형
    - 논리 자료형
    - 참과 거짓을 표현
    - 비교 / 논리 연산에서 활용

  • is
    - object(객체) 자체를 비교 (주소값이 같은지 아닌지 비교)

  • ==
    - 변수의 value (값)을 비교

>>> a = []
>>> b = []
>>> c = a # c에게 a의 주솟값을 준 것 
>>> >>> result = (a is b) 
>>> print(result)
False
>>> result = (a is c) 
>>> print(result)     
True
>>> result = (b is c)
>>> print(result)
  • 빈 리스트는 불린형으로 False

  • 0도 False

  • 논리 연산자
    - Not
    - 부정 연산자
    - True를 False로
    - False를 True로

    		```
    		result = True
    
    		if not result:
    			print('회원 인증을 해주세요')
    		```
  • Falsy: False는 아니지만 취급되는 값
    - 0, 0.0, 9), []

  • 컨테이너
    - 여러 개의 값을 담을 수 있는 것
    - 서로 다른 자료형을 저장할 수 있음
    - List
    - 인덱스와 정렬은 다르다
    - 인덱스는 단지 순서
    - 정렬과 개념이 다름

시퀀스

  • 리스트
    - 순서가 있는 구조로 저장
    - 0부터 순서는 인덱스를 의미할 뿐이지 값의 정렬은 아니다

  • 튜플
    - 불변 자료형
    - 값의 변경이 불가능!
    - 대괄호가 아니라 소괄호로 빈 튜플을 생성
    - 생성자로 튜플 생성도 가능
    - 단일 항목의 경우
    - 생성 시 값 뒤에 쉼표 붙여야 함
    - 복수 항목의 경우
    - 마지막 항목에 붙은 쉼표는 없어도 되지만, 넣는 것을 권장
    - 쉼표만 보고 튜플로 인지가 가능

  • 어떤 자료형을 언제 써야 하나?
    1. 개발자의 선택
    2. 문제의 성격에 따라 다르다
    3. list는 다양한 자료담고 언제든지 로직으로 값을 변경하고자 할 때
    tuple은 값을 실수로라도 변경하면 안될 때
    목적성을 가지고 선택과 사용

  • Range의 정의
    - 숫자의 시퀀스
    - 기본형
    - range(n)
    - 0부터 n-1 까지의 숫자의 시퀀스
    - 범위 지정
    - range(n, m)
    - n부터 m-1까지의 숫자의 시퀀스

  • 슬라이싱 연산자
    - 시퀀스를 특정 단위로 슬라이싱
    - 인덱스와 콜론을 사용하여 문자열의 특정 부분만 잘라내기
    - 콜론 기준 앞 인덱스에 해당하는 문자는 포함, 뒤 인덱스에 해당하는 문자는 미포함

  • 딕셔너리의 정의
    - 키-값 쌍으로 이뤄진 자료형
    - 꼭 1대 1
    - 키는 중복으로 가질 수 없다
    - 거의 모든 응답값이 JSON 으로 주고받아지고 있다
    - 키
    - 변경 불가능한 데이터
    - 키의 값
    - 어떤 형태든 관계 없음
    - 중괄호 혹은 dict()을 통해 생성

  • 형 변환
    - 데이터 형태는 서로 변환할 수 있음
    - 암시적 형 변환
    - 사용자가 의도하지 않고 파이썬 내부적으로 자료형 변환
    - 명시적 형 변환

  • 다른 값을 할당하면
    - 참조하는 메모리 주소가 바뀐다

  • 딕셔너리 업데이트
    - sorted.update({'python': 85})
  • 딕셔너리의 밸류 합
    - sum(score.values())

0개의 댓글