본문 바로가기
카테고리 없음

[혼공파] 혼자 공부하는 파이썬 용어노트

by Choose Me 2023. 12. 29.
SMALL

01장 파이썬 시작하기

1. 이진숫자 (binary digit)

: 0과 1로 이루어진 수

 

2. 프로그래밍 언어 (programming language)

: 컴퓨터가 이해할 수 있는 이진 코드로 변환되는 것을 목표로 만들어진, 사람이 쉽게 이해할 수 있는 형태의 언어

# 대표적인 프로그래밍 언어로는 파이썬, C, C#, C++, 자바, 루비, 자바스크립트 등

 

3. 소스 코드 (source code)

: 사람들이 쉽게 읽고 이해할 수 있도록 프로그래밍 언어로 작성한 코드.

사람들은 이 코드로 작성하고 읽는 것이 힘들기 때문에 프로그래밍 언어로 소스 코드를 만들고, 이를 컴퓨터가 이해하는 이진 코드로 바꾼다.

 

4. 텍스트 에디터 (text editor)

: 글자를 입력할 수 있는 모든 종류의 프로그램.

메모장도 텍스트 에디터이며, 프로그래밍 작성 시 사용할 수는 있으나 최대한 프로그래밍 언어를 쉽게 작성할 수 있도록 도와주는 텍스트 에디터를 사용하면 좋다.

텍스트 에디터의 종류에는 비주얼 스튜디오 코드 (Visual Studio Code) 외에 서브라임 텍스트 (Sublime Text), 아톰(Atom)등이 있다.

 

5. 통합 개발 환경 (IDE; Integrated Development Environment)

: 텍스트 에디터와 코드 실행기, 이 두 가지를 모두 포함하고 있는 프로그램.

프로젝트 생성, 자동 코드 완성, 디버깅 기능을 제공하는 환경을 말한다.

# 디버깅: 프로그램 내의 코드 오작동을 찾아내는 것.

Ex) 자바의 이클립스, C언어의 Visual Studio

 

6. 개발 환경 (development environment)

: 컴퓨터, 텍스트 에디터, 파이썬 인터프리터 등과 같이 프로그래밍을 할 수 있는 환경, 텍스트 에디터를 포함해서 컴파일러 버전과 같은 개발 플랫폼을 말한다.

개발 환경이 달라지면 프로그램의 작동 결과가 달라질 수 있다.

 

7. 인터프리터 (Interpreter)

: 프로그래밍 소스 코드를 곧바로 실행해 주는 프로그램.

한 번에 코드 한 줄씩 읽어 실행.

파이썬 코드를 실행할 수 있는 도구는 파이썬 인터프리터.

 

8. 대화형 셀 (interactive shell)

: 컴퓨터와 상호 작용하는 공간이라는 의미에서 대화형 셀이라고 부른다.

프롬프트라고 불리는 >>>에 코드를 한 줄 한 줄 입력하면 곧바로 실행결과를 볼 수 있다.

 

9. 표현식 (expression)

: 어떠한 값을 만들어 내는 간단한 코드, 값이란 숫자, 수식, 문자열 등을 의미한다.

 

10. 문장 (statement)

: 표현식이 하나 이상 모인 것. 파이썬에서는 한 줄이 하나의 문장이 된다.

 

11. 키워드 (keyword)

: 의미가 부여된 특별한 단어.

언어 내에서 문법적인 용도로 사용되고 있는 단어.

식별자를 만들 때는 특별한 규칙을 따라야 한다.

# 스네이크 케이스(snake_case): 단어 사이에 _기호를 붙여 만든 식별자.

phone_number = "010-XXXX-XXXX"

# 캐멀 케이스(CamelCase): 단어들의 첫 글자를 대문자로 만든 식별자. 클래스 식별자를 만들 때 사용.

Class WorldMap:
   pass

# 파스칼 케이스: 캐멀 케이스 중에서 첫 번째 글자가 대문자인 것.

Class Person:
   pass

 

12. 변수 (variable)

: 값을 저장할 때 사용하는 식별자.

