Python/Python 시작하기 21

python MySQL 연결 삽질 feat. pymysql

파이썬으로 mysql 연결을 위해 검색을 하다 문제(?) 의 pymysql 을 알게 되었습니다. 많이들 사용하고 있는듯 하여 아무 의심없이 사용. 처음에는 아무 문제 없이 로그인 테이블 insert 다 잘되길래 잘 되는 것 같아 좋구나 하고 사용했습니다. 그런데 컴퓨터를 재부팅 한 뒤에 connect 단에서 부터 실패를 하였습니다. 원인은 "cryptography is required for sha256_password or caching_sha2_password" 패스워드 암호화와 관련있는 내용인듯 한데 pymysql은 아무 옵션도 제공이 되지 않더군요 이를 해결하기 위해 cryptography 를 설치 하기로 경정!!! pip install cryptography 결과는 실패!!! 이유는 visual..

17. 파이썬 변수 - 전역변수와 지역변수

전역(global) 지역(local) 프로그램을 만들면서 여러 가지 데이터에 여러 가지 이름을 붙여서(변수) 사용합니다. 그런데 이름이란 문맥에 따라서 지칭하는 대상이 다르기 마련입니다. 파이썬에서는 ‘namespace’이라는 개념을 이용해서 이름의 문맥을 구별합니다. 네임 스페이스는 프로그램 전체 범위의 global(전역)과 한정적인 영역의 local(지역)으로 구별됩니다. 전역공간에 정의되어, 프로그램 어디서든 부를 수 있는 이름을 전역변수(global variable)라고 합니다. 함수 밖에서 변수를 정의하면 전역변수가 됩니다. 직역공간에서 영역 내에서만 부를 수 있는 이름을 지역변수(local variable)라고 합니다. 모든 함수는 자신만의 영역을 가지며, 함수 속에서 작성한 변수는 그 함수의..

16. 파이썬 함수 - 함수 (function) 심화

이전 포스팅 함수의 기초 https://arvigoes.tistory.com/47 15. 파이썬 함수 - 함수 (function) 기초 함수란? 함수는 특별한 목적의 작업을 수행하기 위해 독립적인 영역에서 목적을 위해 작성된 코드의 집합입니다. 특수한 목적이 있을때마다 만들어진 함수를 사용함 으로써 매번 재작성 할 필요가 없어지므로 코드.. arvigoes.tistory.com 보시고 오시면 좋을 것 같아요 15번 포스팅에 이어하는 내용이라 잘 아시는 내용이 아니라면 읽어 보시는걸 추천 드립니다. 지난번 포스팅에선 함수의 기본형 선언과 사용(호출) 하는 법에 대해 알아 봤습니다. 함수의 다양한 형태 이번에는 좀 더 다양한 형태의 함수에 대해 알아 보도록 하겠습니다. 그렇다고 해서 기본과 크게 달라지는건 ..

15. 파이썬 함수 - 함수 (function) 기초

함수란? 함수는 특별한 목적의 작업을 수행하기 위해 독립적인 영역에서 목적을 위해 작성된 코드의 집합입니다. 특수한 목적이 있을때마다 만들어진 함수를 사용함 으로써 매번 재작성 할 필요가 없어지므로 코드의 재 사용성을 높여 줍니다. 설명이 어렵게 느껴지시나요? 실생활에서 세탁기를 함수로 표현 할 수 있습니다. 입력 1 ( 세탁물 (옷, 이불, 수건, ... ) ) 입력 2 ( 세제 ( 가루, 액체, ... ) ) 입력 3 ( 섬유유연제( ...) ) 결과물 ( 깨끗한세탁물 ) 세탁기는 입력이 한번에 3가지 종류 이고 결과는 1개 인 함수이네요 특수한 목적 은 세탁이 될 것이고, 옷이나 이불, 수건등을 세탁할때도 동일한 세탁기를 사용하므로 재사용 성에도 좋을 것이니 처음에 말한 함수의 모든 목적에 부합합니..

14. 파이썬 제어문 - for in 반복문

for in 반복문 for 문은 while 문과 마찬가지로 코드를 반복 실행하는 명령입니다. while 문과의 차이점은 주로 사용하는 용도가 다르고 반복 조건에 차이가 있습니다. 주로 사용하는 용도가 다르지만 반복하는 흐름을 제어하는 부분에서는 동일 합니다. for 문은 주로 순차적 처리와 컬렉션 순화에 특화된 반복 기능 입니다. # 컬렉션 - list, tulpe, dictionary, set 등의 여러 요소를 가지는 집합을 컬렉션이라 함. for 문 사용법 for 변수 in 컬렉션 실행영역# 반복수행할 코드 영역 실행영역# 반복수행할 코드 영역 실행영역# 반복수행할 코드 영역 while 에는 while 예약어 옆에 조건이 있었는데 for 문은 옆에 변수 in(예약어) 컬렉션 가 있습니다. in 예약어..

