Lecture 강의

Undergraduates 학부 Graduates 대학원 Lecture 역학 Lecture 설계 Lecture IT(IoT, AI) Lecture SAP2000 Lecture 아바쿠스 Lecture 파이썬 Lecture 엑셀 VBA Lecture 마이다스 Lecture 이탭스

[00. 기타] 머리말, 목차, 참조 사이트, 용어, 패키지 약어

작성자 : kim2kie

(2023-02-19)

조회수 : 1416

■ 머리말

  • 파이썬 프로그래밍이 중요한 대세라고 하는데,
    사전 지식과 경험이 부족한 사람이 과연 배워서 사용할 수 있을까? 두려움이 앞섰습니다.
  • 매번 어렵게 배우기로 마음을 잡고 시작을 하는데,
    방대한 내용에 배움에 끝이 보이지 않아 중도에 포기하곤 하였습니다.
  • 융합(fusion)이 핵심인 공학(engineering)의 프로그래밍 언어는 
    코딩의 목적이 분명하여야 하고, 간결하여야 합니다.
    또한 실제 응용이 가능하여야 하고, 미래 융합 분야를 포용할 수 있어야 합니다.
  • 이를 위해 스스로를 위해 언제든지 업그레딩이 가능한 
    "대화형(interactive)" 파이썬 교재를 만들고자 합니다.

 

  • 운전을 배우면 훨씬 생각과 행동의 지경이 넓어지듯이,
    도구(코딩, SW 등)를 사용할 줄 알면 능력이 커집니다.
  • 나중에 공학분야에서 코딩을 해야 한다면,
    많은 컴퓨터 언어들 중에 파이썬을 먼저 배우길 바랍니다.
    다른 언어들에 비해 배우기도 쉽고,  활용도도 높기 때문입니다.
  • 처음 컴퓨터 언어를 배우려면 시간이 들어가니,
    꼭 필요할 때 배우길 바랍니다.
    미리 배워 두는 것도 좋지만, 목적이 없다면 길을 잃을 수 있습니다.

 

  • 파이썬이 익숙해 지도록 삶의 일부인 것처럼 사용해 보길 바랍니다.
    컴퓨터 언어는 사용할수록 실력이 늘고,
    컴퓨터 언어를 알면, 컴퓨터를 자연스럽게 이해하게 됩니다.
  • 파이썬은
    계산할 때 계산기보다 불편하지만,
    그래프 그릴 때 엑셀보다 불편하지만,
    행렬을 연산할 때 매트랩보다 불편하지만,
    확장가능성이 훨씬 큰
    파이썬은 사용할수록 참 좋은 
    프로그래밍 언어입니다.


     

  

■ 목차

[00. 기타] 머리말, 목차, 참조 사이트, 컴퓨터 용어

[01. 설정] 1.1 설치 - Python, Anaconda
[01. 설정] 1.2 통합개발환경(IDE) - Spyder, Jupyter, Online
[01. 설정] 1.3 PATH 설정 - C:\ProgramData\Anaconda3
[01. 설정] 1.4 실행

[02. 문법] 2.1 용어 - 구문, 주석, 변수, 모듈, 패키지, 연산자
[02. 문법] 2.2 데이터 타입 - int, str, list, set, bool, bytes
[02. 문법] 2.3 제어문 - if, for, while, break, continue
[02. 문법] 2.4 함수 - def, return, 변수, 인자
[02. 문법] 2.5 클래스 - class, 객체, 상속, 매서드, 생성자, self, 멤버변수, 다중 생성, 정적함수
[02. 문법] 2.6 모듈, 패키지, 파일 분할 - import, from, as, namespace
[02. 문법] 2.7 파일 입출력 - open, f.read, f.readline(s), f.write, with
[02. 문법] 2.8 실행 환경 - os, exec, subprocess
 
[03. 패키지 - NumPy] (1) 다차원 배열(np.array), (2) 인덱싱(:)과 합치기(np.concatenate)
[03. 패키지 - NumPy] (3) 연산(*,@), (4) 브로드캐스팅(matmul), (5) 복사(깊은 복사 vs 얕은 복사)
[03. 패키지 - NumPy] (6) 파일 입출력(np.savetxt,np.loadtxt), (7) 구조체 배열, (8) 기타

[03. 패키지 - Matplotlib] (1) 기본 사용법(plt.plot), (2) IPython
[03. 패키지 - Matplotlib] (3) 사용법, (4) 함수
[03. 패키지 - Matplotlib] (5) 3D 그래프(Axes3D)

[03. 패키지 - SciPy] (1) sub 패키지, (2) 선형대수, (3) 최적화
[03. 패키지 - SciPy] (4) 푸리에 변환: np.fft, np.ifft, 진동수영역 해석

[03. 패키지 - SymPy] (1) 미분방정식(sy.dsolve), (2) 방정식(sy.solve)

[03. 패키지 - PyQt] (1) 둘러보기, (2) 용어
[03. 패키지 - PyQt] (3) 버튼, (4) 문자열 표시
[03. 패키지 - PyQt] (5) 입력
[03. 패키지 - PyQt] (6) 위젯

