느리지만 꾸준히, 코딩

python 기초 문법 본문

프로그래밍/AI

python 기초 문법

slowin 2024. 11. 18. 20:00

개요

  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
머신러닝을 위한 데이터 - 종류, 수집, 활용  (3) 2024.11.19
마인드셋  (0) 2024.11.16