터미널

기능 명령어
폴더 생성하기 mkdir folder name
Git 저장소 생성 git init
현재 위치 이동하기 cd folder name
파일 생성하기 touch file name
현재 위치의 파일 보기 ls
커밋 메세지 남기기 git commit -m ""
파일 한 번에 추가하기 git add .
깃 상태 확인하기 git status
히스토리 보기 git log
파일 삭제하기 git rm

 


Markdown

이름 문법 특징 및 예시
헤더(Header) # # 개수에 따라 헤더의 크기가 달라짐
굵은 글씨(Bold) **, __로 감쌈 **굵은 글씨**
__굵은 글씨__
기울림 글씨(Italic) *, _로 감쌈 *기울림 글씨*
_기울림 글씨_
목록(List) -, *, + ⬅️ 순서가 없는 목록
1. , 2. , 3. ⬅️  순서가 있는 목록
링크(Link) [링크 텍스트](URL) [Google](https://www.google.com)
이미지(image) ![이미지 텍스트](이미지 URL)  
인용문(Blockquote) > > 이건 인용문입니다.
코드(code)
`으로 감쌈 ⬅️ 한 줄 코드
```으로 감쌈 ⬅️  여러 줄 코드 블록
수평선(Horizontal Line) ---, ***, ___  
테이블(Table) | - 사용해서 만듦 표 같은 것들
하이퍼링크 자동 변환 이메일 주소나 URL 입력  
체크리스트
[ ] 항목 1 ⬅️ 체크되지 않은 항목
[x] 항목 2 ⬅️ 체크된 항목
줄 바꿈(Line Break) 두 개의 공백(라인 끝에) + 엔터키 <br>

 

모듈

개념 Python에서 관련된 함수, 클래스, 변수 등을 하나의 파일에 모아놓은 코드 묶음
특징 코드를 재사용하고, 논리적으로 구분하여 관리할 수 있음
Python 파일(.py) 하나가 하나의 모듈이 됨
# my_module.py라는 모듈
def greet(name):
    return f"안녕하세요, {name}님!"

 

import 키워드 (모듈 불러오기)

import 모듈이름

<예시>

import math  # 수학 관련 함수들을 포함한 math 모듈

result = math.sqrt(16)  # math 모듈의 sqrt 함수 사용
print(result)  # 4.0

# math 모듈을 불러와서 sqrt 함수를 통해 16의 제곱근을 구했음

<모듈에 별칭 붙이기> as

import math as m  # math 모듈을 m이라는 별칭으로 사용

result = m.sqrt(25)
print(result)  # 5.0

 

from 키워드 (모듈에서 특정 항목만 불러오기)

개념 모듈 전체가 아닌 모듈 내의 특정 함수, 클래스, 변수를 선택적으로 불러올 수 있음
from 모듈이름 import 항목이름

<예시>

from math import sqrt  # math 모듈에서 sqrt 함수만 불러옴

result = sqrt(36)
print(result)  # 6.0

 

<여러 항목 불러오기> 쉼표로 불러올 수 있음

from math import sqrt, pow  # sqrt와 pow 함수를 불러옴

result1 = sqrt(49)
result2 = pow(2, 3)
print(result1)  # 7.0
print(result2)  # 8.0

 

모듈 탐색 경로

python은 다음 순서로 모듈을 찾음

1. 현재 작업 디렉터리  현재 실행 중인 스크립트가 있는 폴더
2. 표준 라이브러리 경로 Python이 기본적으로 제공하는 라이브러리들이 위치한 폴더
3. 환경 변수에 지정된 경로 PYTHONPATH 환경 변수에 지정된 폴더
모듈이 이 경로들 중 하나에 존재하면 import 또는 from 구문을 통해 해당 모듈을 불러올 수 있음

🔥 패키지를 불러올 때에는 __init()__.py 파일이 있어야 python에서 패키지로 인식됨

print(), input(), len(), type(), int(), float(), str(), sum(), min(), max(), sorted(), abs(), round()

함수 개념 예시
print() 데이터를 화면에 출력 print("Hello, World!")
문자열을 포맷팅하여 출력할 때 사용 print("Python", "is", "fun", sep="-")
# Python-is-fun
input() 사용자 입력받기 (*항상 문자열로 반환됨) name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")
len() 문자열, 리스트, 튜플 등의 길이를 구할 때 사용 text = "Hello"
print(len(text))
# 5
요소의 개수도 반환함 fruits = ["apple", "banana", "cherry"]
print(len(fruits))
# 3
type() 변수가 어떤 데이터 타입인지 확인할 때 사용 a = 10
b = 3.14
c = "Python"

print(type(a))  # <class 'int'>
print(type(b))  # <class 'float'>
print(type(c))  # <class 'str'>
int() 정수 변환 num_str = "100"
num_int = int(num_str)
print(num_int)
# 100
float() 실수 변환 num_float = float("3.14")
print(num_float)
# 3.14
str() 문자열 변환 num = 50
num_str = str(num)
print(num_str)
# "50"
sum() 데이터 집합의 합계를 구할 때 사용 numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)
# 15
min(), max() 최솟값, 최댓값 numbers = [3, 1, 4, 1, 5, 9]

