Machine Learning/Tensorflow

04. 컴파일, 파이썬 프로그램 구조, 데이터 타입

728x90

1. 컴파일 단계

- 파일 확장자: py(Jupyter Notebook: ipynb json 형식, py 파일로 변경 저장 지원)
- 
단계: Python 소스는 라인단위 변환기인 Interpreter에 의하여 기계어로 바로 컴파일되어 실행됨.

2. 변수

   - 파이썬은 숫자를 포함하여 모든 변수를 내부적으로 객체로 처리한다.
   - 
숫자로 시작할 수 없다.
   - 
파이썬 예약어는 사용하지 못한다.
   - 
대소문자를 구분한다.  
   - 
변수 선언시 데이터 타입을 선언하지 않는다(Javascript와 비슷하다).
   - 
객체 기반이라 데이터 타입 변환이 자유롭다(타입을 별도로 선언하지 않는다).
   - 
의미 있는 변수명을 지정한다.
   - 
특별한 경우가 아니면 변수의 길이는 5글자 이상으로 한다.
   - 
자바의 숫자는 상수로 메모리에 여러개가 존재하나, Python에서는 정수도 객체화하여 메모리상에서 공유한다.

3. 데이터(자료) 형 (data type)

   - 프로그램의 실행 흐름: 입력 → 처리 → 출력
   - 
데이터를 입력하며 처리하고, 출력하며 메모리에 저장한다.
   - 사전에 지정된 데이터 타입이 메모리를 할당하는 기준이 된다.

  - None : 아무런 값이 없다는 것을 나타냄.
  - Boolean : True, False 값 사용, 첫 자 대문자 주의
  - 정수형 :
객체 기반의 음의 정수, 양의 정수를 저장함.
  - 실수형 :
소수점이 들어간 실수를 저장함.
  - 문자열형 :
문자열을 저장할 수 있으며 여러 라인도 가능함.
  - 주석 :
한라인 주석(#), 여러 라인 주석 (''' ... ''' 또는 """ ... """)
  - 한글 선언 :
파일의 상단에 아래의 코드를 선언함. 
    Jupyter Notebook, PyCharm은 생략
    Eclipse PyDev : # -*-coding : utf-8-*- 또는 # coding=<utf-8>

4. 데이터 타입 실습

 /python/notebook/basic/DataType.ipynb
- 
정수 / 정수 = 실수

print("sw=%10s" % sw) #  오른쪽 기준 문자열 출력
print("sw=%-10s" % sw)
print("%10d" % 2019)

print("%10f" % 10.56)   # 소수 6째 자리까지 출력
print("%.1f" % 10.56)    # 반올림
print("%3.1f" % 1000.56) # 정수는 자리수와 상관없이 출력, 반올림
print("%5.1f" % 10.5)     # 정수 3자리, 소수점 1자리, 소수 1자리 출력
print("%5.1f%%" % 10.5)  # % 

print("f(x) = {0}x + {1}".format(2, 3)) # f(x) = 2x + 3

 

5. 연산자 (Operator)

    - 단항 연산자: 하나의 변수로 연산이 진행
    - 
산술 연산자: 사칙연산(*)
    - 
비교 연산자: 대소비교, 동일한지 비교(*)
    - 
논리 연산자: , 거짓 연산자(*)
    - 
삼항 연산자: 조건식, , 거짓 결합
    - 
대입 연산자: 값의 대입(*)
    - ++, -- 
없음

1. 산술(수치) 연산자 : +, -, *, /, //, %

  - % : 몫을 뺀 나머지 연산자.
  - // : 나누기 연산 후 소수점 이하의 수를 버리고, 정수 부분만 구하는 연산자.

1 % 3 = 1 
2 % 3 = 2 
3 % 3 = 0 

4 % 3 = 1 
5 % 3 = 2 
6 % 3 = 0 


7 % 3 = 1 
8 % 3 = 2 
9 % 3 = 0 

  - 어떤수를 나누었을때 나머지가 0이면 어떤수의 배수이다. 

2. 대입 연산자: = 

   - 좌변은 상수(숫자, 문자, 문자열)값이 아니라 기억장소(변수(식별자, 메모리))가 와야한다.  
   - (예) year = 2016 : '='을 기준으로 우항은 값을 가져오는 역할을 하며, 좌항은 값이 저장될 메모리 역할을 한다. 

3. 기타 연산자

   - 연산후대입 연산자: +=, -=, *=, /=, %=  
   - 증가/감소 연산자 지원 안함: ++(1씩 증가), --(1씩 감소)

/python/notebook/basic/DataType.ipynb

.....
print('100의 50%:', 100 * 0.5)
print('100의 50%:', 50 / 100)  # 0.5
print('100의 50%:', 50 / 100 * 100)
print('100의 10%:', 100 * 0.1)
print('100의 1%:', 100 * 0.01)
print('100의 0.5%:', 100 * 0.005)

.....
print("0 % 3 =", 0 % 3)
print("3 % 3 =", 3 % 3)      # 나머지
print("9 / 3 =", 9 / 3)      # 3.0
print("10 / 3 =", 10 / 3)
print("10 // 3 =", 10 // 3)  # 몫

y = 2019
y = y + 1
# y++  # 지원 안함.
y += 1
print("year=", y)

 

6. Library Reference

1. Python API 참조하기

- https://docs.python.org/3/library/index.html
- 
https://www.w3schools.com