반응형
반응형

 

-- 사용 테이블 예제
CREATE TABLE product_order(
	ID   INT AUTO_INCREMENT PRIMARY KEY,
	NAME VARCHAR(20),
	product VARCHAR(50),
	price INT
);


INSERT INTO product_order(name, product, price) VALUES('홍길동', 'TV', 5000);
INSERT INTO product_order(name, product, price) VALUES('홍길순', '핸드폰', 10000);
INSERT INTO product_order(name, product, price) VALUES('김민지', '핸드폰', 10000);
INSERT INTO product_order(name, product, price) VALUES('김민수', '컴퓨터', 2000);
INSERT INTO product_order(name, product, price) VALUES('이민지', '생수', 500);

📝윈도우 함수

행과 행 사이 관계를 쉽게 정의하기 위해 만든 MySQL에서 제공하는 함수로 OVER절이 들어간 함수입니다.

말이 좀 어려울 수 있는데 간단하게 MAX, MIN처럼 최대값 또는 최소값을 구하기 쉽게 제공하는 것과 같은 거입니다.

예시를 보시면 이해하기 쉬울 겁니다.

 

📝ROW_NUMBER

OVER에는 일반적으로 어떤 기준으로 할지에 대한 정렬 방식이 있습니다.

예를 들면 ORDER BY price DESC의 경우 지출 금액 내림차순으로 정렬되어있습니다. 그 기준으로 ROW_NUMBER(순위를 매기겠다)라는 의미입니다.

 

하기와 같이 지출 순위를 붙여서 만드려면 복잡하게 만들어야하는데 이걸 편하게 도와줍니다.

SELECT ROW_NUMBER() OVER(ORDER BY price DESC) "지출 순위", name, price FROM product_order;

 

Document
지출 순위 name price
1 김민지 10000
2 홍길순 10000
3 홍길동 5000
4 김민수 2000
5 이민지 500

 

📝DENSE_RANK

DENSE_RANK같은 경우는 만약 비교값이 동일할 경우 공동순위로 올려줍니다.

하기에서는 김민지와 홍길순의 지출액이 같지만 김민지가 먼저 나오게 됩니다.

SELECT DENSE_RANK() OVER(ORDER BY price DESC) "지출 순위", name, price FROM product_order;

 

Document
지출 순위 name price
1 김민지 10000
1 홍길순 10000
2 홍길동 5000
3 김민수 2000
4 이민지 500

 

 

📝RANK

RANK의 경우 홍길동이 3위가 아닌 2위로 나오게 됩니다 만약 3위로 나오게 하고 싶으면 RANK 함수를 이용하면 됩니다.

 

SELECT RANK() OVER(ORDER BY price DESC) "지출 순위", name, price FROM product_order;

 

Document
지출 순위 name price
1 김민지 10000
1 홍길순 10000
3 홍길동 5000
4 김민수 2000
5 이민지 500
반응형
반응형
name = 'nontxet'

try :
    f = open(name,'r')
except ZeroDivisionError as x :
    print(x)
finally : 
    print("You can nothing")
    f.close()

Try Catch에러가 났을 때 어떠한 행동을 취할지에 대한 건데요

try 안에 실행문을 실행시키고 만약 에러가 난다면 except로 넘어가게 됩니다.

ZeroDivisionError라면 (0으로 나누기) print(x)를 실행하게 되는 거죠 

에러메세지를 넣어야 합니다. ZeroDivisionError처럼 검색해보면 다 나옵니다.

여기서 에러 메세지를 x라는 변수로 받았습니다.

finally예외발생 상관 없이 무조건 실행하는 문입니다.

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 클래스  (0) 2021.07.20
파이썬 map, filter , lambda  (0) 2021.07.20
파이썬 Math 관련 함수  (0) 2021.07.18
파이썬 이중for문  (0) 2021.07.18
파이썬 비교 연산자  (0) 2021.07.18
반응형
print(abs(-5)) # 출력 : 5 
print(complex(4,3)) # 출력 : 4 + 3i
print(divmod(3,4)) # 출력 : (0 , 3)
print(pow(3,4)) # 출력 : 81
print(3 ** 4) # 출력 : 81

a= [1,5,3,4]
print(max(a)) # 출력 : 5
print(min(a)) # 출력 : 1

print(round (1.5)) # 출력 : 2
print(round (2.5)) # 출력 : 2
print(round (1.2314532,4)) # 출력 : 1.2315

abs(값) 절대값 메소드입니다.

complex(정수,허수)를 이용해 복소수를 만들 수 있습니다.

divmod(값,나눌값)를 이용해 (몫, 나머지)를 구할 수 있습니다.

pow(값, 지수) 값^지수를 표현할 수 있습니다. 값 ** 지수동일한 표현입니다.

 

max(값), min(값)을 이용해 최대값과 최소값을 구할 수 있습니다. 컨테이너객체에서만 가능합니다

즉, 문자열도 가능합니다.

 