13. 파이썬 제어문 - While 반복문

While 문 파이선 반복문의 대표. 조건이 참인 동안 계속 반복해서 while 영역(들여쓰기)을 수행합니다. 조건을 조절 하기 위해 조건문을 while 문 내에서 조정 해야 합니다. while 문에서 조건 조정이 정확하게 이뤄 지지 않는다면 무한 루프가 발생합니다. 일부러 무한루프를 만드는 경우도 있지만 일반적으로는 굉장히 위험 합니다. 무한루프 발생시 에는 빨간 네모 (정지 아이콘)를 눌러 프로그램을 중지 시켜 줍니다. REPL (파이썬기본제공창) 에서는 Ctrl + C 로 탈출이 가능 합니다. while 문 기본 구조 while 조건문: 수행 영역 수행 영역 ... 조건문 조정 (없어도됨 - 그러나 while 문은 조건문을 조정하는 내용이 수행영역에 있어야 while 문에서 나갈 수 있습니다.) 간..

12. 파이썬 제어문 - 조건문 (if) & 관계 연산자

관계연산자 ( Relational Operators) 2개의 객체간의 특정한 종류의 관계를 시험하는 연산자 입니다. 관계연산자는 이제부터 시작하는 제어문(조건문 반복문 등) 의 핵심 입니다. 프로그램의 전체는 실행흐름 이고 실행흐름은 제어와 반복으로 이뤄 짐니다. 제어와 반복의 시작은 관계연산으로 이뤄지는 것이니 정말 중요 하겠죠 같음 == 두 피연산자가 같으면 True 1 == 1 (True) 같지 않음 != 두 피연산자가 다르면 True 1 != 2 (True) 보타 큼 연산자 왼쪽이 크면 True 2 > 1 (True) 보다 크거나 같음 = 1 (True) 조건문? (if) 조건문은 주어진 조건에 따라 프로그램의 흐름을 바꾸는 구문입니다. 간단한 예를 들면 # 돈이 1000원 이면 사과를 사라. 아..

11. 파이썬 자료형 - 집합 (set)

집합(set) 수학 에서 집합 명확한 기준에 의하여 주어진 서로 다른 대상들이 모여 이루는 새로운 대상이다. 어떤 대상이 집합에 속하는지 여부는 명확해야 하며, 집합 위에는 순서나 연산 따위의 구조가 주어지지 않는다. 파이썬에서의 집합도 이와 유사합니다., 순서가 없고 서로 다른 (unique) 한 값을 가집니다. 그런데 명확한 기준은 없습니다. 만드는 사람이 기준입니다. dict 에서 key 와 비슷하게 각 요소에 대한 변경이 이뤄 질 수 있는 list나 set dict 등은 사용이 불가능 합니다. 이런것들을 가변 객체(mutable) 이라 부르고 이와 반대되는 개념의 불변형 객체(immutable) 이 있습니다. 이건 다음에 한번 다루도록 하겠습니다. 집합 만들기 # Code 1 # set set_t..

10. 파이썬 자료형 - 딕셔너리 (dictionary : dict) 자료형

딕셔너리 딕셔너리는 말그대로 사전입니다. 영어사전을 보시면 단어 와 단어해설 의 나열로 되어 있습니다. 단어(Key)와 단어해설(Value) 의 쌍으로 된 것을 pair (쌍) 이라 부르고 pair 들의 집합을 딕셔너리(dict) 라고 부릅니다. key 에는 불변의 상수형 자료형이 사용 가능 합니다. 숫자, 문자, 튜플 같은 변경할 수 없는 자료만 사용 가능 합니다. list, dict 등 은 사용이 불가능 합니다. 사전에서 "dragon : 용" 인데, 설명이 용가리로 바뀔 수는 있어도 dragon 이 삭제 될지 언정 바뀌어선 안되는 것 처럼요. dict 만들기 기본형 : { key1:value1, key2:value2, key3:value3, ....} key 와 value 의 여러 쌍을 콤마(,) ..

9. 파이썬 자료형 - 튜플(tuple)

튜플 (tuple) 튜플은 리스트와 거의 비슷합니다. 1. 다양한 타입이 입력 가능합니다. 2. 인덱싱을 사용 할 수 있습니다. 3. 내장함수 len(X) 를 통해 길이 확인이 가능 합니다. 4. 슬라이싱도 사용 가능합니다. 기타 아직은 안배운 내용이 많이 있지만 많은부분이 리스트와 동일 합니다. 리스트에서 가능한건 대부분 가능 합니다. # Code 1 # list 와 동일한 점 tup = (1, 1.2, "사과", (5,6,7)) # 다양한 타입 들어감 print(type(tup)) # 타입확인 print(tup) # 출력 print(len(tup)) # len 으로 길이확인 print(tup[2]) # 인덱싱 print(tup[-1]) # 인덱싱 리버스 print(tup[0:3]) # 슬라이싱 tup..