본문 바로가기
프로그래밍/AI

python 기초 문법

by slowin 2024. 11. 18.

개요

  1. 변수선언
  2. 기본 연산자
  3. 데이터 타입
  4. 함수
  5. 컨테이너
  6. 조건문, 반복문
  7. 내장함수, 외장함수
  8. 라이브러리 활용

1. 변수 선언

x = 3 # 변수명 = 값
  • 좌변: 변수명
  • 우변: 변수에 할당할 값
  • 메모리 공간에 x 라는 공간의 이름을 지정하고, 그 공간에 9라는 데이터를 넣는것

그렇다면, == 이건뭔가?

== 은 같느냐? 라고 물어보는것과 같다.

print( x == 9) # False 즉 9 와 같냐? 라고 물어보는것이다.

type 함수로 타입 확인

type(x) # 데이터 타입을 알 수 있다
# <class 'str'>

2. 기본 연산자

더하기, 빼기, 곱하기, 몫, 나머지, 제곱근

# 더하기 후 할당
x = x + 1
# 주의
# x + 1 은 x 에 1을 더한다는것이 아니다!

# 빼기
x = x - 1

# 몫
x = x / 2

# 나머지 
x = x % 2

# 제곱근
x =  x ** 2 

데이터 타입

부동 소숫점(Floating-point numbers)

y = 2.5
type(y) 
# float

# y (부동 소숫점을 숫자로 바꾸고 싶으면?)
int(y)
# 2 (정수형이니까 소숫점이하가 사라진다)

float(y)
# 2.0

문자열 (string)

s = "Hello" # 그룹형 변수

type(s)
# str

# 길이 반환
len(s)

# 대분자
s.upper()

# 소문자
s.lower()

# 포맷팅
print("My name is {} and my age is {}".format("Groot", 32))
sentence = "My name is {}"
sentence.format("Groot")

f-string

  • 3.6 버전부터 도입된 문자열 포매팅 방식
  • 문자열 앞에 'f' 또는 'F'를 붙이고, 중괄호 {} 안에 변수나 표현식을 넣어서 사용
이름 = "철수"
나이 = 20

# 기본적인 f-string 사용
print(f"안녕하세요, 제 이름은 {이름}이고 {나이}살입니다.")
# 출력: 안녕하세요, 제 이름은 철수이고 20살입니다.

# 표현식 사용
print(f"내년에는 {나이 + 1}살이 됩니다.")
# 출력: 내년에는 21살이 됩니다.

# 소수점 자릿수 지정
원주율 = 3.14159
print(f"원주율은 {원주율:.2f}입니다.")
# 출력: 원주율은 3.14입니다.

그룹형 타입 index 접근

temp = "Python"

temp[1]
temp[3]
temp[0]

# 범위 접근
temp[0:4] # 0 이상 4 미만

# "시작: " 두번째 인자가 없으면 마지막까지 return
temp[4:] # python

# 마지막부터 탐색은 -1
temp[-1]

4. 함수

정의

def 키워드를 사용

기본 구조

def 함수명(parameters...):
    ... # 함수스코프 영역은 탭으로 구분
    return ...

호출

dev add_nums(num1, num2):
    result = num1 + num2

    return result

# 호출
add_nums(1,2) # 3

Parameter 초기값 지정

def 함수명(num1, num2=10)

함수명(1) # 파라미터는 1 과 기본값은 10이 지정된다.

컨테이너

컨테이너란?

다른 변수들을 담을 수 있는 자료형

종류

  • list
    • 순서가 있음
    • 수정 가능 (mutable)
    • 표기: [1,2,3] 처럼 대괄호 표현
  • dict
    • 키-값 쌍 해시 테이블
    • 표기: {'key': 'value', ...} 컬렉션
  • tuple
    • 순서가 있음
    • 수정 불가능(immutable)
    • 표기: (1, 2, 3,..) 소괄호로 표현
  • set
    • 순소가 없음
    • ==중복을 혀용하지 않음==
    • 표기 {1, 2, 3} 중괄호 표현

코드 활용

# List 예시
numbers = [1, 2, 3, 4, 5]
numbers.append(6)        # 추가: [1, 2, 3, 4, 5, 6]
numbers[0] = 10         # 수정: [10, 2, 3, 4, 5, 6]
del numbers[1]          # 삭제: [10, 3, 4, 5, 6]

# Dictionary 예시
person = {
    "name": "김철수",
    "age": 25,
    "city": "서울"
}
person["job"] = "개발자"  # 추가
person["age"] = 26      # 수정
del person["city"]      # 삭제

# Tuple 예시 (수정 불가능)
coordinates = (10, 20)
nested_tuple = (1, (2, 3), "hello")
x, y = coordinates      # 언패킹
# coordinates[0] = 5    # 에러! 튜플은 수정 불가능

# Set 예시
fruits = {"사과", "바나나", "딸기"}
fruits.add("오렌지")      # 추가: {"사과", "바나나", "딸기", "오렌지"}
fruits.remove("바나나")   # 삭제: {"사과", "딸기", "오렌지"}
# 중복 제거 예시
numbers = [1, 2, 2, 3, 3, 3]
unique_numbers = set(numbers)  # {1, 2, 3}