round(값)반올림하는 메소드입니다. 0 ~ 4까지 내림 5 ~ 9까지 올립니다.

round(값,표현 소수자리) 표현 소수자리까지하기 때문에 4번째라면 5번째에서 반올림하는 것입니다.

 

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 map, filter , lambda  (0) 2021.07.20
파이썬 Try except finally  (0) 2021.07.18
파이썬 이중for문  (0) 2021.07.18
파이썬 비교 연산자  (0) 2021.07.18
파이썬 While  (0) 2021.07.18
반응형
data = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]

add = 0

for l in data:
    for e in l :
        print(l)
'''
출력 :
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
[5, 6, 7, 8]
[5, 6, 7, 8]
[5, 6, 7, 8]
[5, 6, 7, 8]
[9, 10, 11, 12]
[9, 10, 11, 12]
[9, 10, 11, 12]
[9, 10, 11, 12]
'''

이중 for문을 만드는 법은 좀 복잡합니다.

 

for X in 컨테이너 객체

    for Y in X :

        실행문

 

X와 Y는 아무 변수나 적으셔도 상관 없습니다.

위에서 첫번째 인덱스가 [1, 2, 3, 4] 이기 때문에 X에 들어가게 되는 것이고

Y에서1, 2, 3, 4 순서대로  4번 반복하게 됩니다.

 

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 Try except finally  (0) 2021.07.18
파이썬 Math 관련 함수  (0) 2021.07.18
파이썬 비교 연산자  (0) 2021.07.18
파이썬 While  (0) 2021.07.18
파이썬 format  (0) 2021.07.18
반응형
print((1,2,4) < (2,1,0)) # 출력 : True

print([1,3,5] < [1,3,6]) # 출력 : True

list = [3 , 5 , True , False]

print(all(list)) # 출력 : False
print(any(list)) # 출력 : True

 

1 , 2 비교 2가 더 크니 끝이나게 됩니다. print((1,2,4) < (2,1,0)) # 출력 : True 
1이 같으니 다음 인덱스 걸 비교하고 또 같으니 5 와 6을 다음 걸로 비교합니다. print([1,3,5] < [1,3,6]) # 출력 : True 

All은 모두가 참인경우 True를 아니면 False를 반환합니다. print(all(list)) # 출력 : False 
Any는 하나라도 참이면 True를 아니면 False를 반환합니다. print(any(list)) # 출력 : True 

 

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 Math 관련 함수  (0) 2021.07.18
파이썬 이중for문  (0) 2021.07.18
파이썬 While  (0) 2021.07.18
파이썬 format  (0) 2021.07.18
파이썬 For문  (0) 2021.07.18
반응형
count = 1

while count < 11:
    print(count , end = ' ') # 1 2 3 4 5 6 7 8 9 10
    count = count + 1

파이썬에서 While문은 이런 구조입니다.

 

while 조건 :

    실행문

 

조건에 맞으면 계속 실행문을 반복하게 되는 것이죠

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 이중for문  (0) 2021.07.18
파이썬 비교 연산자  (0) 2021.07.18
파이썬 format  (0) 2021.07.18
파이썬 For문  (0) 2021.07.18
파이썬 논리 연산자, 나머지, 나누기, 몫  (0) 2021.07.18
반응형
A = 1234567
B = 1234.56789

print(format(B,'.2f')) # 출력 : 1234.57
print(format(A,',d')) # 출력 : 1,234,567
print(format(B,',.2f')) # 출력 : 1,234.57

print('{} {}'.format(23, 2.12345)) # 출력 : 23 2.12345
L = [1, 5, 4, 2, 3]
print('최댓값:{0}, 최솟값:{1}'.format(max(L),min(L))) # 출력 : 최댓값:5, 최솟값:1

L = [0, 1, 2, 3, 5, 8]
print('{0[4]} is {0[5]}'.format(L)) # 출력 : 5 is 8

print('나이:{age} 키 :{height}'.format(age = 49 , height = 173)) # 출력 : 나이 : 49 키 : 173

format함수는 형식을 만들어주는 역할을 합니다.

 

B라는 변수2번째 소수점까지 f(float)형식으로 나타내겠습니다라는 뜻입니다.

print(format(B,'.2f')) # 출력 : 1234.57
A라는 변수 d(정수)로 나타내겠습니다. 입니다. print(format(A,',d')) # 출력 : 1,234,567
앞에 , 를 붙히면 정수자리에 3자리마다 ,가 붙혀서 나옵니다. print(format(B,',.2f')) # 출력 : 1,234.57

 

{}를 같이쓰면 format 괄호 안에 순서대로 들어갑니다. print('{} {}'.format(23, 2.12345)) # 출력 : 23 2.12345

{}에 숫자를 넣을 수 있는데 이건 순서를 지칭합니다. 만약{1} {0}.format(1,3)이면 3 1이 출력되는 것이죠

