[Python] Reduce 여러 개의 데이터를 대상으로 누적 집계를 내기 위해서 사용 reduce(집계 함수, 순회 가능한 데이터[, 초기값]) Reduce 함수를 사용하기 위해선 import가 필요하다. from functools import reduce 1. reduce를 사용하지 않았을 때 def Sum(x, y): return x + y lst = list(range(1,11)) result = 0 for i in lst: result = Sum(result, i) 2. reduce를 사용했을 때 def Sum(x, y): return x + y lst = list(range(1, 11)) reduce(Sum, lst) 3. reduce + lambda lst = list(range(1,11))..
[Python] isdigit, isalpha 1. isdigit 파이썬의 isdigit 은 string 클래스에 있는 메서드다. str.isdigit()는 문자열이 숫자로만 이루어져있는지 확인한다. 문자가 단 하나라도 있다면 False를 반환하고 모두 숫자로 이루어져있으면 True를 반환한다. print('111'.isdigit()) True print('1일1'.isdigit()) False 2.isalpha str.isalpha()는 문자열이 문자로만 이루어져있는지 확인한다. 숫자가 단 하나라도 있다면 False를 반환하고 모두 문자로 이루어져있으면 True를 반환한다. 영어가 아닌 한글로 이루어진 문자열 또한 True를 반환한다. print('abc'.isalpha()) True print('a비..
[Python] if문 한 줄로 구성하기 1. if문 기본 구문 x = 5 if x == 5: print(x) 한줄로 구성 x = 5 if x == 5: print(x) 2. If-else 문 A if 조건 else B if 조건이 True면 A를 반환하고 False면 B를 반환한다. x = 5 print(x) if x == 5 else print('not true') 풀어서 쓰면 다음과 같다. if x == 5: print(x) else: print('not true') 3. if-elif-else 문 (삼항연산자) A if 조건 else B if 조건 else C if 조건이 True면 A를 반환, elif 조건이 True면 B를 반환, 둘 다 False면 C를 반환한다. x = 4 print(x) ..
[Python] Eval() eval(문자열) 매개 변수로 받은 식을 문자열로 받아서 실행하는 함수 eval('1+2+3+4') 10 f 포맷팅도 가능하다. a = 2 eval(f"a+3") 5 사용자에게 input을 받아서 그 식을 계산하는 방식으로 많이 사용된다. 다음은 eval의 다양한 사용법이다. eval("len[1,2,3,4]") 4 eval("round(1.5)") 2 eval() 함수는 표현식을 그대로 실행하는 것이기때문에, 보안에 취약하다. 또한 코드의 가독성을 떨어트리고 디버깅을 어렵게 만들 수도 있기 때문에 사용을 권장하진 않는다고 한다.
[Python] 리스트 합치기 1. + 를 사용해서 리스트 합치기 a = [1,2,3,4] b = [5,6,7,8] c = a+b print(c) [1,2,3,4,5,6,7,8] 2. extend() a = [1,2,3,4] b = [5,6,7,8] a.extend(b) [1,2,3,4,5,6,7,8] 3. 2차원 리스트 합치기 sum 함수를 이용해서 쉽게 합칠 수 있음 lst = [[1,2],[3,4],[5,6]] print(sum(lst,[])) [1,2,3,4,5,6] +) for문을 사용해서 2차원 리스트의 요소 꺼내기 in 앞에 변수 두 개를 지정해주면 리스트에서 요소 두개를 꺼내온다. lst = [[1,2],[3,4],[5,6]] for x, y in lst: print(x,y) 1 2 3 4..
[Python] enumerate(), range() 1. enumerate 순서가 있는 자료형(List, Set, Tuple, Dictionary, String)을 입력으로 받아 인덱스 값을 포함하는객체를 돌려준다. for문과 함께 사용하면 자료형의 index를 알 수 있다. for idx, e in enumerate(['a','b','c']): print(idx, e) 0 a 1 b 2 c 2. range() 연속된 숫자를 만들어주는 함수 range(1, 11) ==> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 for문에서 많이 사용된다. for num in range(2, 5): print(num) 2 3 4 범위의 증가와 감소도 가능하다. for num in (2, 10, 2): pri..
[Python] 문자열 찾기 파이썬에서 문자열의 위치와 문자열이 특정 문자로 시작하거나 끝나는지 특정 문자가 문자열에 속해있는지 아닌지를 파이썬 함수를 통해서 찾아보자. 1. 문자열의 위치 반환 1-1. find() 문자열의 왼쪽에서부터 문자를 찾는다. 못찾으면 -1 을 반환한다. english = "abcdefg" english.find('a') 0 2-1. rfind() 문자열에서 중복된 문자가 있으면, 문자열 중 가장 끝에 있는 위치를 반환한다. 못찾으면 -1을 반환한다. english = "aaabcdefg" english.find('a') 2 2. 문자열의 시작과 끝 2-1. startswith() 문자열/튜플이 특정 문자로 시작하는지 알려준다. True/False로 반환한다. a = "hell..
[Flask] 외부에서 접속하기 app.run()안에 바인딩될 호스트 정보를 넣어주면 됨 app.run(host='0.0.0.0') 포트 정보 또한 입력이 가능하다. default는 5000 app.run(host='0.0.0.0', port=8080) 디버깅(debug) 모드로 사용도 가능함 디버깅모드를 통해서 코드를 수정하고 새로고침하면 바로 반영된다. app.run(debug=True)
[Pymysql] 파라미터 전달 사용자의 입력값을 받아서 select 절이나 where 절에 사용하고 싶을 때, pymysql에선 %s를 이용하여 파라미터를 전달한다. 나같은 경우엔 로그인 정보가 맞는지 대조하기위해 사용 플라스크에서 request.form 이용해 클라이언트의 입력값를 서버로 받아온다. if request.method == 'POST': username = request.form['id'] password = request.form['pwd'] 그 후 db를 연결 한후 cursor로 값을 조회 cursor.execute에서 query와 변수를 넣는다 with db.cursor() as cursor: sql = """ SELECT idx, userid, userpwd, usermail FR..
[Flask] 메시지 플래싱 (Message Flashing) 플라스크는 플래싱 시스템을 가지고 사용자에게 피드백을 주는 간단한 방법을 제공한다. 즉, 플래싱이란 서버에서 처리하며 생긴 오류사항/처리사항을 HTML에 넘겨 줄 수 있는 기능을 말한다. 만약 사용자가 로그인 정보를 입력하지 않았을 때, 피드백을 보내고싶다고하면 다음과 같이 작성할 수 있다. 입력받은 정보의 길이가 0이라면 flash 메시지를 보내도록 한다. if len(username) == 0 or len(password) == 0: flash("ID 또는 PASSWORD를 입력하세요") return redirect('/login') HTML에선 다음과 같이 작성해준다. body 태그 안에 넣어주면 된다. {% with messages =..
[Flask] form 값 받기 (request) 페이지의 form을 주고 받기 위해 GET, POST 방식을 사용한다. 🔎 GET 클라이언트에서 서버로 정보를 요청하기 위해 사용되는 메서드 🔎 POST 클라이언트에서 서버로 데이터를 보낼 때 사용되는 메서드 Flask는 templates라는 폴더를 통해 Html과 연동하여 동작한다. HTML 코드를 아래와 같이 작성하면 Flask에서는 사용자의 Input 값을 다음과 같이 받아온다. @app.route('/login_proc', methods=['GET', 'POST']) def login_proc(): if request.method == 'POST': username = request.form['id'] password = request.form['..