23.03.30 자료형(불,변수), 문법(if, for, while), 함수, 클래스, 모듈, 예외, 내/외장함수

차유빈·2023년 3월 30일
0

파이썬공부

목록 보기
3/4

Boolean형

True, False로 판단
True면 실행, False면 미실행


변수

파이썬에서 사용하는 변수는 객체를말함

a리스트 객체는 주소를 가지는데, 그 주소를 b에 넣은것

a와 b는 같은 주소를 갖고 있으므로 둘다 바뀜

a 리스트의 요소들을 b에게 그대로 복사하고자할때


변수 만드는 여러가지 방법

튜플

리스트

같은 값 가짐

a, b값 바꾸기(파이썬한정)










제어문

조건문 (if)

들여쓰기 주의!!(파이썬에선 중요함)

in과 not in(특정 값이 없느냐)

조건부 표현식 if문 간결하게 쓰기(3항 연산자와 비슷)


반복문 (while)

Run - 디버깅(break 걸어주고) : 한줄씩 실행하면서 확인할때 유용한 vs코드 기능

반복문 (while) - break

break는 조건 만족 후에 반복문 빠져나감

coffee는 숫자형이고 0이되면 false인데 not이니깐 true가 되므로 if 안의 구문 실행

반복문 (while) - continue

반복문 (while) - 무한루프


for 문

튜플이나 문자열 등 요소를 꺼낼 수 있는 리스트에서 순서대로 돌면서 하나씩 꺼낸 후 i에 담고 출력



for문과 continue


for문과 range

range(이상,미만) 사이의 값 출력


구구단(이중 for문)

i=2인 상태로 안에 for문 j가 증가되면서 계속 돌고, 다 끝나면 다시 i=3으로 증가되고 동일하게 반복


리스트 내포 (2중 for문 등을 한 줄로 간단하게 쓰는거)


함수

입력값이나 리턴값이 없을 수도 있음

함수정의

함수호출 result = 3


입력값이 없고 리턴값만 있는 경우


결과값이 없는경우(return 없어도 됨)



입력값이 여러개일때, 몇개일지모르겠을때 => *args


매개변수가 딕셔너리형태(key, value) 일때 입력값 여러개 => **kwargs


리턴값은 하나임(리턴값이 여러개여도 튜플형태로 하나로나옴)


원래는 man이라는 인자에 넣어줘야하는데 없으면 오류남

man=True로 매개변수에 초기값을 미리 줘버리면 입력값을 넣지 않아도 오류 안남


지역변수(임시변수) : 함수 내에서 변수 사용! 함수내에서만 해달되는 변수

함수 밖의 a(Global frame, 전역변수)는 별개의 변수로 취급


함수 안에서 함수 밖의 변수 변경하기



람다함수 (함수를 간단하게)

리스트 내에서도 람다함수 사용가능, 함수가 하나의 인덱스로써 함수 호출 가능


사용자 입력과 출력

내장함수 : print(), input() 등의 종류
사용자정의함수 : def 함수명() 등

end는 매개변수 사이에 추가할 문자(이건 띄어쓰기)




파일 읽고 쓰기

1. 파일 쓰기 모드



UTF-8 : 한글이 안깨지고 잘 나옴


2. 파일 읽기 모드

readline() : 한 줄 읽기(반복문 사용)

readlines() : 리스트로 불러와 한 줄씩 읽기(for문 사용)

모두 전체 읽기


with문 사용하면 파일 close 생략 가능





Immutable 과 Mutable 비교




클래스

클래스 사용 이유 => 아래와 같이 함수를 여러번 쓰기 귀찮음


클래스 예시


계산기 만들기 예제

객체 a가 함수 첫번째 인자인 self로 들어가는게 룰임, 새로만든 인스턴스를 self로 넣음

add 함수도 추가



클래스의 생성자

init은 class를 통해 결과를 만들때 가장 먼저 수행하게 되는 함수

  • 즉, 생성자이자 예약어
  • class 내에 다른 함수들을 정의해둔 것일 뿐이므로, init으로 일단 실행하면서 시작하도록



상속

예들 들어, 계산기에서 공학용 계산기를 만들고 싶으면, 계산기의 기본 기능을 가져온 후 추가 기능을 넣어주면 됨


부모클래스인 FourCal를 상속받은 MoreFourcal 클래스

자식클래스 MoreFourcal에 함수 추가



메서드오버라이딩 (변형)

부모에게 상속은 받아오지만, 자식클래스에서 필요에 맞게 변형해서 (덮어쓰기) 사용할때

자식클래스 SafeFourcCal에서 div 메서드를 다시 재정의해서 사용



클래스변수 vs 객체변수

클래스변수 : 클래스에서 적용되는 변수, 공통으로 쓸때

설계도의 lastname이 "김"에서 "박"으로 바뀐것



모듈


특정 메서드만 골라서 가져오고싶을때




패키지 (라이브러리)

모듈 여러개를 모아놓은 것


패키지 import 방법 (폴더 순대로 : game > sound > echo)

echo라는 모듈(미리 만든 py파일)만 불러오고 싶을때

echo_test 라는 함수만 불러오고 싶을때

echo_test 라는 함수 이름 재설정해서 사용

sound안의 모듈을 전부 가져올때 => * 표기

all 리스트 안에 있는 py파일들을 전부 가져옴


모듈내에서 다른 모듈의 py파일을 불러올때

상대경로 : ..



예외처리

보통은 오류 종류 모를때 Exception으로 오류처리함


오류났을때 print(e) 처리하도록

오류 처리와 성공했을 때 처리

오류 처리 후 마지막에 무조건 실행할 것

오류별로 메세지 다르게 설정할수있음

오류 시 그냥 지나가도록 : pass

일부러 오류 내기(raise) : 자식클래스에서 fly를 무조건 변형해서 쓰게하려고 사용




내장함수

eval : 필터역할해줌



외장함수

profile
chacha's 프로그래밍 공부

0개의 댓글