본문 바로가기
sbs 아카데미 학원 수업/파이썬 수업 메모 (SBS 아카데미 학원)

파이썬 수업 1일차 - 2 변수와 자료형 (Sbs아카데미)

by demianpark127 2024. 11. 16.
SMALL

 

파이썬 수업
Gpt 메모 내용입니다.
 
 
 
변수와 자료형
 
목차
 
1. 변수
2. 숫자형
3. 불 자료형
4. 문자열
 
 
나의 말 : 변수, 램(Random Access Memory , 메모리에 대하여
 

ChatGPT의 말:

변수(Variable)란?

변수는 컴퓨터 프로그램에서 데이터를 저장하기 위해 사용되는 공간 또는 그 공간에 붙여진 이름입니다. 변수를 통해 데이터를 쉽게 관리하고, 연산하거나 참조할 수 있습니다.

변수의 특징

  1. 값을 저장: 변수는 데이터를 저장하는 컨테이너 역할을 합니다.
    • 예: 숫자, 문자열, 리스트 등.
    • Python에서의 변수 예시:
      python
      코드 복사
      x = 10 # 정수형 변수 name = "Alice" # 문자열 변수 numbers = [1, 2, 3] # 리스트 변수
  2. 값을 변경 가능:
    • 변수를 선언한 후 저장된 값을 언제든지 바꿀 수 있습니다.
      python
      코드 복사
      x = 10 x = 20 # 변수 x에 새로운 값 저장
  3. 메모리 위치:
    • 변수는 메모리(RAM) 상의 특정 위치에 값을 저장하며, 변수명은 이 메모리 위치를 가리킵니다.
    • id() 함수로 변수의 메모리 주소를 확인할 수 있습니다:
      python
      코드 복사
      print(id(x)) # 변수 x의 메모리 주소 출력

RAM(Random Access Memory, 메모리)란?

RAM은 컴퓨터의 데이터를 일시적으로 저장하는 하드웨어 장치로, CPU가 작업을 수행할 때 필요한 데이터를 빠르게 읽고 쓸 수 있도록 지원합니다.

RAM의 주요 특징

  1. 휘발성 메모리:
    • RAM은 전원이 꺼지면 저장된 데이터가 모두 삭제됩니다.
    • 데이터를 영구적으로 저장하는 하드디스크(HDD)나 SSD와 다릅니다.
  2. 빠른 속도:
    • RAM은 데이터를 랜덤 액세스(Random Access) 방식으로 읽고 쓸 수 있어, 속도가 매우 빠릅니다.
    • CPU와 직접 연결되어 연산 작업에서 중요한 역할을 합니다.
  3. 일시적 저장:
    • 프로그램 실행 중 필요한 데이터를 임시로 저장합니다.
    • 예: 실행 중인 프로그램, 웹 브라우저 탭, 동영상 재생 데이터.
  4. 작업 공간 역할:
    • RAM은 데이터를 처리하고 결과를 저장하기 위한 작업 공간을 제공합니다.
    • RAM 용량이 부족하면 시스템 성능이 저하될 수 있습니다.

변수와 RAM의 관계

  1. 변수 저장소:
    • 변수를 선언하면, 변수는 RAM의 특정 위치에 저장됩니다.
    • 예를 들어, x = 10을 실행하면 숫자 10은 RAM에 저장되고, 변수 x는 이 데이터를 참조합니다.
  2. RAM을 활용한 데이터 처리:
    • 변수에 저장된 값은 CPU가 연산 작업을 수행할 때 RAM에서 불러옵니다.
    • RAM 속 데이터는 빠르게 접근 가능하므로, 프로그램 실행 속도에 영향을 미칩니다.
  3. 메모리 관리:
    • Python 등 고수준 언어는 **가비지 컬렉터(Garbage Collector)**를 사용해 더 이상 사용하지 않는 변수를 자동으로 삭제하여 RAM을 관리합니다.

RAM의 종류

  1. SRAM(Static RAM):
    • 빠르지만 가격이 비싸고 용량이 작음.
    • 주로 CPU 캐시에 사용.
  2. DRAM(Dynamic RAM):
    • 가격이 저렴하고 대용량 지원 가능.
    • 대부분의 컴퓨터와 스마트폰에서 사용.

RAM의 용량과 성능

  • RAM 용량:
    • 용량이 클수록 한 번에 더 많은 데이터를 저장하고 처리 가능.
    • 예: 8GB RAM은 4GB RAM보다 많은 프로그램을 동시에 실행 가능.
  • RAM 속도:
    • RAM의 클럭 속도가 빠를수록 데이터 읽기/쓰기 속도가 증가.
    • 예: DDR4 > DDR3.

RAM 부족의 영향

  1. 프로그램이 느려짐.
  2. 운영 체제가 하드디스크나 SSD의 일부를 가상 메모리로 사용.
  3. 가상 메모리는 속도가 느리므로 전체 시스템 성능이 저하됨.

정리

  • 변수는 데이터를 RAM에 저장하고 CPU가 처리할 수 있도록 연결하는 역할.
  • RAM은 프로그램 실행에 필수적인 임시 데이터 저장 공간으로, 시스템 속도와 효율에 큰 영향을 미칩니다.
  • 변수와 RAM의 적절한 관리가 프로그램의 성능을 최적화하는 데 중요합니다. 😊

 

 

실습

 

https://colab.research.google.com/?hl=ko#scrollTo=EERb8Y6X1_SM

 

Google Colab

 

colab.research.google.com

 

 

파일 - 새 노트북 열기 후

파일 - 이름 바꾸기

 

작성 후 왼쪽 '▷' 모양 실행버튼 클릭
실행결과
\n (역슬래시 n) 은 줄바꿈

 

 

-----------------

 
나의 말 : 파이썬 숫자형
 

ChatGPT의 말:

파이썬의 숫자형(Numeric Types)

파이썬에서 숫자형은 수를 표현하고 연산하는 데 사용되는 데이터 유형입니다. 숫자형에는 정수(int), 실수(float), 복소수(complex) 세 가지 주요 타입이 있습니다.


1. 정수형(Integer, int)

  • **정수(음수, 0, 양수)**를 표현하는 자료형.
  • 메모리 크기에 제한이 없어서, 매우 큰 숫자도 처리 가능합니다.

특징

  • 소수점이 없는 숫자.
  • 진수 표기 가능 (2진수, 8진수, 16진수 등).

예제

python
코드 복사
a = 10 # 양의 정수 b = -5 # 음의 정수 c = 0 # 0도 정수 # 진수 표현 binary = 0b1010 # 2진수 octal = 0o12 # 8진수 hexadecimal = 0xA # 16진수 print(binary, octal, hexadecimal) # 출력: 10 10 10

2. 실수형(Floating-Point, float)

  • 소수점이 있는 숫자를 표현.
  • 부동소수점(64비트)을 사용하여 정밀도는 제한적입니다.

특징

  • 소수점 포함 숫자.
  • 지수형 표기법(Exponential Notation)을 사용할 수 있음.

예제

python
코드 복사
x = 3.14 # 실수 y = -0.5 # 음의 실수 z = 1.0 # 정수처럼 보이지만 실수 # 지수 표기법 large_number = 1.2e3 # 1.2 x 10^3 -> 1200.0 small_number = 4.5e-2 # 4.5 x 10^-2 -> 0.045 print(x, y, z, large_number, small_number)

3. 복소수형(Complex Numbers, complex)

  • 복소수는 실수부(real)와 허수부(imaginary)를 가지는 숫자.
  • 허수부는 j로 표현 (i가 아닌 j 사용).

특징

  • 형식: a + bj (a: 실수부, b: 허수부).
  • 내장 속성 .real과 .imag로 실수부와 허수부에 접근 가능.

예제

python
코드 복사
c = 2 + 3j # 복소수 d = -1j # 허수만 있는 복소수 print(c.real) # 실수부: 2.0 print(c.imag) # 허수부: 3.0

숫자형의 주요 연산

숫자형은 다양한 연산을 지원합니다.

산술 연산

연산자설명예제
+ 덧셈 5 + 3 -> 8
- 뺄셈 5 - 3 -> 2
* 곱셈 5 * 3 -> 15
/ 나눗셈 (실수 결과) 5 / 2 -> 2.5
// 5 // 2 -> 2
% 나머지 5 % 2 -> 1
** 거듭제곱 2 ** 3 -> 8
python
코드 복사
a = 10 b = 3 print(a + b) # 13 print(a - b) # 7 print(a * b) # 30 print(a / b) # 3.3333... print(a // b) # 3 print(a % b) # 1 print(a ** b) # 1000 (10^3)

수학 함수 (내장 함수)

함수설명예제
abs(x) 절댓값 abs(-5) -> 5
pow(x, y) 거듭제곱 (x ** y와 동일) pow(2, 3) -> 8
round(x, n) 반올림 (n은 소수점 자리수) round(3.1415, 2) -> 3.14
divmod(x, y) 몫과 나머지를 튜플로 반환 divmod(7, 3) -> (2, 1)
max() 최댓값 반환 max(1, 2, 3) -> 3
min() 최솟값 반환 min(1, 2, 3) -> 1

숫자형 변환

다른 데이터 타입을 숫자형으로 변환할 수 있습니다.

함수설명예제
int() 정수형으로 변환 int(3.14) -> 3
float() 실수형으로 변환 float(3) -> 3.0
complex() 복소수형으로 변환 complex(2) -> (2+0j)
python
코드 복사
# 예제 print(int(3.7)) # 3 print(float(5)) # 5.0 print(complex(4, 5)) # 4+5j

정리

  • 파이썬의 숫자형은 정수(int), 실수(float), **복소수(complex)**로 나뉩니다.
  • 다양한 연산자와 내장 함수로 숫자형 데이터를 쉽게 처리할 수 있습니다.
  • 필요시 int(), float(), complex()를 사용해 타입 변환이 가능합니다.

숫자형을 잘 활용하면 데이터 분석, 수학 계산, 알고리즘 구현에 강력한 도구가 됩니다! 😊

 

 

------------

 

나의 말 : 파이썬 불 자료형
 

ChatGPT의 말:

파이썬의 불(bool) 자료형

파이썬의 불(bool) 자료형은 논리값인 True(참)와 False(거짓)를 나타내는 데이터 타입입니다. 이는 조건문이나 논리 연산에서 주로 사용됩니다.


불(bool) 자료형의 특징

  1. True와 False:
    • 불 자료형의 값은 True 또는 False 두 가지뿐입니다.
    • 첫 글자는 항상 대문자(T, F)로 표기해야 합니다.
    • 예:
      python
      코드 복사
      a = True b = False
  2. 숫자와의 관계:
    • True는 숫자 1과 같고, False는 숫자 0과 같습니다.
    • 예:
      python
      코드 복사
      print(True == 1) # True print(False == 0) # True print(True + True) # 2 (1 + 1)
  3. 조건식에서 자동 생성:
    • 조건문의 결과는 자동으로 True 또는 False로 반환됩니다.
    • 예:
      python
      코드 복사
      print(10 > 5) # True print(10 < 5) # False

불 자료형 생성 방법

  1. 직접 할당:
  2. python
    코드 복사
    is_python_fun = True is_raining = False
  3. 비교 연산의 결과:
  4. python
    코드 복사
    print(3 > 1) # True print(3 == 5) # False
  5. bool() 함수 사용:
    • bool() 함수는 값을 불 자료형으로 변환합니다.
    • 값이 참이면 True, 거짓이면 False를 반환합니다.
    • 예:
      python
      코드 복사
      print(bool(1)) # True print(bool(0)) # False print(bool("Hello")) # True print(bool("")) # False

불 자료형의 주요 활용

  1. 조건문
    • 불 자료형은 조건문에서 핵심적으로 사용됩니다.
    python
    코드 복사
    if True: print("참입니다.") # 출력됨 if False: print("거짓입니다.") # 출력되지 않음
  2. 반복문
    • 반복문에서도 조건에 따라 실행 여부를 결정합니다.
    python
    코드 복사
    while False: print("실행되지 않음")
  3. 논리 연산
    • 논리 연산자(and, or, not)를 사용하여 복잡한 조건을 표현합니다.
      python
      코드 복사
      a = True b = False print(a and b) # False print(a or b) # True print(not a) # False

참과 거짓의 기준

파이썬에서는 다음과 같은 값이 **거짓(False)**으로 간주됩니다:

  • 숫자: 0, 0.0
  • 빈 값: ""(빈 문자열), [](빈 리스트), {}(빈 딕셔너리), set()
  • None

그 외의 값은 모두 **참(True)**으로 간주됩니다.

예제

python
코드 복사
print(bool(0)) # False print(bool("")) # False print(bool([])) # False print(bool(None)) # False print(bool(42)) # True print(bool("Python")) # True print(bool([1, 2, 3])) # True

불 자료형의 연산자

  1. 비교 연산자
    • 두 값을 비교하여 True 또는 False를 반환합니다.
    • 예:
      python
      코드 복사
      print(10 > 5) # True print(10 == 5) # False print(10 != 5) # True
  2. 논리 연산자
    • 조건을 결합하여 논리 결과를 반환합니다.
    • 예:
      python
      코드 복사
      print(True and False) # False print(True or False) # True print(not True) # False
  3. 멤버십 연산자
    • 값이 특정 데이터에 포함되어 있는지 확인.
    • 예:
      python
      코드 복사
      print("a" in "apple") # True print(5 in [1, 2, 3]) # False

정리

  • 불 자료형은 True와 False 값을 표현합니다.
  • 조건문, 반복문, 논리 연산 등에서 핵심적으로 사용됩니다.
  • bool() 함수로 값을 불 자료형으로 변환할 수 있으며, 특정 값(0, 빈 값 등)은 False로 간주됩니다.

불 자료형은 프로그래밍 논리의 기본이며, 모든 조건 처리의 기반이 됩니다! 😊

 

 

나의 말 : 파이썬 문자열
 

ChatGPT의 말:

파이썬 문자열(String)

파이썬의 **문자열(String)**은 문자들의 집합으로, 텍스트 데이터를 다루기 위한 데이터 타입입니다. 문자열은 작은따옴표(') 또는 큰따옴표(")로 묶어서 표현합니다.


1. 문자열 생성

기본적인 생성

python
코드 복사
# 작은따옴표 또는 큰따옴표로 생성 string1 = 'Hello' string2 = "Python" print(string1, string2)

여러 줄 문자열

  • 문자열이 여러 줄일 경우, 삼중 따옴표(''' 또는 """)를 사용합니다.
python
코드 복사
multi_line_string = '''이 문자열은 여러 줄에 걸쳐 작성되었습니다.''' print(multi_line_string)

2. 문자열 인덱싱과 슬라이싱

문자열 인덱싱

  • 문자열의 각 문자에 대해 0부터 시작하는 인덱스를 사용해 접근할 수 있습니다.
  • 음수 인덱스는 뒤에서부터 접근합니다.
python
코드 복사
string = "Python" print(string[0]) # P print(string[-1]) # n

문자열 슬라이싱

  • 문자열의 일부를 추출할 때 사용합니다.
    형식: 문자열[시작:끝:스텝]
python
코드 복사
string = "Python" print(string[0:3]) # Pyt (0부터 3 전까지) print(string[:4]) # Pyth (처음부터 4 전까지) print(string[2:]) # thon (2부터 끝까지) print(string[::2]) # Pto (0부터 끝까지 2씩 건너뜀)

3. 문자열 연산

문자열 연결

  • 문자열은 + 연산자를 사용해 연결할 수 있습니다.
python
코드 복사
a = "Hello" b = "World" print(a + " " + b) # Hello World

문자열 반복

  • 문자열은 * 연산자를 사용해 반복할 수 있습니다.
python
코드 복사
print("Python" * 3) # PythonPythonPython

4. 문자열 함수와 메서드

기본 문자열 메서드

메서드설명예제
len() 문자열 길이 반환 len("Python") -> 6
upper() 문자열을 대문자로 변환 "python".upper() -> "PYTHON"
lower() 문자열을 소문자로 변환 "PYTHON".lower() -> "python"
strip() 양쪽 공백 제거 " hello ".strip() -> "hello"
replace(a, b) 문자열 a를 b로 대체 "hello".replace("h", "H") -> "Hello"
split() 문자열을 특정 구분자로 분리 "a,b,c".split(",") -> ['a', 'b', 'c']
join() 리스트를 문자열로 연결 ",".join(['a', 'b', 'c']) -> "a,b,c"
find() 특정 문자열의 첫 번째 위치 반환 "hello".find("l") -> 2
count() 특정 문자의 개수 반환 "hello".count("l") -> 2
startswith() 특정 문자열로 시작하는지 확인 "hello".startswith("he") -> True
endswith() 특정 문자열로 끝나는지 확인 "hello".endswith("lo") -> True

5. 문자열 서식 지정

f-string을 사용한 서식

  • Python 3.6 이상에서 사용 가능한 문자열 포매팅 방식.
  • 중괄호 {} 안에 변수를 삽입하여 문자열을 작성.
python
코드 복사
name = "Alice" age = 25 print(f"My name is {name} and I am {age} years old.")

format() 메서드

  • format()을 사용해 값을 삽입.
python
코드 복사
print("My name is {} and I am {} years old.".format("Alice", 25))

% 연산자

  • 오래된 방식이지만 여전히 사용 가능.
python
코드 복사
name = "Alice" print("Hello, %s!" % name) # Hello, Alice!

6. 문자열의 불변성

파이썬에서 문자열은 **불변 객체(Immutable Object)**입니다. 즉, 문자열이 생성되면 수정할 수 없습니다. 새로운 문자열을 생성해야 합니다.

python
코드 복사
string = "Hello" string[0] = "h" # 오류 발생: TypeError string = "hello" # 새로운 문자열 할당

7. 문자열과 인코딩

문자열 인코딩

  • 문자열을 특정 인코딩 방식으로 바이트 형태로 변환.
python
코드 복사
text = "파이썬" encoded = text.encode("utf-8") print(encoded) # b'\xed\x8c\x8c\xec\x9d\xb4\xec\x8d\xac'

문자열 디코딩

  • 바이트 데이터를 문자열로 변환.
python
코드 복사
decoded = encoded.decode("utf-8") print(decoded) # 파이썬

정리

  • **문자열(String)**은 텍스트 데이터를 처리하기 위한 기본 자료형입니다.
  • 인덱싱과 슬라이싱을 통해 부분 문자열에 접근 가능.
  • 다양한 메서드포매팅 방식을 통해 문자열 조작 가능.
  • 문자열은 불변 객체로 수정이 불가능하며, 새로운 문자열을 생성해야 합니다.

문자열은 데이터 조작출력에 필수적인 요소로, 프로그래밍에서 가장 자주 사용하는 자료형 중 하나입니다! 😊

 

LIST