이름은 '변수'이지만 숫자뿐만 아니라 모든 자료형을 저장할 수 있다.

- 선언: 변수를 사용하려면 식별자는 무엇이고, 어떤 데이터를 가진다라는 것을 알려줘야 하는데, 이는 변수를 '선언한다'라고 한다.

- 할당: 변수에 값을 넣는 것을 '할당한다'라고 한다.

# 할당: 메모리에 변수의 값이 들어갈 공간을 할당해야 하므로

- 참조: 변수에 접근하는 것을 '참조한다'라고 한다.

# 참조: 결국 변수가 저장된 메모리에 접근하는 것인데, 이 메모리의 '주소'를 참조한다고 생각하면 된다.

 

13. 함수 (function)

: 코드의 집합.

식별자 뒤에 괄호가 붙어 있으면 해당 식별자는 함수.

- 함수 호출: 함수를 사용하는 것. 함수를 호출할 때는 괄호 내부에 여러 가지 자료를 넣게 되는데, 이러한 자료를 '매개변수'라 하고, 함수를 호출해서 최종적으로 나오는 결과를 '리턴값'이라고 한다.

- 함수 선언(정의): 함수가 어떤 매개변수를 받아 어떤 동작을 하고 어떤 값을 변환할지 기술하는 것.

def func(mylist):
    return sum(mylist)
    
number = [1,2,3]
print(func(number)) #출력: 6

 

14. 주석 (comment)

: 프로그램 실행에는 영향이 없으며, 코드에 설명을 붙이기 위해서 사용하는 것.

 

15. 연산자 (operator)

: 연산에 사용되는 표시나 기호.

- 연산자 우선순위: 파이썬의 연산자 우선순위는 알고 있는 것처럼 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선하고, 우선순위가 같을 때는 왼쪽에서 오른쪽 순서로, 우선순위를 무시하고 무조건 먼저 연산하고 싶은 게 있다면 괄호로 감싸준다.

- 사칙 연산자, //연산자, 나머지 연산자, 제곱 연산자, 대입 연산자, 복합 대입 연산자

 

16. 리터럴 (literal)

: 소스 코드 내에서 직접 입력된 값.

자료(data)라고도 한다.

 

더보기

그것이 알고 싶다!

상수와 리터럴이란?

사실 리터럴은 상수와 같은 의미지만, 프로그램에서는 상수를 '값을 한 번 저장하면 변경할 수 없는 변수'로 정의하기 때문에 이와 구분하기 위해 '리터럴'이라는 용어를 사용한다.

02장 자료형

1. 자료형 (data type)

: 자료의 형태

자료형에 따라 컴퓨터가 처리하는 방법이 달라진다.

파이썬의 기본 자료형.

- 숫자: 소수점이 없는 정수형과 소수점이 있는 실수형으로 구분.

