인공지능을 위한 파이썬 1주차

황세현 (Spring_4기)·2024년 11월 25일

1. 파이썬은 뭐다!? 프로그래밍 언어

프로그래밍 언어: 컴퓨터와 대화

목적

  1. 명령어 전달
  2. 논리 (조건, 반복) 표현
  3. 데이터 (숫자) 처리

2개의 숫자 (0,1)로 모든 것을 표현
1이 2^0하고 2를 표현 가능 => 컴퓨터 언어는 0,1로 구성
소수를 정확하게 표현 불가능

Python 특징

지금 언어 (ex: Python)은 사람 언어랑 비슷
옜날 언어는 기계랑 비슷

2. 파이떤을 실행하기 위한 기초 준비, IDE

프로그래밍을 더 편하게 할 수 있도록 도와주는 소프트웨어
여러 도구를 하나로 통합해서 제공

  1. 코드 작성: 자동 완성, 구문 강조 등 편리한 기능 제공

  2. 디버깅: 코드를 실행하면서 오류를 찾아내고 수정

  3. 컴파일 및 실행: 코드를 작성하고 바로 실행

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에서 공간을 확보하고, 값을 저장
재할당: 한번 선언한 변수는 다른 값으로 재할당 가능

변수 이름 규칙

  1. 문자 (A-Z, a-z), 숫자(0-9), 밑줄 _ 만 사용할 수 있다
  2. 숫자로 시작 불가능 -> SyntaxError
    ex) 1st_place (X) first_place (O)
  3. 대소문자를 구분
    ex) age, Age, AGE: 모두 다른 변수로 인식
  4. Python의 예약어는 변수로 사용 불가능
    ex) for, if, class

좋은 변수 이름 짓기

의미를 명확하게 전달해야됨
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

요약

  • 산술 연산자: 기본적인 수학 연산 (+,/(나누기)등)
  • 비교 연산자: 두 값을 비교 (==, !=, >, < 등)
  • 논리 연산자: 논리 값 결합 (and, or, not)
  • 대입 연산자: 비트 단위 연산 (&, |, ^, ~ 등)
  • 멤버십 연산자: 값이 sequence에 속하는지 확인 (in, not in)
  • 식별 연산자: 객체의 동일성을 확인 (is, is not)

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

profile
"If you can't explain it simply, you don't understand it well enough." ~ Albert Einstein

0개의 댓글