1. 파이썬은 뭐다!? 프로그래밍 언어
프로그래밍 언어: 컴퓨터와 대화
목적
2개의 숫자 (0,1)로 모든 것을 표현
1이 2^0하고 2를 표현 가능 => 컴퓨터 언어는 0,1로 구성
소수를 정확하게 표현 불가능
Python 특징
지금 언어 (ex: Python)은 사람 언어랑 비슷
옜날 언어는 기계랑 비슷



2. 파이떤을 실행하기 위한 기초 준비, IDE
프로그래밍을 더 편하게 할 수 있도록 도와주는 소프트웨어
여러 도구를 하나로 통합해서 제공
코드 작성: 자동 완성, 구문 강조 등 편리한 기능 제공
디버깅: 코드를 실행하면서 오류를 찾아내고 수정
컴파일 및 실행: 코드를 작성하고 바로 실행
A cell is an area on a spreadsheet where data can be entered.
Markdown is a syntax---or, set of rules---that formats text on web pages.

요약:
초보자: VSCode
전문 Python 개발자: PyCharm
Data Science, Analysis: Jupyter Notebook
3. Python Helloworld 다양하게 실행하기
Python Interpreterr 선택해서 설치
Jupyter launch
Notebook, Python, choose the latest version
print("Hello, World")
PyCharm: project 생성 후 Run으로 실행
VS Code: file 저장 후 터미널에서 Python 명령어 실행
Jupyter Notebook: web interface에서 cell 실행
4. 데이터 저장의 기본: 변수의 선언과 할당
변수: data를 저장시키기 위해 사용되는 이름을 붙인 공간
변수를 선언할 때 별도의 키위드 알고 사용하고 싶은 이름 선호
[13] : name = "배형호"
(13번째 줄에서 실행)
[14] : name -> 배형호
Jupyter Notebook: 변수의 이름만 넣고 실행하면 바로 값 보여줌
다른 IDE: 이런 기능 없다
왼쪽에 변수에 값을 할당할 때는 = 기호를 사용 (저장한 값은 오른쪽에)
변수: 값을 바꿀 수 있다
greeting = "Hello, World!"
print(greeting) -> Hello, World!
Important: 연산자는 수학의 등호랑 다름
컴퓨터: =는 같다라는 의미가 아니라 할당하다
c=40
print(c)
c="김덕수"
print(c)
=> 40
김덕수
변수: memory에 data 저장
변수를 선언하면 memory에서 공간을 확보하고, 값을 저장
재할당: 한번 선언한 변수는 다른 값으로 재할당 가능
변수 이름 규칙
좋은 변수 이름 짓기
의미를 명확하게 전달해야됨
ex) x=10 -> 의미를 알기 어려움
user_age = 10
여러 변수에 한번에 값 할당하기
여러 변수에 동시에 값을 할당 가능
a, b, c = 1,2,3
a=1
b=2
c=3
같은 값 할당하기
여러 변수에 동일한 값을 할당 가능
x=y=z=100
변수에 활용 예제
간단한 프로그램 예제
name = input ("이름을 입력하세요")
input = 사랍한테 키보드로 값을 입력 명령
이름을 입력하세요: 베란다 <- 컴퓨터가 출력하고
베란다 <- 입력한 값이 보임
변수와 메모리 관리
변수는 메모리에 저장됨
ex) a = 2^123456
b = 3.14
a/b
Overflow Error (굉장히 큰 소수자리를 만들었음 -> data overflow -> problem with memory (data storage))
변수의 범위 (Scope)
변수는 어디에서 선언되었는지에 따라 접근할 수 있는 범위가 달라짐 = scope
크게 2가지로 나눔
1) 전역 변수 (Global Variable):
프로그램 전체에서 접근할 수 있는 변수
많은게 좋지 않음
2) 지역 변수 (Local Variable):
특정 코드 블록이나 함수 대에서만 접근할 수 있는 변수
요약
변수? 데이터를 저장하는 공간
변수 선언과 할당: = 기호를 사용하여 변수를 선언하고 값을 할당
변수 이름 규칙: 의미를 알기 쉽게, 규칙에 맞게 이름을 짓기
메모리 관리: 변수는 메모리에서 데이터 저장
변수의 Scope에 따라 접근 범위가 달라짐
1-5 다양한 연산자 알아보기
산술 연산자 (Arithmetic Operators)
기본적인 수학 연산을 수행하는데 사용