minimum = min(numbers)
maximum = max(numbers)

print(f"최솟값: {minimum}, 최댓값: {maximum}")
# 최솟값: 1, 최댓값: 9
sorted() 오름차순으로 정렬 numbers = [5, 3, 8, 6, 2]
sorted_numbers = sorted(numbers)

print(sorted_numbers)
# [2, 3, 5, 6, 8]
reverse = True 내림차순으로 정렬 numbers = [5, 3, 8, 6, 2]
sorted_numbers = sorted(numbers)

print(sorted(numbers, reverse=True))
# [8, 6, 5, 3, 2]
abs() 절댓값 num = -10
print(abs(num))

# 10
round() 지정된 자릿수까지 반올림 pi = 3.14159
print(round(pi, 2))

# 3.14

 

반복문

for

개념 컬렉션(collection)의 각 요소를 순차적으로 순회하면서 코드 블록을 실행
컬렉션에는 리스트, 튜플, 문자열 등
for 변수 in 컬렉션:
    실행할 코드

<예시>

# 숫자 리스트의 각 요소를 제곱한 값을 출력하는 프로그램
numbers = [1, 2, 3, 4, 5]

for number in numbers:
    square = number ** 2
    print(f"{number}의 제곱은 {square}입니다.")

range()

개념 특정 범위의 숫자 시퀀스를 생성
특징 for문과 함께 자주 사용됨
반복 횟수를 지정할 때 유용함
for i in range(시작, 종료, 단계):
    실행할 코드
자리 의미 예시
시작 시작할 숫자
(기본값 0)
for i in range(1, 10, 2):
    print(i)

# 결괏값
1, 3, 5, 7, 9
종료 종료할 숫자
(해당 숫자는 포함하지 않음)
단계 숫자 간의 간격
(기본값 1)

 

while

개념
조건식참인 동안 반복해서 코드 블록을 실행
조건식이 거짓이 되면 반복문이 종료됩니다.
while 조건식:
    실행할 코드
# 사용자로부터 숫자를 입력받아, 그 숫자가 0이 될 때까지 반복해서 입력받는 프로그램
number = int(input("숫자를 입력하세요 (0을 입력하면 종료): "))

while number != 0:
    print(f"입력한 숫자는 {number}입니다.")
    number = int(input("다시 숫자를 입력하세요 (0을 입력하면 종료): "))

print("프로그램을 종료합니다.")

 

반복 제어

break

개념 반복문을 즉시 종료시킴
반복문 내에서 특정 조건이 만족되면 더 이상 반복할 필요가 없을 때 사용함
for i in range(1, 11):
    if i == 5:
        break
    print(i)

 

continue

개념 현재 반복을 건너뛰고, 다음 반복을 이어감
특정 조건에서 코드 블록의 일부를 실행하지 않고 다음 반복으로 넘어가고 싶을 때 사용함
for i in range(1, 6):
    if i % 2 == 0:
        continue
    print(i)

이 예시에서는 i가 짝수일 때 continue 문이 실행되어,

그 다음 코드는 건너뛰고 반복문이 계속됨

따라서 1, 3, 5만 출력됨

# 사용자로부터 숫자를 입력받아, 음수를 입력할 경우 반복문을 종료하는 프로그램
while True:
    number = int(input("숫자를 입력하세요 (음수를 입력하면 종료): "))
    if number < 0:
        print("음수가 입력되어 프로그램을 종료합니다.")
        break
    if number % 2 == 0:
        print("짝수입니다.")
        continue
    print("홀수입니다.")

 

중첩 반복문