사칙 연산자(+,-,*,/)와 정수 나누기 연산자(//), 나머지 연산자(%), 제곱 연산자(**)사용

- 문자열: 문자의 나열, 큰따옴표 혹은 작은따옴표로 입력.

문자열 연결 연산자(+), 문자열 반복 연산자(*), 문자열 선택 연산자([]), 문자열 범위 선택 연산자([:])사용

- 불: TRUE와 FALSE를 나타내는 값. 반드시 첫 글자는 대문자.

 

2. 이스케이프 문자 (escape character)

\(백슬래시) 기호가 붙은 특수한 문자 리터럴. 문자열 내부에서 특수한 기능을 수행.

 

3. 인덱스 (Index)

: 리스트, 문자열과 같은 자료형에서 자료가 메모리에 저장된 순서대로 매겨진 번호, 리스트 내부에서 값의 위치를 의미.

- 제로 인덱스: 숫자를 0부터 세는 인덱스. 파이썬은 제로 인덱스 사용.

- 원 인덱스: 숫자를 1부터 세는 인덱스.

mylist = [1,2,3]
print(mylist[0])     # 출력: 1

 

4. 부동 소수점 (floating point)

: 소수점이 있는 실수 데이터를 저장하는 방식.

'부동'은 '떠다니다'의 의미, 소수점이 떠다닌다는 의미에서 부동 소수점이라고 함.

이 방식에서는 최상위 비트(MSB: Most Significant Bit)를 부호로 결정.

최상위 비트가 0이면 양수, 1이면 음수.

 

5. 캐스트 (cast)

: 어떤 자료형을 다른 자료형으로 바꾸는 것.

특히 input() 함수의 입력 자료형은 항상 문자열이기 때문에 입력받은 문자열을 숫자로 변환해야 숫자 연산에 활용 가능.

# input 값으로 들어오는 문자열 형태의 숫자를 정수형으로 변환
n = int(input())

03장 조건문

1. 조건문 (conditional statement)

: 조건에 따라 코드를 실행하거나 실행하지 않게 만들고 (실행 흐름을 바꾸고) 싶을 때 사용하는 구문.

실행 흐름을 바꾸는 것.

- if문: 괄호 내의 조건식이 참이면 블록 내의 문장을 실행

- else문: if문의 조건식이 거짓이면 블록 내의 문장을 실행. 필요 없으면 안 써도 됨.

- else if문: is문의 조건식이 거짓일 때 실행시킬 코드에 추가 조건을 걸고 싶은 경우에 사용.

마찬가지로 필요 없으면 else if를 사용하지 않아도 됨.

 

2. 들여쓰기 (indent)

: 코드 앞에 사용하는 '띄어쓰기 4번', '띄어쓰기 2번', '탭'과 같은 것을 의미.

파이썬 개발에서는 일반적으로 '띄어쓰기 4번'을 많이 사용.

더보기

그것이 알고 싶다!

소프트 탭이란?

Tab키를 누르면 자동으로 띄어쓰기 네 개를 넣어주는 기능

 

3. 비교 연산자 (comparison operators)

: 불을 만드는 연산자.

숫자의 크기 비교나 문자열을 비교.

 

4. 논리 연산자 (logical operators)

: 비교 연산자로 만들어진 불끼리 연산할 수 있는 연산자.

- not: 불을 반대로 전환. True는 False로, False는 True로.

- and: 피연산자 두 개가 모두 참일 때 True를 출력하며, 나머지의 경우는 모두 False를 출력.

- or: 피연산자 두 개 중에 하나만 참이라도 True를 출력하며, 두 개가 모두 거짓일 때만 False를 출력.

 

04장 반복문

1. 반복문 (loop statement)

: 조건문과 같이 프로그램의 진행을 바꿀 때 사용하는 것.

매우 많은 횟수 또는 무한하게 반복 작업을 하고 싶을 때 사용하는 문법.

- for문: 반복 횟수가 정해졌거나 변수가 이터러블한 경우에 주로 사용.

# 반복 횟수가 정해진 경우, range()함수 사용

- while문: 반복 횟수를 모르거나 무한 루프를 만들 때 주로 사용.

- break문: 반복문, 조건문 블럭을 빠져 나오게 하는 키워드.

- continue문: 반복문 내에서 continue문을 만나면 아래에 있는 코드를 실행하지 않고 위로 돌아가 반복문 조건을 검사한 후 반복을 할지 말지를 결정. 주로 조건문 안에 넣어 사용.

# 리스트와 for 반복문
for n in mylist:
    print(n)                   # 리스트의 요소 출력

# 딕셔너리와 for 반복문
for key in mydict:             # key는 딕셔너리의 키!
    print(key)
for value in mydict.values():  # value는 딕셔너리의 값!
    print(value)
for key, value in mydict.items():
    print('key: {}'.format(key))
    print('value: {}'.format(value))

# range()를 사용한 반복문
for i in range(5):             # 5회 반복
    print(i)
    
# 리스트, 범위, for 반복문 조합하기
for i in range(len(array)):
print("{}번째 반복: {}".format(i, array[i]))

# while 반복문
i = 0
while i < 10:
print("{}번째 반복입니다.".format(i))
i += 1
더보기

그것이 알고싶다!

리스트와 딕셔너리의 차이점이란?

리스트는 각 요소를 인덱스로 접근하는 반면, 딕셔너리는 인덱스 대신 키를 사용해 요소에 접근한다.

 

2. 이터러블 (iterable)

: 반복을 적용할 수 있는 성질.

내부에 있는 요소들을 차례차례 꺼낼 수 있는 객체.

- 문자열, 리스트, 딕셔너리, 범위(range()함수)

 

3. 비파괴적 함수 (non destructive function)

: 원본을 변화시키지 않는 함수

# 종류: str 자료형의 lower(), upper(), split() 등

 

4. 파괴적 함수 (destructive function)

: 원본을 변화시키는 함수

# 종류: list 자료형의 append(), remove(), pop() 등

 

5. 리스트 내포 (list comprehension)

: 반복문의 요소를 삽입할 때, 한 줄로 작성할 수 있도록 제공하는 문법.

# 리스트를 선언합니다.
array = [i*i for i in range(0,20,21)]
# 출력합니다.
print(array)

 

6. 전개 연산자 (spread operator)

: 리스트 요소를 나열해 주는 연산자. 리스트 앞에 * 기호를 사용한다.

 

05장 함수

1. 리턴 (return)

: 함수를 실행했던 위치로 돌아가게 하는 것.

리턴값을 가지는 함수는 반드시 리턴할 때 반환하는 값이 있어야 한다.

# 리턴값: 함수의 실행 결과값

- 조기 리턴: 함수 내의 필요한 위치에서 return 키워드를 사용하는 것.

 

2. 매개변수 (parameter)

: 함수를 호출할 때 필요한 데이터를 외부로부터 받기 위해 사용하는 것.

- 가변 매개변수: 매개변수를 원하는 만큼 받을 수 있는 함수.

- 기본 매개변수: 매개변수를 입력하지 않았을 경우 들어가는 기본값.

더보기

그것이 알고싶다!

전달인자(argument)와 매개변수(parameter)

int mySum(arr):
    return sum(arr)

myVar = mySum(myArray)

 arr: 매개변수

myArray: 전달인자

 

3. 키워드 매개변수 (keyword parameter)

: 매개변수의 이름을 입력하는 매개변수.

print('you are not alone!!', end='')

# end=' ' : 키워드 매개변수

 

4. 재귀 (recusion)

: 함수 내부에서 자기 자신을 호출하는 것.

 

5. 매모화 (memorize)

: 재귀 호출에서 한 번 연산한 값을 중복해서 연산하지 않기 위해 새로운 값을 연산할 때마다 그 결과에 따른 값을 저장하는 것.

 

6. 팩토리얼 (factorial)

: n!로 표현.

1부터 n까지의 숫자를 곱하는 연산.

 

7. 파보나치 수열 (fibonacci numbers)

: 첫 번째와 두 번째 항이 주어지며, 세 번째 항부터 앞의 두 항을 더한 값을 갖는 수열.

 

8. 트리 (tree)

: 비선형 자료 구조의 일종.

노드끼리 연결된 모습이 나무 모양의 구조인 데에서 이름이 유래.

- 노드: 트리의 각 항목

- 리프: 자식 노드가 없는 노드

- 부모 노드: 자신의 바로 위에 연결된 노드

- 자식 노드: 자신의 바로 아래에 연결된 노드

- 루트: 해당 트리의 최상위 노드

 

9. 스트림 (stream)

: 프로그램의 외부 파일, 외부 네트워크 등과 통신할 때 데이터가 흐르는 길.

이때 외부는 같은 컴퓨터 내부라도 프로그램의 바깥에 별도로 존재하는 것을 말한다.

 

10. 람다 (lambda)

: 간단한 함수를 쉽게 구현할 수 있는 기능.

 

11. 튜플 (tuple)

: 리스트와 비슷한 자료형이나 리스트와 다르게 한번 결정된 요소를 바꿀 수 없다.

# 괄호가 없는 튜플
tuple_test = 10, 20, 30, 40    #tuple_test 변수는 튜플 자료형!

# 튜플을 사용헌 할당
(a, b) = (10, 20)
a, b = 10, 20

 

12. 스택(stack)

: 기본 자료형이 자곡자곡 정리된 공간.

# 기본 자료형: 숫자, 문자열, 불

 

13. 힙 (heep)

: 객체 자료형이 저장되어 있는 공간.

# 객체 자료형: 숫자, 문자열, 불을 제외한 자료형

06장 예외 처리

1. 구문 오류 (syntax error)

: 프로그램 실행 전에 발생하는 오류.

구문 오류가 있으면 프로그램 자체가 실행이 되지 않는다.

 

2. 예외 (exception)

: 런타임 오류 (runtime error)

프로그램 실행 중에 발생하는 오류를 의미.

try-except 구문으로 처리 가능.

try:
   number_input_a = int(input("정수 입력> "))
except:
    # 정수로 변환 불가능한 자료가 입력될 경우 실행됩니다.
    print("무언가 잘못되었습니다.")

 

3. 예외 처리 (exception handling)

: 예외가 발생하지 않게 미리 예외가 발생할 수 있는 부분에 안전 장치를 설치하는 것.

# 예외를 처리하는 방법

1) 조건문 사용: 조건문 등을 사용해 예외를 처리하는 기본적인 방법