[Quiz 00] 나도 코딩(기본편)
[Quiz 01] 2.2 데이터 타입, 2.4 함수(print)
[Quiz 02] 2.4 함수(str), 2.6 패키지(random)
[Quiz 03] 2.1 연산자(콜론), 2.4 함수(help), 2.6 패키지(dot)
[Quiz 04] 2.4 함수(list; set)
[Quiz 05] 2.1 연산자(할당), 2.3 제어문(if)
[Quiz 06] 2.4 함수
[Quiz 07] 2.7 파일 입출력
[Quiz 08] 2.5 클래스
[Quiz 09] 2.8 예외(오류) 처리
[Quiz 10] 2.6 모듈

 

 

■ 참조 사이트

   

 

■ 용어

 

▷ 함수를 불러서 "argument(인자)"를 넣고, 함수는 "argument(인자)"를 "parameter(매개변수)" 또는 "variable(변수)"로 인식한다.

.argument(인자): 어떤 함수를 호출시에 전달되는 값 (예: add_txt('hello') 여기서 인자는 'hello')

.parameter(매개변수): 함수로 전달된 인자(argument)를 받아들이는 변수(variable) (예: def add_txt(t1): 여기서 매개변수는 t1)

.variable(변수): 변할 수 있는 수  ↔  constant(상수: 항상 일정한 수)

 

 

▷ console(콘솔)과 terminal(터미널)
.console(콘솔): 컴퓨터를 동작시키는 물리 장치 (예: 모니터, 키보드 등)

.terminal(터미널): 콘솔(console)의 다른 말

 

▷ Encoding(인코딩)과 Decoding(디코딩)
컴퓨터에서 문자를 다루기 위해서는 문자를 바이트(binary data)로 변환해야 한다.
문자를 바이트로 변환하는 것을 "인코딩(Encoding)"이라고 하고,
바이트를 문자로 변환하는 것을 "디코딩(Decoding)"이라 한다.
디코딩할 때는 인코딩할 때와 같은 인코딩 방식을 사용해야 한다.

UTF-8로 인코딩된 바이트를 UTF-8으로 디코딩하면 문자열이 생성되는 반면, EUC-KR로 인코딩된 바이트를 UTF-8로 디코딩하면 잘못된 문자열이 생성된다.
여기서 UTF-8(Unicode Transformation Format - 8-bit)은 유니코드 문자 집합을 위한 가변 길이 문자 인코딩 방식 중 하나이다. 
UTF-8은 ASCII 문자를 포함한 모든 유니코드 문자를 나타낼 수 있으며, 8비트(1바이트) 이하의 문자는 ASCII와 동일한 방식으로 인코딩한다.
UTF-8은 현재 웹, 이메일, 데이터 저장 등 다양한 분야에서 표준 인코딩 방식으로 널리 사용되고 있다.

파이썬에서 파일을 열 때, 인코딩 방식을 지정하지 않으면 기본적으로 시스템의 기본 인코딩 방식을 사용한다.
예를 들어, Windows에서는 기본적으로 CP949 또는 MS949 인코딩 방식을 사용하며, macOS나 Linux에서는 기본적으로 UTF-8 인코딩 방식을 사용한다.
하지만, 시스템마다 기본 인코딩 방식이 다를 수 있으므로, 명시적으로 인코딩 방식을 지정하는 것이 좋다. 

 

 

▷ kernel(커널, 알맹이) vs shell(쉘, 껍데기)
.kernel(커널, 알맹이) vs shell(쉘, 껍데기) ~ CLI vs GUI ~ user(사용자) 

https://www.youtube.com/watch?v=T9dVkKSU1oM

 


■ 패키지 약어
 

약어 패키지 설명
linalg import scipy.linalg as linalg
import numpy.linalg as linalg
linalg는 선형대수(linear algebra)를 위한 라이브러리이다.
m import math as m C 표준에서 정의된 수학(mathematics) 함수에 대한 액세스를 제공한다.
단순 python 연산을 넘어 조금 더 복잡한 산술 연산이 필요할 때 사용한다.
mp import mpmath as mp  
np import numpy as np NumPy는 과학 컴퓨팅을 위한 기본 패키지이다. 
다차원 배열 외에도 이산 푸리에 변환, 선형대수, 통계, 난수(random number) 등 다양한 기능을 가지고 있다.
opt import scipy.optimize as opt SciPy는 과학기술계산을 위한 라이브러리이다.
pd import pandas as pd Pandas는 데이터 분석 라이브러리 중 하나로, 데이터 처리, 분석, 시각화 등을 위한 다양한 기능을 제공한다.
PyQt   (C++용으로 개발된) Qt의 레이아웃으로 파이썬 GUI 프로그램을 만드는 framework이다.
plt import matplotlib.pyplot as plt Matplotlib은 그래프를 그리는 패키지이다. 
random import random  
signal import scipy.signal as signal SciPy는 과학기술계산을 위한 라이브러리이다.
sp import scipy as sp SciPy는 과학기술계산을 위한 라이브러리이다.
sy import sympy as sy SymPy는 변수를 심볼로 지정한 문자 연산이 가능하다.
tf import tensorflow as tf