분류 전체보기 50

디버깅과 try / except문

디버깅버그의 원인을 찾고발생한 버그를 해결하고비슷한 버그의 재발을 방지하는 것 디버깅은 왜 중요한가?버그는 사용자의 경험과 직결된다.버그로 인한 불쾌한 경험은 프로그램의 다른 여러 기능보다 큰 영향을 미친다. 숙련된 개발자라도 한번에 완벽한 코드를 짤 수는 없다.따라서, 개발자에게는 빠르게 문제를 파악하고 해결하는 능력이 요구된다.  에러의 종류1. SyntaxError 컴퓨터가 이해할 수 없는 코드def add_all(numbers): result = 0 for number in numbers: result += number return result 컴퓨터가 읽을 수 조차 없는 코드(여기서는 for문에 콜론(:)이 빠져있다.)컴퓨터가 이해할 수 없는 부분을 Syntax er..

카테고리 없음 2024.08.29

파이썬 모듈 unittest

예시코드 확인import unittestclass IsPalindromeTests(unittest.TestCase): def test_level(self): self.assertTrue(is_palindrome("level")) def test_lever(self): self.assertFalse(is_palindrome("lever")) unittest.main()  한줄씩 체크해보았다.import unittest​unittest 모듈을 임포트한다. 이 모듈은 파이썬에서 기본적으로 제공하는 단위 테스트 프레임워크로, 테스트 케이스를 작성하고 실행하는 데 사용된다. class IsPalindromeTests(unittest.TestCase):unittest..

데이터 분석 2024.08.29

타이타닉 데이터 분석하기

사용데이터Titanic - Machine Learning from Disasterhttps://www.kaggle.com/competitions/titanic Titanic - Machine Learning from Disaster | Kaggle www.kaggle.com    1. train.csv파일의 survived 데이터 시각화import pandas as pdimport matplotlib.pyplot as pltimport matplotlib.font_manager as fm# 한글 폰트 설정font_path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf' # 폰트 경로font_prop = fm.FontProperties(fname=font_pa..

데이터 분석 2024.08.28

인공지능 기초지식

1. 인공지능과 머신러닝, 딥러닝 인공지능 Artificial Intelligence사람처럼 학습하고 추론하는 컴퓨터 시스템 기술ex) 시리, 빅스비, 인공지능 스피커 등 머신러닝 Machine Learning데이터로 모델을 학습시켜, 컴퓨터가 스스로 추론할 수 있도록 하는 기술ex) SVN, Decision Tree, KNN, Random Forest 딥러닝 Deep Learning많은 머신러닝 알고리즘 중에서 인공신경망을 기반으로 한 기술ex) CNN, RNN, LSTM, ANN, DNN, MLP   2. 머신러닝 기법 분류지도학습시험 공부를 하는 과정과 매우 유사함. 문제집으로 공부를 하고 문제를 잘 풀었는지 정답을 보며 채점을 하고, 다른 유사한 문제를 틀리지 않도록 틀린 문제를 공부한다.Labe..

데이터 분석 2024.08.28

유닛테스트 작성 시 주의점

1. 이름으로 내용을 파악할 수 있어야 한다.# Baddef test1(): assert(is_palindrome("level") == True)# Gooddef test_is_palindrome_level(): assert(is_palindrome("level") == True)위 코드에서 test1이라는 테스트코드로는 해당 테스트코드가 어떤 기능을 하는지 알 수 없다.일반적으로는 코드의 이름을 간결히 하는 것이 좋지만테스트 코드의 경우에는, 어떤 edge case를 검증하고자 하는지, 어떤 함수에 대한 테스트인지, 어떤 input을 테스트 하려는 것인지 등을 이름에서 알 수 있도록 해야 한다.   2. 각 유닛테스트들은 독립적이어야 한다.heater = Heater()def test_con..

데이터 분석 2024.08.26

is_palindrome 코드 분석