2) try 구문 사용: 예외 처리에 특화된 구문

 

4. 예외 객체 (exception object)

: 예외가 발생했을 때 예외에 관련된 정보가 저장되는 객체.

 

07장 모듈

1. 유닉스 타임 (unix time)

: 세계 표준시(UTC)로 1970년 1월 1일 0시 0분 0초를 기준으로 몇 초가 지났는지를 정수로 나타낸 것.

 

2. 모듈 (module)

: 코드를 분리하고 공유할 수 있도록 만들어 주는 문법.

- 표준 모듈: 파이썬에 기본적으로 내장되어 있는 모듈.

- 외부 모듈: 다른 사람이 만들어서 공개한 모듈.

 

3. 패키지 관리 시스템 (Package Management System)

: 파이썬의 외부 모듈을 설치할 때 사용하는 프로그램.

pip(Python Package Index)를 일컬음.

 

4. 엔트리 포인트 (entry point)

: 메인(main)이라고도 하며, 프로그래밍 언어에서 프로그램의 진입점을 이르는 말.

 

5. URL (Uniform Resource Locator)

: 네트워크의 자원이 어디에 위치하는지 확인할 때 사용하는 것.

 

6. 인코딩 (encoding)

: 특정한 방식을 기반으로 어떤 형식을 다른 형식으로 대응시키는 것.

