220511

HyeonKi Jo·2022년 5월 11일
0
post-thumbnail

0. 파이썬의 기초 문법

7.반복문

  • a_list의 원소들을 앞에서부터 하나씩 가져온다.
  • enumerate는 리스트를 인덱스와 함께 원소별로 튜플을 만들어준다.

    렇게 사용할 수 있다

zip() 내장함수

  • 리스트를 순서대로 앞에서부터 하나씩 튜플로 묶어준다.

리스트 내포 (List Comprehension)

  • for 문을 이용하여 리스트 생성하는 방법
  • 사전 내포 (Dictionart Comprehension)
  • 반복문 내에서 리스트에 원소를 추가하는 방법보다 훨~씬 빠름
  • 리스트를 서로 더하면, 두 리스트가 이어진다.
  • 곱하기도 마찬가지로 곱한만큼 더해진다.
  • 문자열도 리스트와 비슷하다. (But Immutable)
  • 리스트를 생성할 때, for 반복문을 사용할 수 있다.
  • 반복문에 조건문을 추가하는 것으로 원하는 원소만 사용할 수 잇다.
  • 홀수이면 3배, 짝수면 2배하는 코드
  • 조건문을 앞에도 놓는다.

사전 내포 (Dictionary Comprehension)

  • for문을 사용해 dic를 만들 수 있다.

while문

  • while 옆 조건이 True일 동안 반복문이 실행된다.
  • 조건 체크중 False나오면 탈출한다.

무한루프

  • 조건에 항상 True인 값을 주면 무한루프다.
  • 무한루프에서 탈출하려면 break를 사용한다.

continue 문

  • continue를 만나면 다음 반복문으로 넘어간다.

복합대입연산자

  • 이항연산자 + 대입연산자

8.오류및예외처리

  • 예외 발생 전
  • 예외발생 (0으로 나눔)
  • Exception을 받아서 자세한 에러를 출력할 수 있다.
  • 반복문에서 에러를 무시하고 정상적으로 동작하게 만들 수 있다.

9.함수

  • 코드블록에 이름 붙인 것
    • 블랙박스(B/B) : 함수
  • 서브루틴, 서브프로그램 --> 함수(반환값), 프로시져
  • 이름을 붙인다는 것의 의미?
    • 호출하겠다, 써먹겠다, 사용하겠다.
    • 재사용(reuse)
  • 변수
    • 메모리 주소에 이름 붙인 것
  • 파이썬 함수의 특징
    • 함수도 객체
    • 1st-class citizen (1급시민), 1st-class object (1급객체)
    • 1급 객체 : 1.변수에 저장되고, 2.함수의 인자로 사용되고, 3.함수로부터 반환 가능한 객체
    • 파라미터에 대해 데이터 타입을 지정하지 않아도 됨
  • 파라미터는 함수의 지역 변수(로컬변수)
  • 로컬 변수: 코드 블록 내에서 선언(생성)되고 코드블록이 종료되면 사라진다.
  • 글로벌 변수
  • 변수는 스코프(scope) : 변수의 생애주기

식별자 명명 기법

  • 식별자(identifier, 이름) 명명 기법
  • 파이썬
    • 변수, 함수 식별자 : snake_case
    • 클래스 : PascalCase
    • 상수 : SNAKE_CASE (대문자)
  • 변수, 클래서 : 명사 위주
  • 함수, 메서드 : 동사 위주

인자/인수 (Arguments)

    1. 위치인자 (positional args.) : 순서중요
    1. 키워드 인자 (keyword args.) : 순서 무관
  • default 값
    1. 디폴트 파라미터(Default parameter)
  • Default parameter는 후반부에 기술된다.
    1. 가변 인자, 가변 키워드 인자
  • 아래와 같이 인자 개수의 상관없이 받을 수 있다.
  • 여기서 name, age는 반드시 입력이 필요할 떄,
    나머지 args, kwargs는 입력이 꼭 필요하지 않을 떄 이렇게 사용한다.
  • 이처럼 입력도 할 수 있다.
  • 함수 호출시 인자 UNPACKING
  • 튜플, 리스트 : * 한개 args
  • 사전 : ** 두개, kwargs

10. 클래스

Object, instance

  • 클래스로부터 객체를 만드는 과정을 인스턴스화(instanciation)

  • 중복 코드가 너무 많다.
  • 클래스로 간단하게 만들 수 있다.

객체지향 3속성

    1. 캡슐화
    1. 상속 (Inheritance)
    1. 다중화

상속 (Inheritance)

  • 확장한다. (extend)
  • 상위 클래스로 갈수록 추상, 일반화, 공통의 특성(속성)/행위(메서드)

파이썬 상속

  • 파이썬은 위와 같이 클래스 인자로 부모를 상속받을 수 있다.
  • 또, 파이썬은 ,를 이용해서 다중상속이 가능하다.

12.import

  • 확장자가 .py인 파일을 불러온다.
    • 패키지
  • import 해서 모듈을 불러올 수 있다.
  • as ~ 해서 불러온 모듈을 ~로 이름을 부를 수 있다.
  • from random, random에서 randint만 불러 쓰겠다.
  • from random import * : random의 모든 것을 불러오겠다.

1. 숫자 맞추기 게임 만들기

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 cheet sheet

  • conda env create --file bio-env.txt : conda환경 구축한 기록을 txt파일로 남겨준다. -> 다른곳에서 같은 환경 구축할 수 있음
  • 구글에 검색해서 쉽게 찾을 수 있음

2.컴퓨터의 외부 및 내부 IP확인

  • socket.gethostname() : 내 컴퓨터(Host)의 이름
  • socket.gethostbyname([host name]) : host이름의 IP주소를 출력한다.
  • 재미있게도 VirtualBox의 IP주소가 잡혔다.
  • 위 코드로 하니 실제 IP주소가 나왔다.
  • socket객체를 가지고 google에 접속해보고, 그 결과의 0번값이 진짜 IP주소가 나왔다. 즉, 실제 인터넷과 통신한 IP주소일 것이다.
  • http://ipconfig.kr에서 요청을 긁어와서 IP Address : 뒷부분을 찾아 출력한다.
  • 위 사이트는 실제 공인IP를 찾아주는 사이트이고, 거기서 공인 IP주소를 긁어왔다.
profile
Talking Potato

0개의 댓글