- a_list의 원소들을 앞에서부터 하나씩 가져온다.
- enumerate는 리스트를 인덱스와 함께 원소별로 튜플을 만들어준다.
렇게 사용할 수 있다
- for 문을 이용하여 리스트 생성하는 방법
- 사전 내포 (Dictionart Comprehension)
- 반복문 내에서 리스트에 원소를 추가하는 방법보다 훨~씬 빠름
- 리스트를 서로 더하면, 두 리스트가 이어진다.
- 곱하기도 마찬가지로 곱한만큼 더해진다.
- 문자열도 리스트와 비슷하다. (But Immutable)
- 리스트를 생성할 때, for 반복문을 사용할 수 있다.
- 반복문에 조건문을 추가하는 것으로 원하는 원소만 사용할 수 잇다.
- 홀수이면 3배, 짝수면 2배하는 코드
- 조건문을 앞에도 놓는다.
- while 옆 조건이 True일 동안 반복문이 실행된다.
- 조건 체크중 False나오면 탈출한다.
무한루프
- 조건에 항상 True인 값을 주면 무한루프다.
- 무한루프에서 탈출하려면 break를 사용한다.
continue 문
- continue를 만나면 다음 반복문으로 넘어간다.
- 이항연산자 + 대입연산자
- 예외 발생 전
- 예외발생 (0으로 나눔)
- Exception을 받아서 자세한 에러를 출력할 수 있다.
- 반복문에서 에러를 무시하고 정상적으로 동작하게 만들 수 있다.
- 코드블록에 이름 붙인 것
- 블랙박스(B/B) : 함수
- 서브루틴, 서브프로그램 --> 함수(반환값), 프로시져
- 이름을 붙인다는 것의 의미?
- 호출하겠다, 써먹겠다, 사용하겠다.
- 재사용(reuse)
- 변수
- 메모리 주소에 이름 붙인 것
- 파이썬 함수의 특징
- 함수도 객체
- 1st-class citizen (1급시민), 1st-class object (1급객체)
- 1급 객체 : 1.변수에 저장되고, 2.함수의 인자로 사용되고, 3.함수로부터 반환 가능한 객체
- 파라미터에 대해 데이터 타입을 지정하지 않아도 됨
- 파라미터는 함수의 지역 변수(로컬변수)
- 로컬 변수: 코드 블록 내에서 선언(생성)되고 코드블록이 종료되면 사라진다.
- 글로벌 변수
- 변수는 스코프(scope) : 변수의 생애주기
- 식별자(identifier, 이름) 명명 기법
- 파이썬
- 변수, 함수 식별자 : snake_case
- 클래스 : PascalCase
- 상수 : SNAKE_CASE (대문자)
- 변수, 클래서 : 명사 위주
- 함수, 메서드 : 동사 위주
- 위치인자 (positional args.) : 순서중요
- 키워드 인자 (keyword args.) : 순서 무관
- default 값
- 디폴트 파라미터(Default parameter)
- Default parameter는 후반부에 기술된다.
- 가변 인자, 가변 키워드 인자
- 아래와 같이 인자 개수의 상관없이 받을 수 있다.
- 여기서 name, age는 반드시 입력이 필요할 떄,
나머지 args, kwargs는 입력이 꼭 필요하지 않을 떄 이렇게 사용한다.
- 이처럼 입력도 할 수 있다.
- 함수 호출시 인자 UNPACKING
- 튜플, 리스트 : * 한개 args
- 사전 : ** 두개, kwargs
Object, instance
- 클래스로부터 객체를 만드는 과정을 인스턴스화(instanciation)
- 캡슐화
- 상속 (Inheritance)
- 다중화
- 확장한다. (extend)
- 상위 클래스로 갈수록 추상, 일반화, 공통의 특성(속성)/행위(메서드)
파이썬 상속
- 파이썬은 위와 같이 클래스 인자로 부모를 상속받을 수 있다.
- 또, 파이썬은
,
를 이용해서 다중상속이 가능하다.
- 확장자가 .py인 파일을 불러온다.
- 패키지
- import 해서 모듈을 불러올 수 있다.
- as
~ 해서 불러온 모듈을 ~로 이름을 부를 수 있다.- from random, random에서 randint만 불러 쓰겠다.
- from random import * : random의 모든 것을 불러오겠다.
- 랜덤한 숫자를 골라주는 모듈이다.
- choice : 1개만 뽑는다.
- choices : k를 지정해서 k만큼 뽑는다.
- 로또 몇게나 맞출 수 있는지 객체지향으로 만들어보기
- conda cheat sheet를 검색하고 다운로드 받는다.
- 공부한다.ㅎ
- Anaconda Promt로 시작한다.
conda create --name forty python=3.10 -y
conda activate forty
로 가상환경으로 들어간다.
conda deactivate
로 다시 base로 돌아갈 수 있다.
- VScode에서 환경을 forty로 바꿔준다.
- 근데 에러.... install 눌러본다.
- 터미널에서
conda activate forty
로 forty에 들어가준다.
- 설치가 시작된다.
- 설치가 끝나고 작동된다. 다만 코드에 에러 ㅎ
- conda env create --file bio-env.txt : conda환경 구축한 기록을 txt파일로 남겨준다. -> 다른곳에서 같은 환경 구축할 수 있음
- 구글에 검색해서 쉽게 찾을 수 있음
socket.gethostname()
: 내 컴퓨터(Host)의 이름socket.gethostbyname([host name])
: host이름의 IP주소를 출력한다.
- 재미있게도 VirtualBox의 IP주소가 잡혔다.
- 위 코드로 하니 실제 IP주소가 나왔다.
- socket객체를 가지고 google에 접속해보고, 그 결과의 0번값이 진짜 IP주소가 나왔다. 즉, 실제 인터넷과 통신한 IP주소일 것이다.
- http://ipconfig.kr에서 요청을 긁어와서 IP Address : 뒷부분을 찾아 출력한다.
- 위 사이트는 실제 공인IP를 찾아주는 사이트이고, 거기서 공인 IP주소를 긁어왔다.