더보기

그것이 알고 싶다!

ASCII CODE란?

파이썬은 기본 인코딩 방식으로 아스키를 사용한다. 아스키(ASCII: American Standard Code for Information Interchange, 미국 정보 교환 표준 부호)는 7비트로 표현되는 영문자 기반 인코딩이며, 33개의 제어 문자들과 95개의 출력 가능한 문자들로 이루어져 있다.

 

7. 디코딩 (decoding)

: 인코딩된 데이터를 반대로 돌리는 것.

 

8. 라이브러리 (library)

: 개발자가 모듈의 함수를 실행하여 사용하는 것.

정상적인 제어를 하는 모듈.

 

9. 프레임워크 (framework)

: 모듈이 개발자의 함수를 실행하여 사용하는 것. (제어 역전이 발생하는 모듈)

 

10. 제어 역전 (IoC; Inversion of Control)

: 개발자가 모듈의 함수를 호출하는 것이 일반적인 제어 흐름인데, 이와 반대로 개발자가 만든 함수를 모듈이 실행하는 것.

더보기

그것이 알고 싶다!

라이브러리와 프레임워크를 구분하는 법

제어 역전이 발생하는 모듈이 프레임워크, 정상적인 제어를 하는 모듈이 라이브러리다. 즉, 흐름(flow)을 주도하는 쪽이 누구인가에 따라 라이브러리, 프레임워크로 구분한다.

 

11. 텍스트 데이터 (text data)

: 내부적으로 앞에서 언급한 이진수로 저장되지만, 우리가 쉽게 읽을 수 있는 텍스트로 변환될 수 있는 이진수 데이터.

 

