In [1]:
balance=8000
def deposit(money):
global balance #global 전역변수
balance +=money
def inquire():
print("잔액은 {}원 입니다.".format(balance))
deposit(1000) #예금
inquire() #잔액확인
In [14]:
class Account:
def __init__(self, balance):
self.balance=balance
def deposit(self, money):
self.balance +=money
def inquire(self):
print("잔액은 {}원 입니다.".format(self.balance))
In [12]:
kb=Account(80000)
kb.deposit(10000)
kb.inquire()
In [13]:
kakao=Account(100000)
kakao.deposit(200000)
kakao.inquire()
In [8]:
class Human:
def __init__(self, name, age):
self.age=age
self.name=name
def intro(self):
print(str(self.age)+"살 "+self.name+"입니다.")
In [9]:
class Student(Human): #부모 클래스가 Human을 상속받은 클래스
def __init__(self, name, age, student_id):
super().__init__(name,age)
self.student_id=student_id
def intro(self):
super().intro()
print("학번 : "+str(self.student_id))
def study(self):
print("파이썬 공부: class")
In [10]:
#객체 생성
kim = Human("홍길동", 37)
kim.intro()
In [11]:
oh=Student("김영희", 31, 2020009)
oh.intro()
oh.study()
In [232]:
class Date:
def __init__(self, month):
self.month=month
def getmonth(self):
return self.month
def setmonth(self, month):
if 1<=month <=12:
self.month=month
In [233]:
today= Date(9)
today.setmonth(19)
print(today.getmonth())
In [234]:
today= Date(9)
today.month=15
print(today.month)
In [245]:
class Date: # __는 직접 참조가 불가능하다
def __init__(self, month):
self.inner_month= month
def getmonth(self):
return self.inner_month
def setmonth(self, month):
if 1<=month<=12:
self.inner_month=month
month=property(getmonth, setmonth) #property: 외부에서 클래스 내부 변수를 참조하기 위한 함수
In [246]:
today=Date(9)
today.month=15
print(today.month)
In [247]:
today=Date(9)
today.inner_month=15
print(today.month)
In [113]:
class Date:
def __init__(self, month):
self.__month=month
def getmonth(self):
return self.__month
def setmonth(self, month):
if 1<=month <=12:
self.__month=month
month=property(getmonth, setmonth)
In [117]:
today=Date(9)
today.month=15
print(today.month)
In [115]:
today=Date(9)
today.inner_month=15
print(today.month)
In [56]:
class Car:
count=0
def __init__(self, name):
self.name= name
Car.count +=1
@classmethod
def outcount(cls):
print(cls.count)
In [60]:
k3= Car("K3")
k5= Car("K5")
Car.outcount()
In [142]:
#static method
class Car:
@staticmethod
def hello():
print("안전운전")
count=0
def __init__(self, name):
self.name= name
Car.count +=1
@classmethod
def outcount(cls):
print(cls.count)
In [143]:
Car.hello()
In [7]:
#연산자 메서드
class Human:
def __init__(self, name, age):
self.age= age
self.name= name
def __eq__(self, other):
return self.age== other.age and self.name == other.name
In [9]:
kim= Human("짱구", 25)
ch=Human("짱구", 25)
lee= Human("철수", 26)
print( kim== ch)
print( kim== lee)
In [129]:
#특수 연산자 메서드
class Human:
def __init__(self, name, age):
self.age= age
self.name= name
def __str__(self):
return "이름{}, 나이{}". format(self.name, self.age)
def __len__(self):
return self.age
In [10]:
kim=("짱구", 25)
print(kim)
print(len(kim))
In [141]:
f=0.1
sum=0
for i in range(100):
sum+=f
print(sum)
In [149]:
#오차없이 10진수형태의 실수를 표현하는 클래스: Decimal
from decimal import Decimal
Decimal(123) #정수형
Decimal('3.14') #실수 문자열
Decimal(('3.14e3')) # 부동소수점 형태
Decimal((0,(3,1,4), -2)) #튜플형태 3.14
Out[149]:
In [150]:
from decimal import Decimal
f=Decimal('0.1')
sum=0
for i in range(100):
sum+=f
print(sum)
In [152]:
from fractions import *
a=Fraction(1,3)
print(a)
b=Fraction(8,14)
print(b)
In [153]:
from fractions import *
a=Fraction(2,3)
b=Fraction(3,5)
c=a+b
print(c) #Fraction간 연산은 분수로
In [154]:
d= c+0.1 #Fraction과 실수의 계산은 실수로
print(d)
array(타입코드, [초기값])
In [173]:
import array
ar = array.array('i', [33, 44, 55, 67, 89])
for a in ar:
print(a, end=",")
print()
ar.append(100)
del ar[0]
for a in ar:
print(a, end=",")
print()
print("ar[1]: ", ar[1])
print("ar[2:4]: ", ar[2:4])
In [174]:
score=[88,95,70,100,59]
for no, s in enumerate(score, 1):
print(str(no)+ "번 학생의 성적 :", s)
enumerate(score, n)
: n부터 시작하는 순서값과 요소값을 튜플로 생성 후 리턴
ex) (1, 88), (2,95), (3,70), (4,100), (5,59)
In [181]:
yoil=["월", "화", "수", "목", "금", "토", "일"]
food=["갈비탕", "순대국", "김밥", "삼겹살", "짜장면"]
menu= zip(yoil, food)
for y, f in menu:
print("{}요일 메뉴: {}".format(y,f))
zip(list1, list2,...)
: 여러 개의 컬렉션을 합쳐 하나로 만든다
: 두 리스트의 대응되는 요소끼리 짝을 지어 튜플 리스트를 생성
: 두 리스트의 길이가 달라도 짧은 쪽의 길이에 맞춤
("월", "갈비탕), ("화", "순대국), ("수" "김밥"), ("목", "삼겹살"), ("금", "짜장면")
In [182]:
dict(zip(yoil,food))
Out[182]:
In [188]:
#any / all
adult= [True, True, True, True]
print("any:",any(adult)) #하나라도 True면 True
print("all:",all(adult)) #모두 True일 때 True
adult= [True, False, False, False]
print("any:",any(adult))
print("all:",all(adult))
filter[조건지정 함수, 대상 리스트]
: filter함수는 리스트의 요소 중 조건에 맞는 것만 골라낸다.
In [190]:
# filter
def flunk(s):
return s<60
score =[45,89,72,53,99]
for s in filter(flunk, score):
print(s)
map[조건지정 함수, 대상 리스트]
: map함수는 모든 요소에 대해 변환함수를 호출하여 새 요소값으로 구성된 리스트 생성
In [192]:
def half(s):
return s / 2
score =[45,89,72,53,94]
for s in map(half, score):
print(s, end=",")
In [193]:
new_score= map(half, score)
for s in new_score:
print(s, end=",")
In [194]:
def total(s,b):
return s+b
score =[45,89,72,53,94]
bonus= [2,3,7,0,5]
for s in map(total, score, bonus):
print(s, end=" ")
람다(lamda) 함수¶
lamda 인수 : 식
In [196]:
lambda x:x+1
Out[196]:
In [201]:
#위의 lambda를 함수로 표현하면
def increase(x):
return x+1
In [198]:
def flunk(s):
return s<60
score =[45,89,72,53,99]
for s in filter(lambda x: x<60, score):
print(s)
In [200]:
def half(s):
return s / 2
score =[45,89,72,53,94]
for s in map(lambda x: x /2, score):
print(s, end=",")
깊은 복사와 얕은 복사¶
In [205]:
a=3
b=a
print("a={} b={}".format(a,b))
a=5
print("a={} b={}".format(a,b))
In [203]:
list1=[1, 2, 3]
list2=list1
list2[1]=100 # 2 ->100으로 바꿈
print(list1)
print(list2)
In [204]:
list1=[1, 2, 3]
list2=list1.copy()
list2[1]=100 # 2 ->100으로 바꿈
print(list1)
print(list2)
In [206]:
list0=["a", "b"]
list1=[list0, 1, 2]
list2=list1.copy()
list2[0][1]= "c" #b ->c
print(list1)
print(list2)
In [208]:
import copy
list0=["a", "b"]
list1=[list0, 1, 2]
list2=copy.deepcopy(list1)
list2[0][1]= "c" #b ->c
print(list1)
print(list2)
In [210]:
list1=[1,2,3]
list2=list1
list3=list1.copy()
print("1==2:", list1 is list2)
print("1==3:", list1 is list3)
print("2==3:", list2 is list3)
In [214]:
a=1
b=a
print("a={} b={} : {}".format(a,b, a is b))
a=5
print("a={} b={} : {}".format(a,b, a is b))
a=301
b=a
print("a={} b={} : {}".format(a,b, a is b))
b=301
print("a={} b={} : {}".format(a,b, a is b))
'Python' 카테고리의 다른 글
Python 기초07_Numpy2 (0) | 2020.09.08 |
---|---|
Python 기초06_Numpy (0) | 2020.09.07 |
Python기초04_ 텍스트파일에서 특정단어를 원하는 단어로 바꾸기 (0) | 2020.09.06 |
Python 기초04_ 파일 다루기(텍스트 파일 생성, 편집 등) (0) | 2020.09.06 |
Python 기초3 (0) | 2020.09.04 |