Python 3

LuuuuucyΒ·2024λ…„ 10μ›” 29일

Python Programming study review

λͺ©λ‘ 보기
1/1

πŸ”– REVIEW

❗ μ„ μƒλ‹˜μ˜ 말씀

  1. DBλŠ” 속도가 생λͺ…이닀
  2. sqliteλŠ” νŠœλ‹μ΄ ν•„μˆ˜λ‹€

❗ Python

1. dict, set은 이미 μ •λ ¬λœ μƒνƒœμ΄λ―€λ‘œ sorted()κ°€ μ•ˆλ¨

-> v3.7.0 릴리즈 λ…ΈνŠΈ 확인 ν•„μš”

2. sqlite connection

def create_db():
    conn = sqlite3.connect('data/weather.sqlite3') 
    # 파일이 μ—†μœΌλ©΄ λ§Œλ“€μ–΄μ€Œ -> 있으면 connection 맺음 
    cur = conn.cursor()
    # 데이터λ₯Ό λ‹€λ£° 수 μžˆλŠ” μ»€μ„œλ₯Ό 생성

    query = '' 
    cur.execute(query) # 쿼리λ₯Ό 디비에닀가 던짐

    conn.commit() # 디비에닀가 반영
    conn.close() # λ‹€ μ‚¬μš©ν–ˆμœΌλ©΄ λ°˜λ“œμ‹œ λ‹«μ•„μ•Ό 함

3. create table

def create_db():
    conn = sqlite3.connect('data/weather.sqlite3') 
    # 파일이 μ—†μœΌλ©΄ λ§Œλ“€μ–΄μ€Œ -> 있으면 connection 맺음
    cur = conn.cursor()
    # 데이터λ₯Ό λ‹€λ£° 수 μžˆλŠ” μ»€μ„œλ₯Ό 생성

    query = 'CREATE TABLE weather (prov TEXT, city TEXT, mode TEXT, tmEf TEXT, wf TEXT, tmn TEXT, tmx TEXT, rnSt TEXT)'
    cur.execute(query)

    conn.commit()
    conn.close()

4. insert rows

def insert_row(row):
    conn = sqlite3.connect('data/weather.sqlite3')
    cur = conn.cursor()

    base = 'INSERT INTO weather VALUES("{}","{}","{}","{}","{}","{}","{}","{}")'
    query = base.format(row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7])
    cur.execute(query)

    conn.commit()
    conn.close()
    
rows = weather_csv_read()

for row in rows:
    insert_row(row)

-> 이건 μ•ˆμ’‹μ€ μ½”λ“œμž„
μ΄μœ λŠ” for문을 ν•¨μˆ˜μ— μœ„μΉ˜μ‹œν‚€μ§€ μ•Šμ•„μ„œ, connect()와 close()λ₯Ό 반볡 μˆ˜ν–‰ν•¨
insert_row()에 λ„ˆλ¬΄ λ§Žμ€ μ‹œκ°„μ„ 할애함

🎈 λ³€κ²½μ½”λ“œ

5. select rows

def fetch_all():
    conn = sqlite3.connect('data/weather.sqlite3')
    cur = conn.cursor()

    query = 'SELECT * FROM weather'
    for row in cur.execute(query):
        print(row)

    conn.commit()
    conn.close()

6. slicing

a = [1, 3, 5, 7, 9, 0, 2, 4, 6, 8]
print(a) # [1, 3, 5, 7, 9, 0, 2, 4, 6, 8]
print(a[0], a[9], a[len(a)-1], a[-1]) # 1 8 8 8

print(a[0:5]) # [1, 3, 5, 7, 9]
print(a[::2]) # [1, 5, 9, 2, 6]
print(a[1::2]) # [3, 7, 0, 4, 8]
print(a[::-1]) # λ°˜λ“œμ‹œ κΈ°μ–΅ [8, 6, 4, 2, 0, 9, 7, 5, 3, 1]

7. numpy μžλ£Œν˜•?

import numpy as np
# np λΌλŠ” 별λͺ…을 κ°€μ§€κ³  있음

a = np.arange(2,10,2)
print(a) # [2 4 6 8] list μ•„λ‹˜ !!!!! 
print(type(a)) 

a의 좜λ ₯값은 [2 4 6 8] λ¦¬μŠ€νŠΈμ™€ μœ μ‚¬ν•˜μ§€λ§Œ,
,κ°€ μ—†λ‹€λŠ” μ μ—μ„œ λ¦¬μŠ€νŠΈκ°€ μ•„λ‹ˆλ‹€.
μžλ£Œν˜•μ€ numpy.ndarray 즉, 닀차원배열이닀.

8. μ€‘μš”ν•œ numpy의 ν•¨μˆ˜λ“€

print(a.shape, a.size, a.ndim, a.dtype) 
# shape와 dtype이 μ€‘μš”ν•¨ (10,) 10 1 int64

shape: (10,) νŠœν”Œ ν˜•μ‹μœΌλ‘œ 보여짐, 차원에 맞좰 좜λ ₯
size: 크기 (=len(a))
ndim: μ°¨μ›μ˜ 개수
dtype: 8byte

9. exception

a = 3
b = 7//a
print(a, b)

try:
    a = 0
    b = 7 // a
    print(b)
except ZeroDivisionError:
    print('μ˜ˆμ™Έ 처리')
except:
    print('μ•Œ 수 μ—†λŠ” μ˜ˆμ™Έ')

μ–΄λ–€ μ—λŸ¬κ°€ λ‚¬λŠ”μ§€ 좜λ ₯해보고, ν•΄λ‹Ή μ—λŸ¬μ— λŒ€ν•˜μ—¬ exception 처리λ₯Ό ν•˜λŠ” 편이 μ’‹λ‹€
-> μ˜ˆμƒν•  수 μžˆλŠ” μ—λŸ¬

10. class

class Info:
    # name = 'kim' # μ „μ—­λ³€μˆ˜

    def __init__(self, alias):
        print("μƒμ„±μž")
        self.name = alias # μœ μΌν•œ λ©€λ²„λ³€μˆ˜

    def show(self):
        print("show 호좜", self.name)


info = Info('han')
info.age=30 # 클래슀λ₯Ό ν™•μž₯ν•  수 μžˆλŠ” κΈ°λŠ₯ -> 고수만 μ‚¬μš©
print(info.age)
print(info.name)
# λ©€λ²„λ³€μˆ˜μ²˜λŸΌ 보인닀

info2 = Info('nam')
print(info2.name)

# ν€΄μ¦ˆ
# show ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ„Έμš” (2κ°€μ§€)
info.show()
Info.show(info)
# Info.show("info") # error

print(info.name) # self.name == info.name λ©€λ²„λ³€μˆ˜
# print(Info.name) # ν΄λž˜μŠ€μ— 1개만 μ‘΄μž¬ν•˜λŠ” λ³€μˆ˜
profile
Hi, I am Lucy. Welcome to Moon in the Room. 🌝

0개의 λŒ“κΈ€