조건문, 반복문

종류

  • if
  • for
  • while

if

def check_price(lunch_price):

    if lunch_price > 10000:
        price_label = "프리미엄 도시락"
    elif lunch_price < 1000: 
        price_label = "초저렴이 도시락"
    elif lunch_price < 3000: 
        price_label = "저렴이 도시락"
    else:
        price_label = "무난무난 도시락"

    return price_label

표현법

if {조건} :
    ...코드...
elif {조건}: # 추가 조건
    ...
else:
    ... # 이외 조건 모두

if 예시 코드

cage = ['Cat', 'Dog', 'Tiger']

if 'Cat' in cage:  # Key 유무 체크
    print('야옹아 이리온')

if 'Dog' in cage.keys(): # Key 유무 체크
    print('치와와는 언제와')

if 1:
    print('1 is True')

if [1]:
    print("T")

if []: # false 이다
    print("T")

for

기본구조

for something in 그룹형변수:
    ~~~ (something) ~~~

예시코드

nums = [1, 2, 3, 4, 5]

for number in nums:
    print(number)

# 출력
#1
#2
#3
#4
#5

cage = {'Cat': '야옹', 'Dog': '멍멍', 'Tiger': '어흥'}
for item in cage.items(): # values + keys = items
    print(item)

# ('Cat', '야옹')
# ('Dog', '멍멍')
# ('Tiger', '어흥')

range(0,5) 활용법

for index in range(5):
    print(index)

# 0
# 1
# 2
# 3
# 4

for i in range(0, 100, 10): # max | min max | min max step
    print(i)

while

기본 코드

temp = 1
while temp <= 10: # 10보다 크면 정지한다.
    print(temp)
    temp = temp + 1 # temp 를 1 증가시켜주려면?

내장함수, 외장함수

길이 함수 : len

len('python')
# 6

절대값 abs

abs(-1.2) # '절대값'의 앞 3글자
# 1.2

반올림 round

round(1.7) # 반올림
# 2

라이브러리 활용

%%writefile module_example.py

# @ module_example.py

def print_something() : 
    print('Hello world!')

def sum_nums(num1, num2) : 
    result = num1 + num2
    return result
import module_example # 모듈 import

module_example.print_something() # 모듈 함수 실행

외부 라이브러리

import numpy # import 라이브러리이름

a = numpy.array([1, 2, 3])
a
from numpy import array, ndarray # from 라이브러리이름 import 함수이름 [권장하지 않음]

pip 명령어 살펴보기

# cmd 에서 입력해 결과를 확인해보세요.

pip freeze 
pip freeze > requirements.txt # -> pip install -r requirements.txt
# (디렉토리 이름들로 표시될 경우) pip list --format=freeze

pip show numpy
pip uninstall numpy (주의)
pip install numpy==1.19.5 (주의)

pip download django 

각 pip 명령어의 역할을 설명해드리겠습니다:

  1. pip freeze
    • 현재 환경에 설치된 모든 파이썬 패키지와 그 버전을 보여줍니다
    • 출력 형식: 패키지명==버전
  2. pip freeze > requirements.txt
    • 설치된 패키지 목록을 requirements.txt 파일로 저장합니다
    • 프로젝트 환경을 다른 곳에서 재현할 때 사용
    • pip install -r requirements.txt 명령어로 이 파일에 명시된 모든 패키지를 한번에 설치할 수 있습니다
  3. pip list --format=freeze
    • pip freeze와 비슷하지만, 디렉토리 형태로 표시될 때 패키지명==버전 형식으로 강제로 보여줍니다
    • 더 깔끔한 출력을 원할 때 사용
  4. pip show numpy
    • numpy 패키지의 상세 정보를 보여줍니다
    • 버전, 설치 위치, 의존성 등의 정보 확인 가능
  5. pip uninstall numpy
    • numpy 패키지를 제거합니다
    • 주의: 다른 패키지가 이 패키지에 의존하고 있을 수 있습니다
  6. pip install numpy==1.19.5
    • numpy의 특정 버전(1.19.5)을 설치합니다
    • 주의: 버전 호환성 문제가 발생할 수 있습니다
  7. pip download django
    • django 패키지 파일을 현재 디렉토리에 다운로드만 하고 설치는 하지 않습니다
    • 오프라인 설치를 위해 패키지 파일만 받을 때 사용

colab

회고

  • 파이썬 변수 선언부터 데이터 자료형에 대해 알아봤다.
  • 함수 선언에 대해 알아보았다.
  • if, while 등 자주 사용하는 함수에 대해 알아보았다.
  • 패키지 import 방법과 설치방법을 알아보았다.
    • requirements 관리 커맨드
  • colab에 대해 간단하게 알아 보았다.

'프로그래밍 > AI' 카테고리의 다른 글

아나콘다란?  (1) 2024.11.22
서울시 범죄현황 통계자료 분석 및 시각화  (0) 2024.11.19
Pandas 기본 문법  (1) 2024.11.19
머신러닝을 위한 데이터 - 종류, 수집, 활용  (2) 2024.11.19
마인드셋  (0) 2024.11.16