12. 바이너리 데이터 (binary data)

: 텍스트 에디터로 열었을 때 의미를 이해할 수 없으며, 전용 에디터를 사용해서만 편집할 수 있는 데이터. (이미지, 동영상)

08장 클래스

1. 객체 지향 프로그래밍 (OOP; Object Oriented Programming)

: 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법.

# 객체 지향 프로그래밍의 특징: 상속, 다형성, 캡슐화

더보기

그것이 알고 싶다!

캡슐화 (encapsulation)

캡슐화는 객체 지향 프로그래밍의 특징 중 하나로, 객체의 필드, 메소드 클래스 외부에서 실행할 수 없게 감추는 것을 말한다. 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 필드와 메소드를 캡슐화하여 보호하는 것이다.

 

2. 상속 (inheritance)

: 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성하는 관계를 말한다.

상위 객체는 자기가 가지고 있는 변수와 함수를 하위 객체에게 물려주어 하위 객체가 사용할 수 있도록 한다.

- 부모(parent class, super class, 상위 클래스): 해당 클래스에 선언된 변수와 함수를 물려주는 클래스.

- 자식(child class, sub class, 하위 클래스): 다른 클래스로부터 물려받고자 하는 클래스.

게임 캐릭터를 만들 때, 캐릭터 이름과 같은 속성은 모든 캐릭터가 같지만 각각의 직업은 다르기 때문에 다른 스킬을 사용한다. 이 때 공통된 속성을 갖는 클래스를 상속받아 스킬만 다르게 구현할 수 있다.

 

3. 클래스 (class)

: 객체에 포함할 변수와 함수를 미리 정의한 것.

객체의 설계도에 해당.

 

4. 추상화 (abstaction)

: 프로그램에서 필요한 요소만을 사용해서 객체를 표현하는 것.

복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것을 의미.

 

5. 객체 (object)

: 여러 가지 속성을 가질 수 있는 대상.

 

6. 인스턴스 (instance)

: 클래스 기반으로 만들어진 객체.

더보기

그것이 알고싶다!

클래스, 객체, 인스턴스

속성을 가진 대상인 개게는 클래스를 이용하여 가공하기 쉬운 인스턴스로 구현할 수 있다. 클래스는 갹체가 가지는 기능을 메소드와 속성을 정의하고, 필요할 때마다 생성자 호출로 같은 기능과 속성을 가지는 인스턴스를 만들 수 있도록 한다. 때문에 흔히 객체와 인스턴스라는 용어는 혼용되어 사용된다. 인스턴스는 갹체를 프로그래밍으로 구현한 개념이기 때문이다.

 

7. 생성자 (constructor)

: 클래스 이름과 같은 함수.

클래스 내부에 __init__이라는 함수를 만들면 객체가 생성할 때 처리를 작성할 수 있다.

Class Student:
   def __init__(self, name):
     self.name = name
     
Student("윤인성")               # name 속성에 "윤인성" 문자열을 저장

 

8. 소멸자 (destructor)

: 인스턴스가 소멸될 때 호출되는 함수.

 

9. 메소드 (method)

: 클래스가 가지고 있는 함수 (멤버 함수, 인스턴스 함수)

 

10. 프라이빗 변수 (private variable)

: 캡슐화를 위해 만들어진 문법.

파이썬은 클래스 내부의 변수가 외부에서 사용하는 것을 막고 싶을 때, 인스턴스 변수 이름을 __<변수 이름> 형태로 선언한다.

더보기

그것이 알고 싶다!

게터(getter)와 세터(setter)

외부에서 마음대로 읽고 변경할 수 없도록 제어하는 메소드, 만약 외부에서 필드값을 읽을 수만 있고 변경하지 못하도록 하려면(읽기 전용) getter 메소드만 선언하면 된다.

 

11. 가비지 컬렉터 (garbage collector)

: 더 이상 사용할 가능성이 없는 데이터를 메모리에서 제거하는 프로그램.

 

12. 오버라이드 (override)

: 부모에게서 상속받은 메소드를 자식 클래스에서 다시 정의하는 것.

반응형
LIST