본문 바로가기

Python

파이썬 공부 정리 - 클래스, 내장함수, 외장함수, 정규표현식

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

201001

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

  • 클래스

class FourCal: # 첫 대문자.
def setdata(self, first, second):
self.first = first
self.second = second

a = FourCal()
a.setdata(1,2)

print(a) # <main.FourCal object at 0x02B08178>
print(type(a)) # <class 'main.FourCal'>

a = self

1 = first

2 = second

사용법 ??

print(a.first)
print(a.second)

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

  • 사용예제2

class FourCal:
def setdata(self, first, second):
self.first = first
self.second = second
def add(self): # self = ()
result = self.first + self.second
return result

a = FourCal()
a.setdata(4,2) # a = self / first = 4 / second = 2
print(a.add())

=======

  • init

class FourCal:
def init(self, first, second):
self.first = first
self.second = second
def setdata(self, first, second):
self.first = first
self.second = second
def add(self): # self = ()
result = self.first + self.second
return result

a = FourCal() # 이건 안됨 init() missing 2 required positional arguments: 'first' and 'second'

a = FourCal(4,2)

a.setdata(4,2) # a = self / first = 4 / second = 2

print(a.add())

=======

  • 상속

class MoreFourCal(FourCal):
pass

a = MoreFourCal(4,2)
print(a.add())

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

  • 상속 추가 예제

class MoreFourCal(FourCal):
def pow(self):
result = self.first ** self.second # 제곱
return result

a = MoreFourCal(4,2)
print(a.pow())


  • 메서드 오버라이딩

상속 후 덮어쓰기 가능.

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

  • 클래스변수

class Family:
lastname = "김"

Family.lastname = "박" # 따로 빼서 변경 가능

print(Family.lastname)

a = Family()
b = Family()

print(a.lastname)
print(b.lastname)

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

  • 모듈?
    미리 만들어놓은 파이썬(.py) 파일

#mod1.py
def add(a,b):
return a + b

import mod1 # 같은 경로에 있으면 됨.
print(mod1.add(1,2))


  • 많은 것중에 하나 가져올때?

from mod1 import add

==========

  • 다른파일 가져올 때 print안찍히게

name

#mod1.py
def add(a,b):
return a + b

def sub(a,b):
return a - b

if name == "main" # main 이냐?
print(add(1,4))
print(add(4,2))

print(name) # mod1

==========

  • 하위폴더에 있는 파일 가져오기

import sys
sys.path.append("C:\python_study\subfolder")
import mod1
print(mod1.add(3,4))

==========

  • 패키지란?

모듈을 여러개 모아둔것

init.py 각 폴더마다 있음. 처음 머리통은 설정용

==========

  • 패키지 불러오기

import game.sound.echo
game.sound.echo.echo_test()

from game.sound import echo
echo.echo_test()


from game.sound import echo as e
e.echo_test()




  • 밖에 있는 모듈 불러오기

from ..sound.echo imort echo_test()

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

  • 예외처리

try:
# 오류가 발생할 수 있는 구문

except Exception as e:
# 오류 발생

else:
# 오류 발생하지 않음

finally
# 무조건 마지막에 실행

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

  • 예외처리 예시

f = open('없는 파일','r')

없으면 에러남

======

try:
4/0

except ZeroDivisionError as e:
print(e) # division by zero

print("테스트입니다.")

======

  • 예외처리 예시

try:
f = open('파일','r')

except FileNotFoundError as e:
print(str(e))

else: # 에러 안나면 실행 하라는 뜻 <<<<<<<<<<<<<
data = f.read()
print(data)
f.close()

except Exception as e : # 어떤에러든 잡을 수 있음

print(e)

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

상속 중 <변형해서 써라>

class Bird:
def fly(self):
raise NotImplementedError

class Eagle(Bird):
def fly(self):
print

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

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

  • 내장함수

all([1,2,3])

true

all([1,2,3,0]) # 0이 false

false

any 하나라도 참이 있는가
chr ASCII 코드를 입력받아 문자 출력
0~127 사이의 문자 대응

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

  • print(dir([1,2,3])) # 리스트에 어떤걸 쓸 수 있는지?

  • divmod : 몫과 나머지를 튜플형태로 돌려줌

divmod(7,3)

(2,1)

  • enumerate : 열거하다 // 인덱스 , 밸류 값으로 나오게함

for i, name in enumerate(['body', 'foo', 'bar']):
print(i, name)

#결과값
0 body
1 foo
2 bar

  • eval : 실행 후 결과값을 돌려줌

eval('1+2')

3

eval("'hi' + 'a'")

hia

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

############################

  • filter > 함수를 통과하여 참인것만 돌려줌

def positive(x):
return x > 0

a = list(filter(positive, [1, -3, 2, 0, -5, 6])) # 인자 : 함수이름, 리스트 값.
print(a)

a = list(filter(lambda x: x> 0, [1, -3, 2, 0, -5 , 6]
print(a)

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

*** 내장함수

  • list 리스트로 변환

############################

  • map > 각 요소가 수행한 결과를 돌려줌

def two_times(x) : return x*2
a = list(map(two_times, [1,2,3,4])) # 인자 : 함수이름, 리스트 값.
print(a)


  • max min

print( max([1,2,3]) )

print( min([1,2,3]) )


  • zip : 자료형을 묶어주는 역할

list(zip([1,2,3], [4,5,6] ))

print( list(zip([1,2,3], [4,5,6] )) )

[(1, 4), (2, 5), (3, 6)]

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

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

외장함수

import pickle

f = open("test.txt", 'wb')
data = {1:'python', 2:'you need'}
pickle.dump(data, f)
f.close()

import time
print(time.time())

1970 1월 1일 부터 초

============
#sleep1.py
import time

for i in range(5): # 0에서 4까지임.
print(i)
time.sleep(1) # 1초


import random

print(random.random())

0~1 사이의 난수


로또 1~

import random
lotto = sorted(random.sample(range(1,46), 6)) # 1~45 . 6개
print(lotto)

=========
int 형 리스트 join 하기 ( int list to string)
https://hyesun03.github.io/2017/04/08/python_int_join/
print(" ".join(map(str, num_list)))
=========

리스트와 range 활용

print(list(range(1,5))) # 1

5? 1

4까지임.




webbrowser

import webbrowser
webbrowser.open("http://google.com")

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

  • 정규표현식

import re

======

  • 그룹핑

import re
p = re.compile('(ABC)+')
m = p.search('ABCABC OK?')
print(m)
print(m.group()) # >>>>> 이게 매치되는거 데이터 볼 수 있음.

'Python' 카테고리의 다른 글

W292 no newline at end of file  (0) 2023.10.07
파이썬 코드 들여쓰기  (0) 2023.10.07
파이썬 공부 정리 - 파일 만들기  (0) 2020.10.03
파이썬 공부 정리 - 제어문  (0) 2020.10.03
파이썬 공부 정리 - 자료구조  (0) 2020.10.03