개념 반복문 안에 또 다른 반복문을 사용하는 것
특징 2차원 데이터(예: 행렬)를 처리할 때 유용함
복잡한 반복 작업을 수행할 때 유용함
for i in range(첫 번째 범위):
    for j in range(두 번째 범위):
        실행할 코드
# 구구단 출력 프로그램
for i in range(2, 10):
    print(f"{i}단:")
    for j in range(1, 10):
        print(f"{i} x {j} = {i*j}")
    print()  # 각 단마다 줄바꿈 추가

2단부터 9단까지의 구구단을 출력함

조건문(if)

if 조건식1:
    실행할 코드1
elif 조건식2:
    실행할 코드2
elif 조건식3:
    실행할 코드3
else:
    실행할 코드4 (모든 조건이 거짓일 때)

<예시>

# 사용자로부터 점수를 입력받아 학점을 출력하는 프로그램
score = int(input("점수를 입력하세요: "))

if score >= 90:
    print("A 학점")
elif score >= 80:
    print("B 학점")
elif score >= 70:
    print("C 학점")
elif score >= 60:
    print("D 학점")
else:
    print("F 학점")

 

중접 조건문

if 조건식1:
    if 조건식2:
        실행할 코드1
    else:
        실행할 코드2
else:
    실행할 코드3

<예시>

# 사용자로부터 나이와 학생 여부를 입력받아 상태를 출력하는 프로그램
age = int(input("나이를 입력하세요: "))
is_student = input("학생입니까? (yes/no): ")

if age >= 18:
    if is_student.lower() == "yes":
        print("성인이며, 학생입니다.")
    else:
        print("성인이며, 학생이 아닙니다.")
else:
    if is_student.lower() == "yes":
        print("미성년자이며, 학생입니다.")
    else:
        print("미성년자이며, 학생이 아닙니다.")

 

명시적 타입 변환

: 변수에 저장된 값을 다른 데이터 타입으로 바꾸는 것을 의미 (정수 -> 문자열, 문자열 -> 실수)

명시적 타입 변환
(프로그래머가 직업 타입 변환 함수를 사용하여 데이터를 변환하는 방식)
함수 예시
int()


실수를 정수로 변환
a = 3.14
b = int(a)
print(b)  # 3
문자열을 정수로 변환
c = "100"
d = int(c)
print(d)  # 100
주의
: 변환하려는 문자열이 숫자가 아니면 오류가 발생

e = int("abc")
# ValueError: invalid literal for int()
float()


정수를 실수로 변환
a = 10
b = float(a)
print(b)  # 10.0
문자열을 실수로 변환
c = "3.14"
d = float(c)
print(d)  # 3.14
주의
: 변환하려는 문자열이 실수 형태가 아니면 오류가 발생

e = float("abc")
# ValueError: could not convert string to float
str()

정수를 문자열로 변환
a = 10
b = str(a)
print(b)  # "10"
실수를 문자열로 변환
c = 3.14
d = str(c)
print(d)  # "3.14"
bool()


숫자를 불리언으로 변환
a = 0
b = bool(a)
print(b)  # False

c = 1
d = bool(c)
print(d)  # True
빈 문자열과 None은 False 
e = ""
f = bool(e)
print(f)  # False
그 외의 값은 True
g = "Hello"
h = bool(g)
print(h)  # True
list() 문자열을 리스트로 변환
a = "hello"
b = list(a)
print(b)  # ['h', 'e', 'l', 'l', 'o']
tuple() 리스트를 튜플로 변환
c = [1, 2, 3]
d = tuple(c)
print(d)  # (1, 2, 3)
set() 리스트를 셋으로 변환 (중복 제거)
e = [1, 2, 2, 3, 4]
f = set(e)
print(f)  # {1, 2, 3, 4}

 

암시적 타입 변환

: Python이 자동으로 데이터를 변환하는 경우

# 정수와 실수의 연산에서 발생하는 암시적 변환
a = 5
b = 2.0
c = a + b
print(c)  # 7.0 (정수 5가 실수 5.0으로 암시적 변환됨)
print(type(c))  # <class 'float'>

 

리스트 

