본문 바로가기
파이썬(Python) – 초보 탈출 예제 풀이 (2/2) 정규 표현식 문제를 끝으로 예제풀이를 마감코자 합니다. Q16. 모스 부호 해독입니다. 아래와 같은 모스 신호를 모스부호 규칙표를 참고삼아 해석하는 함수를 작성해 봅니다. 글자와 글자 사이는 공백 1개, 문장과 문장 사이는 공백 2개로 구분합니다. def Morse(code): morse_code={'.-':'A','-...':'B','-.-.':'C','-..':'D','.':'E','..-.':'F','--.':'G', '....':'H','..':'I','.---':'J','-.-':'K','.-..':'L','--':'M','-.':'N', '---':'O','.--.':'P','--.-':'Q','.-.':'R','...':'S','-':'T','..-':'U', '...-':'V','.--':.. 2021. 12. 17.
파이썬(Python) – 초보 탈출 예제 풀이 (1.5/2) 예제 풀이를 진행하며 가능한 점프 투 파이썬에서 제시한 답안을 보지 않으려 합니다. 구글링도 좋고 오픈 북도 좋으나 제시된 답안을 보게 된다면 너무 빨리 생각이 막히고 코딩함에 있어 자유도가 닫힌다고나 할까요? 산으로 가든 바다로 가든 우선 제 생각대로 풀어봅니다. 파이썬과 같이 프로그래밍 언어를 학습하는 단계에서는 자신만의 코드를 직접 짜보고, 실행하며, 오류도 경험해 보며 내가 무엇을 잘못 이해하고 있는지 또는 같은 문제를 어떻게 풀어갈지에 대한 경험치가 쌓일 것입니다. ​코딩에는 딱 이거다!라는 정답이 있을 수 없습니다. 다소 시간이 걸리더라도 자신만의 방식을 적용해 보며 생각의 힘을 키우시길 권장합니다. (잇몸이 건강해야 이가 탄탄^^ 뜬금없네요! ㅋ) Q11. 특정한 모듈을 import 할 때 .. 2021. 12. 17.
파이썬(Python) – 초보 탈출 예제 풀이 (1/2) ​그동안 살펴본 파이썬 기초 문법에 대해 예제풀이(총 20문항)를 진행코자 합니다. 제가 풀어낸 과정보다 훨씬 효율적인 방법이 있으리라 생각되지만, 지금의 제 수준에서 이해한 대로 풀이를 진행했습니다. ​예제를 풀어보며 제가 느낀 점이 있다면 당분간은 파이썬 관련 자료를 계속 찾아보고, 확인해가며 반복 숙달 학습이 필요한 단계임을 알았습니다. 제가 잘못 이해하거나 보강해야 할 부분이 있으면 댓글로 남겨 주시기 바랍니다. Q1. 문자열 ‘a:b:c:d’를 split, join 함수를 이용 ‘a#b#c#d’로 바꿔봅니다. >>> a='a:b:c:d' >>> a=a.split(':') >>> a ['a', 'b', 'c', 'd'] >>> a='#'.join(a) >>> a 'a#b#c#d' Q2. 딕셔너리에.. 2021. 12. 17.
단도직입 파이썬(Python) – 파이썬 스크립트를 실행파일로 변환하기 (로또번호 생성 후 과거 자료와 비교하기) 제가 작성한 코드들을 VS Code나 PyCharm이 아닌 실행파일로 변환하여 실행시켜 보려 합니다. 에디터에서만 실행시켜보다 단독 실행파일을 만들어 실행시켜 보는 것도 좋을 것 같아 다소 허술하게 코딩 된 스크립트지만 py2exe 해 봅니다. 하단에 실행파일, 원본 파일 올려놓습니다. 우선 실행파일로 바꿀 python script를 준비합니다. 저는 최근 작성된 Lotto 번호 추출 후 과거 당첨번호와 비교하는 코딩을 작성했는데 그기에 random 번호로 확인할 건지, 직접 번호를 입력할 건지 택할 수 있게 수정하였습니다. def Choice_Lotto_Num(): choice_Num = [] count = 0 print('1 ~ 45 중에서 중복되지 않게 숫자 6개를 골라 입력하세요!!!') whil.. 2021. 12. 17.
단도직입 파이썬(Python) – 정규식(Regular Expression) 2/2 코딩을 하다 보면 문자열 처리를 요구할 때가 많습니다. 당연히 코드로 풀어낼 수도 있고, 자주 사용되는 코드는 함수화 시켜 사용할 수도 있지만 정규식을 사용하게 되면 훨씬 간단하게 처리할 수 있습니다. 모든 일에는 일장일단이 있듯이 정규식을 많이 사용하게 되면 정규식 작성자 외 다른 사람이 코드를 읽을 때 직관성이 떨어집니다. 특히 여러 명과 공동작업을 협업할 때에는 생산성 또는 효율성이 오히려 저하될 수 있다는 점입니다. 하지만 정규 표현식의 특성과 사용법을 잘 파악하고 적절하게 사용하게 된다면 우리가 원하는 목적에 대한 코드가 좀 더 원활하게 작성될 수 있겠죠!? (클래스를 몰라도! 정규 표현식을 몰라도! 코딩은 가능합니다.^^) 정규 표현식(Regular Expression)을 사용하려면 항상 re.. 2021. 12. 17.
단도직입 파이썬(Python) – 정규식(Regular Expression) 1/2 연습문제 풀이를 통해 저의 파이썬 학습 수준을 어느 정도 가늠할 수 있었고, 간단하게 실전용 파이썬 코딩도 진행해 보았습니다. 아직 갈 길이 멀었습니다. 많은 산을 넘고, 물도 건너야겠죠!!! 계속 파이썬을 접하다 보면 조금씩 나아지리라는 믿음을 다집니다! 오늘은 파이썬만의 고유 문법이 아닌 문자열을 처리하는 모든 곳에서 사용되는 정규 표현식(Regular Expressions : 정규식으로도 불립니다.)에 대해 살펴보겠습니다.(C, 자바, 자바스크립트 등에서도 적용 가능합니다.) 잠깐 훑어본 바로는 흡사 어셈블리어(Assembly Language)를 읽는 수준의 문법이 종종 사용됩니다. 문자열을 처리하는 표현식이다 보니 내용 이해가 어렵지 않은데 반해 효과적으로 사용하려면 암기가 필요할 수 있겠단 생각.. 2021. 12. 17.
단도직입 파이썬(Python) – 좌충우돌 실전 코딩 오늘은 실전 연습용 코딩 한번 짜 봅니다. 로또번호 생성은 너무 쉽게 되더군요! 과거 당첨된 로또번호 자료(1회~961회)를 구글링으로 찾아 lotto_data.txt로 넣어주고 random 함수로 생성된 로또번호를 비교하여 당첨 여부, 당첨 횟수를 출력하는 프로그램을 만들었습니다. 간단해 보이지만 코딩 초보에겐 약간의 벽이 있었답니다. (벽은 부숴버리라고 있는 것 아니 긋습니까?!^^) 함수, random 함수, 다중(2차원) 리스트, 다중(3중) 반복문, 파일로부터 자료 입력받기 등 복합적으로 파이썬 문법을 살펴보는 계기가 되었습니다. import random def Lotto_Num(): count = 0 Lotto = [] while count < 6: rnd = random.randint(1,4.. 2021. 12. 16.
단도직입 파이썬(Python) – 연습코딩(클래스, 모듈,~라이브러리) 오늘은 그동안 살펴본 클래스, 모듈, 패키지, 라이브러리에 대한 연습문제를 풀어보고자 합니다. 금방 풀어버릴 수 있을 것 같았는데 바로 저의 오만방자함을 일깨우듯 에러투성이더군요. 구글링(파이썬 공식 홈페이지)+오픈북^^ 하며 풀어갔습니다. 시간이 다소 걸리더라도 한번 풀어보시길 권장합니다. 직접 책을 찾고 구글링하며 얻어지는 게 있더군요. 그동안 봐 왔던 내용들도 조금 정리되기도 하고. 분명 맞는데…맞는데…하며 코딩을 했음에도 역시나 제가 잘못 생각한 뭔가가 막 나오더군요. 그래서 오늘도 조금씩 배워갑니다. 파이썬! (제 파이썬 학습교재로 사용중인 #점프투파이썬의 연습문제를 사용했습니다.) Q1. 클래스 상속 문제입니다. class Calculator: def __init__(self): self.va.. 2021. 12. 16.
단도직입 파이썬(Python) – 라이브러리(Library) 전 세계의 파이썬 사용자들이 만든 유용한 프로그램을 모아 놓은 것이 바로 파이썬 표준 라이브러리(Python Standard Library)입니다. 모든 내장함수를 외울 필요가 없는 것과 마찬가지로 모든 라이브러리를 알 필요는 없지만 어떤 일을 할 때 어떤 라이브러리가 사용되는지 정도만 파악하면 됩니다. 자주 사용되고 알아 두면 좋은 파이썬 표준 라이브러리에 대해 알아보겠습니다. sys 모듈 sys 모듈은 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 하는 모듈입니다. python 실행 후 모든 문자열들이 공백을 기준으로 나뉘어 sys.argv 리스트의 요소가 되는 것을 알 수 있습니다. >>> import sys >>> sys.exit() sys.exit()는 강제로 스크립트를 종료할.. 2021. 12. 16.