a%2 = 0 = 짝수, b%2 = 1= 홀수
비교 연산자 (Comparison Operators)
두 값을 비교하여 True/False을 반환

논리 연산자 (Logical Operators)
논리값 (True, False)을 결합하여 새로운 논리값 반환

a = True
b = False
print(a and b) # False
print(a or b) # True
print(not a) # False
대입 연산자 (Assignment Operators)
대입 연산자는 변수에 값을 할당할 때에 사용
기본적인 = 외에도 여러 복합 대입 연산자 있음

ex) x=10
x=x+10 (많이 사용됨: 복합 대입 연산자)
x=20
x+=10
x=30
프로그래밍 언어에서 이연산자는 대입 연산자여서 x를 불러오고 그 값에 10을 넣어준 다음 다시 x에 넣어주라는 의미
비트 연산자 (Bitwise Operators) => 제일 이해 못한 부분
비트 연산자는 이진수 (bit, smallest unit of digital data = 0,1) 수준에서 연산 수행
숫자를 이진수로 바꾼 후 연산을 각각의 자리수에 진행하는 것

Bit and:
b = 1 # 01 (1로 표시)
c = 3 # 11 (11로 표시)
b&c => 011
0과 1을 &연산하면 값이 0
1과 1을 비트 연산하면 값이 1이 됩니다
Bit에 따라서 값 계산
Shift: 한칸 옆으로 옮김
Membership Operators
Membership Operators는 특정 값이 Sequence (문자열, 리스트, Tuple 등)에 속해 있는지 확인

Identity Operators
두 변수가 동일한 객체인지 살펴봄

a = ["a", "b", "c"]
"a" in a -> True
요약
6. 데이터 타입 알아보기: 숫자형, 문자형, 불리언
Data type
data 종류: 숫자/문자/논리값 구분 중요
Data type을 알아야 해당 data에 적합한 연산이나 처리 가능
숫자
정수형 (integer, ex: 10, 5, -5)
실수형 (float 소숫점을 포함한 숫자, ex: 3.5)
복소수형 (complex number, not important for this course)
a=10
e="배형호"
d=-3.14
c=3.14
a+e=TypeError (정수랑 문자열: 연산 불가)
a+d=6.8599 (소수점에 대한 오차: 결과가 다름, 오차)
a+c=13.14 (정상적으로 더해짐)
10/2 = 5 기대하지만 5.0이 나옴
연산자에 따라 결과에 data type이 정해져 있는 경우가 있음
문자형 (String Type)
String: 문자, 단어, 문장을 저장하는 data type
'' + ""을 사용하여 표현 (띄어쓰기 포함가능)
(ex: name = 'Alice Bob'
= 'Alice
Bob' (줄을 바꿔도 결과 나옴)
여러 줄 문자열
여러 줄에 걸쳐 text를 사용할려면 ''' '''/""" """ 를 사용 (ex: '''Alice''')
문자열 연결과 반복
연결 (concatenation) = + 연산자로 문자열 연결
name = 'Alice'
name_2= 'Bob'
name + name_2= 'Alice Bob'
반복 (Replication): 연산자로 문자열 반복
name 3 = AliceAliceAlice
name_3 = "Ali"ce" -> SyntaxError
문자열 인덱싱과 슬라이싱
문자열은 인덱스를 통해 개별 문자에 접근할 수 있으며, 슬라이싱을 통해 부분 문자열 추출 가능
text = "Python"
print (text[0]) = P
print (text[1:4]) = yth
Jupyter Notebook은 어떤 블럭을 실행할지를 본인이 선택해서 위에 있는 코드를 따로 실행 가능
위에 수정한 정보가 있으면 아래에도 영향을 미친다
Boolean
True/False를 나타내는 data type
조건문에서 사용
True + False : 2가지 값만 가질 수 있음
Boolean 연산
Boolean type은 논리연산자(and, or, not)와 함께 사용
ex) a = True
b= False
print (a and b) = False
print (a or b) = True
print (not a) = False
True 값은 1로 취급
False 값은 0으로 취급
a = True #1
b= False #0
비교 연산자 (==, !=, >, <)를 사용한 결과는 불리언 값으로 반환
요약
Data type? data 종류 나타내기
숫자형: 정수(integer), 실수(float), 복소수(complex)
문자형: text data를 다루는 data type
불리언: True/False를 다루는 data type