리스트(List)
리스트란? 여러 개의 항목을 순서대로 저장할 수 있는 가변 자료형
표현법 대괄호[], 쉼표(,)로 구분됨
특징 1. 순서가 있다.
2. 가변적이다.
3. 중복된 요소를 가질 수 있다.
사용 예시
종류 함수 예시
생성 리스트명 = [] fruits = ["apple", "banana", "cherry"]
요소 접근 print(fruits[0]) print(fruits[0])  # apple
요소 변경 fruits[1] fruits[1] = "blueberry"
print(fruits)  # ['apple', 'blueberry', 'cherry']
요소 추가 .append() fruits.append("orange")
print(fruits)  # ['apple', 'blueberry', 'cherry', 'orange']
요소 제거 .remove() fruits.remove("blueberry")
print(fruits)  # ['apple', 'cherry', 'orange']
길이 확인 len() print(len(fruits))  # 3

 

튜플

튜플(Tuple)
튜플이란? 리스트와 유사하지만, 한 번 생성되면 수정할 수 없는 불변 자료형
표현법 소괄호(), 쉼표(,)로 구분됨
특징 1. 순서가 있다
2. 불변적이다
3. 중복된 요소를 가질 수 있다
사용 예시
종류 함수 예시
생성 튜플명 = () coordinates = (10, 20)
요소 접근 print(coordinates[0]) # 튜플 요소 접근
print(coordinates[0])  # 10
요소 변경 변경 불가 # 튜플은 불변이므로 요소 변경 불가
# coordinates[0] = 15  # 오류 발생
길이 확인 len() # 튜플 길이 확인
print(len(coordinates))  # 2
하나의 요소를 가진 튜플 생성 튜플명 = (5,) # 하나의 요소를 가진 튜플을 생성할 때는 뒤에 쉼표를 붙임
single_element_tuple = (5,)
print(type(single_element_tuple))  # <class 'tuple'>

 

딕셔너리

딕셔너리(Dictionary)
딕셔너리란? 키-값 쌍{Key-Value Pair}으로 데이터를 저장하는 자료형
표현법 중괄호{}, 각 키와 값은 콜론(:)으로 구분됨
특징 1. 순서가 없으며(버전 3.7부터는 삽입 순서 유지), 키를 통해 접근함
2. 가변적
3. 키는 유일해야 하며, 값은 중복될 수 있음
사용 예시
종류 함수 예시
생성 딕셔너리명 = {} # 딕셔너리 생성
person = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}
값 접근 print(딕셔너리명[key]) print(person["name"])  # Alice
값 변경 딕셔너리명[key] = value person["age"] = 26
print(person)  
# {'name': 'Alice', 'age': 26, 'city': 'New York'}
값 새로 추가하기 딕셔너리명[key] = value person["email"] = "alice@example.com"
print(person)
# {
'name': 'Alice',
'age': 26,
'city': 'New York',
'email': 'alice@example.com'
}
키-값 쌍 제거 del 딕셔너리명[key] del person["city"]
print(person)
# {
'name': 'Alice',
'age': 26,
'email': 'alice@example.com'
}
키 목록 접근 person.keys() print(person.keys())  
# dict_keys(['name', 'age', 'email'])
값 목록 접근 person.values() print(person.values())
# dict_values(['Alice', 26, 'alice@example.com'])

 

셋(Set)
셋이란? 중복되지 않는 요소들의 집합을 나타냄
표현법 중괄호{}, 순서가 없음, 중복을 허용하지 않음
특징 1. 순서가 없음
2. 가변적
3. 중복된 요소를 가질 수 없음
사용 예시
종류 함수 예시
생성 셋명 = {} numbers = {1, 2, 3, 4, 4, 5}  # 중복된 요소는 하나로 처리됨
print(numbers)  # {1, 2, 3, 4, 5}
요소 추가 .add() numbers.add(6)
print(numbers)  # {1, 2, 3, 4, 5, 6}
요소 제거 .remove() numbers.remove(3)
print(numbers)  # {1, 2, 4, 5, 6}
셋의 집합 연산
생성 셋명 = {} odd = {1, 3, 5, 7}
even = {2, 4, 6, 8}
합집합 .union() union_set = odd.union(even)
print(union_set)  # {1, 2, 3, 4, 5, 6, 7, 8}
교집합 .intersection() intersection_set = numbers.intersection(odd)
print(intersection_set)  # {1, 5}
데이터 타입
종류 설명
숫자형 10은 숫자
문자형 "Hello"는 문자열(문자 데이터)
불리언 True는 불리언(논리 데이터)

 

숫자형
종류 함수 예시
정수형 int() 10, =5, 0
실수형 float() 3.14, 0.001, 2.0
복소수형(complex)   1 + 2j, 3 - 4j

 

