본문 바로가기
Programming/Python

[Python] format(), readline(), with as, function, class

print 안 뒤쪽에  ,sep = ' '  하면 빈 칸 대신 다른 것을 삽입하라는 의미.

ex) print("Best", 100, sep = "")   -> Best100

 

둘 다 정수거나 float면 둘 다 %d 또는 %f 사용한다.

 

======================================================

 

.format()함수는 소숫점 표시 제한도 可

 

 

input과 쓰는 예시

 

 

================================================

 

텍스트 파일 만들기

 

1. pwd로 주피터 노트북 실행위치 확인

 

 

 

한 줄씩 읽는 readline()

 

 

 

전체 읽기 함수 readlines()

 

 

=======================================================

 

하지만 with 문을 많이 쓴다.

 

3줄을 작성하는 예제
기존 방식과 비교

기존 방식으로 한 것을 with로 쓰면(또는 반대로 하면) 내용이 통째로 교체됨

 

option이 'w'가 아닌 'a' (= append)인 경우, 기존 내용을 지우지 않고 뒤에 바로 추가함

 

 

 

 

응용 예제

 

 

 

 

===========================================================

 

함수              개념: argument; input(매개변수) -> 출력(output)

 

작성법:::(custom, 사용자정의함수)               <->    built in(내장) 함수  such as float(), int() ...

def 함수이름():              * : 콜론 까먹지 말 것!

     액션코드(return)

 

실행법:::

함수이름()                    <- 이것 만 입력시, 액션코드 실행됨

 

 

변수를 넣은 함수 작성 예제

 

def 함수이름(변수):

      print("숫자", 변수)                  Ex)  함수이름(3)  -> 숫자 3

def 함수이름(x, y):          <- 변수 여러개 可

      print("변수", x, y)                   Ex)  함수이름(x, y)  -> 변수 x y   <- 단 입력때 하나 누락시, 오류발생

def func(x, y):

      z = x + y

      return z                                 Ex) func(1,2)  -> 3

 

 


local, global 변수

 

a = 5              <- global variable when it is outside normally

def func1():    <- local variable  when it is in functions or classes

      a = 1

      print(a)

 

-> 여기서 func1() 입력 >>> 1      -> 함수 안에서만 a = 1.

                 그냥 a 입력 >>> 5 

 

 

함수 안에서 global을 정의하는 경우

 

def func1():
     global a                 <- 근데 보통은 굳이 이렇게 안함

 

 

lambda 함수     -> 함수 정의를 단순하게 할 때 사용.

(lambda 변수 : 변수 식)(대입값)    ex)  (lambda x : x**2)(3)

함수 =  (lambda x : x**2)    -> 함수(3)   -> 이런식으로 변수 지정해서 대입도 可

 

다변수 ex) 여러함수 = lambda x,y,z : x + y + z   -> 여러함수(1, 2, 3,)   -> 6

 

 

 

리스트를 변수로 넣기(중첩함수)

Ex) data = [1,2,3,4,5]

def func(data):                                   outer함수

      dataSet = data

      

      def avg_func():                           inner 함수

            avg_val = mean(dataSet)                      <- from statistics import mean

            return avg_val

     return avg_func

 

 

재귀함수: LIFO 규칙 따름 (last income, first out  나중에 나온게 제일 먼저 나옴)

 

def counter(n):       -> 0이 될 때까지 카운트하는 함수

      if n == 0:

        return 0

     else:

        counter(n-1)

        print(n, end = ' ')

 

 

 

보통은 내장함수(패키지)를 쓰지 직접 만들어 쓰는 경우는 드물다!

 

 

 

 

bool()         bool(0)  -> False    bool(1) -> True

 

 

pass: 문법상 오류 방지하면서 아무런 기능을 하지 않는 것.

 

 

 

 

==============================================================

 

class           각종 특성들을 만들어놓고 가져다 쓸 수 있게 하는 것.

                    type(int, float 등) 을 만들어내는 개념

                    개념 이해에 목적을 두고 공부! (짜는 것에 대한 부담갖지 말기)

 

class a:

    x = 0

    y = 0       <- 객체(=object) 생성  (생성자)                 객체: 만들어놓고 가져다 쓸 수 있는 것들

    def __init__(self, x, y):           

           self.x = x

           self.y = y

   def plus(self):                  <- 생성자 메소드(방법)정의

          z = self.x + self.y

          return z                  

  def __del__(self):             <- 소멸자  (굳이 안써도 보통 자동으로 사라짐)

       del self.x

       del self.y

 

 

Ex)

 

   def 바퀴(self):                  <- 생성자 메소드(방법)정의

          z = self.x + self.y

          return z     

   def 엔진(self):                  <- 생성자 메소드(방법)정의

          z = self.x + self.y

          return z     

   def 도어(self):                  <- 생성자 메소드(방법)정의

          z = self.x + self.y

          return z     

 

 

소나타 = 자동차(10, 20)

산타페 = 자동차(10, 20)

 

 

 

 

예제)

class Bicycle():                <-bicycle에 대해 저장

      wheel_szie = 26

      color = 'black'

      (pass)   <- 없으면

  

my_bicycle = Bicycle()

 

(따로 정의)

my_bicycle.wheel_size=26

my_bicycle.color = 'black'

 

print("바퀴크기:", my_bicycle.wheel_size ) 

print("색상:", my_bicycle.color)

 

 

 

Two method(메소드; 클래스에 정의된 함수)

 

1. instant method (static method)   ; 정적매소드

-- object.method() 호출, self(기본)

 

 

2. class method(함수)

-- class.method() 호출, cls(기본)

 

 

 

 

 

 

 

728x90
반응형