[인공지능] 파이썬 기초 문법 | Variables & List

    728x90
    반응형

     

    변수의 개요

    -가장 기초적인 프로그래밍 문법 개념

    -데이터(값)을 저장하기 위한 메모리 공간의 프로그래밍상 이름

     

    이 순간 컴퓨터에서 무슨 일이 일어났나?

    [문제]

    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

    728x90
    반응형

    댓글