문자형
종류 표현법 예시
기본형 작은 따옴표(''), 큰 따옴표("") name = "Alice"
greeting = 'Hello, World!'
여러 줄 문자열 삼중 따옴표(''', """) message = """안녕하세요!
여러 줄의 문자열을 이렇게 작성할 수 있습니다."""
문자열 연결 + full_name = "Alice" + " " + "Smith"  # Alice Smith
문자열 반복 * repeated_greeting = 
"Hello! " * 3    # Hello! Hello! Hello!
문자열 인덱싱 print(text[숫자]) text = "Python"
print(text[0])   # 'P'
문자열 슬라이싱 print(text[시작:끝] text = "Python"
print(text[1:4]) # 'yth'

 

불리언
종류 표현법 예시
기본형 True, False 두 가지만 가질 수 있음 is_sunny = True
is_raining = False
불리언 연산 and, or, not a = True
b = False

print(a and b)  # False
print(a or b)   # True
print(not a)    # False
비교 연산의 결과 ==, !=, >, < x = 10
y = 20

print(x == y)  # False
print(x < y)   # True

 

산술 연산자
연산자 기능 예시 결과
+ 덧셈 3 + 2 5
- 뺄셈 5 -2 3
* 곱셈 4 *3 12
/ 나눗셈 10 / 2 5.0
% 나머지 7 % 3 1
** 거듭제곱 2 ** 3 8
// 7 // 3 2

 

비교 연산자
연산자 기능 에시 결과
== 값이 같음 3 == 3 True
!= 값이 다름 3 != 4 True
> 5 > 2 True
< 작음 2 < 5 True
>= 크거나 같음 5 >= 5 True
<= 작거나 같음 4 <= 5 True

 

논리 연산자
연산자 기능 예시 결과
and 두 조건이 모두 참일 때 True and False False
or 두 조건 중 하나라도 참일 때 True of False True
not 논리값을 반대로 뒤집음 not True False
a = True
b = False

print(a and b)  # False
print(a or b)   # True
print(not a)    # False

 

대입 연산자
연산자 기능 예시 결과
= 값 할당 x = 5 x = 5
+= 더한 후 할당 x += 3 x = x + 3
-= 뺀 후 할당 x -= 3 x = x - 3
*= 곱한 후 할당 x *= 2 x = x * 2
/= 나눈 후 할당 x /= 2 x = x / 2
%= 나머지를 구한 후 할당 x %= 2 x = x % 2
**= 거듭제곱 후 할당 x **= 2 x = x ** 2
//= 몫을 구한 후 할당 x //= 2 x = x // 2
x = 10
x += 5  # x = x + 5
print(x)  # 15

x *= 2  # x = x * 2
print(x)  # 30

x //= 3  # x = x // 3
print(x)  # 10

 

비트 연산자
( 이진수(bit) 수준에서 연산을 수행함 )
연산자 기능 예시 결과
& 비트 AND 5 & 3 1
| 비트 OR 5 | 3 7
^ 비트 XOR 5 ^ 3 6
~ 비트 NOT (보수) ~5 -6
<< 왼쪽 시프트 (Left Shift) 5 << 1 10
>> 오른쪽 시프트 (Right Shift) 5 >> 1 2
a = 5  # 이진수로 101
b = 3  # 이진수로 011

print(a & b)  # 1 (이진수 001)
print(a | b)  # 7 (이진수 111)
print(a ^ b)  # 6 (이진수 110)
print(~a)     # -6 (이진수 보수)
print(a << 1) # 10 (이진수 1010)
print(a >> 1) # 2 (이진수 010)

 

멤버십 연산자
[특정 값이 시퀀스(문자열, 리스트, 튜플 등)에 속해 있는지 확인]
연산자 기능 예시 결과
in 시퀀스에 값이 포함되어 있는지 확인 "a" in "apple" True
not in 시퀀스에 값이 포함되어 있지 않은지 확인 "b" not in "apple" True

 

식별 연산자
(두 변수가 동일한 객체를 가리키는지 확인)
연산자 기능 예시 결과
is 두 변수가 동일 객체인지 확인 a is b True or False
is not 두 변수가 동일하지 않은 객체인지 확인 a is not b True of False
x = ["apple", "banana"]
y = ["apple", "banana"]
z = x

print(x is z)       # True (z는 x를 가리킴)
print(x is y)       # False (x와 y는 내용은 같지만, 다른 객체)
print(x == y)       # True (x와 y는 값이 동일함)
print(x is not y)   # True (x와 y는 다른 객체)

 

 

+ Recent posts