import stringdef is_palindrome(text): text = ''.join(text.lower().split()) for char in string.punctuation: text = text.replace(char, "") if text == "": return True if text[0] != text[-1]: return False return is_palindrome(text[1:-1])  어째서 .split()으로 나눈 후 굳이 ''.join()으로 다시 더하는가? text.lower():텍스트를 모두 소문자로 변환합니다. 회문을 검사할 때 대소문자 구분을 없애기 위해서입니다.text.split():기본적으로 공..

데이터 분석 2024.08.26

실습 Palindrome 테스트

palindrome코드import stringdef is_palindrome(text): text = ''.join(text.lower().split()) for char in string.punctuation: #특수문자를 하나씩 불러와 text = text.replace(char, "") #replace를 사용하여 삭제해준다. if text == "": return True #이 함수는 공백문자도 회문으로 포함하도록 설계되었다. if text[0] != text[-1]: return False return is_palindrome(text[1:-1]) palindrome 테스트 코드from helper import is_palindrom..

데이터 분석 2024.08.26

테스트 코드와 유닛테스트

테스트코드: 프로그램이 의도대로 작동하는지 확인하기 위한 코드테스트코드로 알 수 있는 것1. 코드가 설계된 대로 작동하는지2. 코드를 수정한 후에도 동일하게 작동하는지 유닛테스트: 함수 1개가 잘 작동하는지 확인하기 위한 코드유닛테스트로 확인할 것: 주어진 인자에 대해 예상된 출력값을 내놓는가? def test_is_palindrome_level():assert(is_palindrome("level") == True)def test_is_palindrome_lever():assert(is_palindrome("lever") == False)# level, lever 두 단어를 사용하여 회문을 구분하는 함수 is_palindrome()가 잘 작동하는지 확인하는 유닛테스트 assert함수: 디버깅 모드에서 ..

데이터 분석 2024.08.26

Python 개발환경 구축하기(VScode, 아나콘다, 연동)

구글에서 VScode를 검색하여 자신의 운영체제에 맞게 다운로드한다.  VScode실행 후 왼쪽 목록에 Extentions에서 Python와 Jupyter를 검색하여 설치한다.(윈도우 버전에 따라 스토어창이 뜨면서 설치를 하게 될 수도 있다. 그대로 진행한다.)  구글에서 anaconda 검색 후 메일 인증을 진행한다.운영체제에 맞게 설치한다.  설치과정중 2번째 PATH관련 항목을 반드시 체크한다.(환경변수 관련)경고메세지가 뜨지만 무시한다.  VScode실행 후 f1클릭 후 Python: select interpreter를 검색하여anaconda와 연동시켜준다.  마찬가지로 f1클릭 후 Terminal: Select Default Profile 검색 후,PowerShell로 되어 있다면 Command..

데이터 분석 2024.08.22

고유값과 고유벡터

nxn 크기의 정사각 행렬 An×1 크기의 열 벡터 $\vec{x}$ex) A가 3x3 행렬이라면 x는 3x1 A $\vec{x}$ 와 $\vec{x}$ 가 아래의 식을 만족할 때,즉 A $\vec{x}$ 와 $\vec{x}$ 가 평행하고, $\vec{x}$ 를 실수 배만큼 늘리거나 줄여서 A $\vec{x}$ 와 같게 만들 수 상황이 발생할 때,\(A \vec{x} = λ\vec{x}\)위의 식에서λ는 A의 고유값$\vec{x}$ 를 A의 λ에 대한 고유벡터라고 한다.  주의사항영벡터는 고유벡터로 볼 수 없다. (무조건 식이 성립하여, 모든 실수가 고유값이 되어버림)고유벡터는 무수히 많다.( $\vec{x}$ 가 λ에 대한 고유벡터라면, k $\vec{x}$ 또한 λ에 대한 고유벡터)  고유값 λ구하기..

수학 2024.08.21