또한 {}에 변수명을 넣을 수 있습니다. 그러면 format에 선언한 변수명이 알아서 찾아서 들어가게 되죠

print('나이:{age} 키 :{height}'.format(age = 49 , height = 173)) # 출력 : 나이 : 49 키 : 173

{}에 인덱스로도 넣을 수 있습니다.

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 비교 연산자  (0) 2021.07.18
파이썬 While  (0) 2021.07.18
파이썬 For문  (0) 2021.07.18
파이썬 논리 연산자, 나머지, 나누기, 몫  (0) 2021.07.18
파이썬 If문  (0) 2021.07.18
반응형
a = ['cat', 'cow', 'tigter']
for x in a:
    print(len(x), x)


''' 
출력 :
3 cat
3 cow
6 tigter 
'''

for x in 'abcdef':
    print(x, ord(x))

'''
출력 :
a 97
b 98
c 99
d 100
e 101
f 102
'''

for x in range(10):  # 0 1 2 3 4 5 6 7 8 9
    print(x)

L = ['cat', 'dog', 'bird', 'pig']
for k, animal in enumerate(L):  # 반복자와 값을 반환한다
    print(k, animal)

""" 
출력 :
0 cat
1 dog
2 bird
3 pig
"""

파이썬 for문은 다른 언어와 좀 다릅니다.

 

for 들어갈 변수 in 컨테이너객체 :

    실행문

 

이런 구조입니다.

컨테이너 객체인덱스로 접근할 수 있는 변수들을 의미합니다. 예를들어서 리스트 , 문자열, 튜플 등이 있죠

들어갈 변수컨테이너객체 인덱스가 순서대로 들어가서 끝날 때까지 반복하게 되는 겁니다.

 

a = ['cat', 'cow', 'tigter']

for x in a:
    print(len(x), x)

이거 같은 경우 cat, cow, tiger가 순서대로 들어가는 것이죠 총 3번 반복하게 됩니다.

문자열도 인덱스로 접근 가능하기 때문에 사용 가능합니다.

 

for (int i = 0 ; i < 100 ; i ++) 이런식으로 100번 반복하게 하고 싶다면

range(100)을 써야합니다. 그러면 들어갈 변수에는 0, 1, 2 ... 99까지 들어가면서 반복하게 됩니다.

 

L = ['cat', 'dog', 'bird', 'pig']
for k, animal in enumerate(L):
    print(k, animal)

 

enumerate(컨테이너객체) 이걸 사용하면 반복자와 리스트 인덱스값을 같이 줍니다.

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 While  (0) 2021.07.18
파이썬 format  (0) 2021.07.18
파이썬 논리 연산자, 나머지, 나누기, 몫  (0) 2021.07.18
파이썬 If문  (0) 2021.07.18
파이썬 문자열  (0) 2021.07.17
반응형
a = 5  # 이진수 : 0101 = 0000 ... 0101
b = 4  # 이진수 : 0100

print(~a) # 출력 : -6 = 1111 ....1010

print(a << 3)  # 출력 : 40
print(a >> 3)  # 출력 : 0

print(a & b)  # 출력 : 4 = 0100
print(a | b)  # 출력 : 5 = 0101
print(a ^ b)  # 출력 : 1 = 0001 (XOR)

print(1 % 5)  # 출력 : 1
print(1 / 5) # 출력 : 0.2
print(1 // 5) # 출력 : 0

~a라는 것은 a의 이진수를 반전 시킨 것인데요 0을 1로 1을 0으로 바꾼 거죠 그래서 나온 결과가 -6이 됩니다.

 

a << 3 에서 <<는 *를 의미한다고 생각하시면 됩니다. 그리고 3이라고 적힌 숫자는 2^3입니다.

즉 5 * 2^3이 되는 것이죠

a >> 3 에서 >>는 / 입니다. 즉 5 / 2^3을 의미합니다.

 

&는 AND입니다. 즉 5인 0101 과 4인 0100 에서 1이 공통적으로 들어가는 0100이 만들어지게 됩니다.

|은 OR입니다. 즉 5인 0101 과 4인 0100 에서 1이 하나라도 들어가면 인정해서 0101이 만들어지게 됩니다.

^는 XOR입니다. 즉 5인 0101 과 4인 0100 에서 0 과 1이 만나야 1로 인정해서 0001이 만들어집니다.

 

파이썬에서 %는 나머지를 구하는 연산자입니다.

/ 는 진짜 나눠서 나오는 값을 의미하고

// 는 몫을 의미합니다.

 

좀 헷갈릴 수 있습니다. 다른 언어에서는 // 는 주석처리로 되어버리니깐요

 

 

반응형

'파이썬 (추후 수정)' 카테고리의 다른 글

파이썬 format  (0) 2021.07.18
파이썬 For문  (0) 2021.07.18
파이썬 If문  (0) 2021.07.18
파이썬 문자열  (0) 2021.07.17
파이썬 List(리스트)  (0) 2021.07.17