#정리
#09Lambda - 람다식
#(lambda (파라미터) : (함수)) (아규먼트) 뼈대로 작성하며, fn( )와 같은 형태이다.
- print((lambda x : x + 10)(99)) >>109 출력
#일급함수 기능을 사용해 함수형 프로그래밍을 지원하기 위한 것이다
- java의 anonymous inner func/ JS의 arrow func과 유사하다.
- 본래 리턴문에 함수 정의를 할 수 없지만, 람다식으로는 리턴문에 함수 정의를 할 수 있다.
#아규먼트 / 리턴이 없는 형태의 람다 함수는 사용 의미가 없고, 아규먼트의 갯수와 리턴 내용에 초점을 맞추게 된다.
#람다식은 필터링, 맵핑, 묶기에 자주 쓰인다.
#1급함수 기능 사용 방법
<1.argument value lambda>
- sum_xy = fn(11,22)
- test01(lambda x,y:x+y)<2.return value lambda>
- return lambda x,y:x*y
- print(test02()(11,22))<3.variable value lambda>
- a = lambda x,y: x*y
- print(a(3,4))#10time - 시간 함수
#1초 동안 동작 중지 : 딜레이 효과
- import time #임포트 필요- time.sleep(1)
#년-월-일 시:분:초 형태로 시스템 시간을 알려준다.
- import datetime #임포트 필요
- print(datetime.datetime.now())#11import - 파일 임포트
#파일을 임포트하면 해당 파일의 소스코드를 포함시켜 사용한다(복붙한 것과 같다).
- 임포트 할 때는 확장자를 적어주지 않아도 된다.
- import py11AAA
>> 함수 사용시 : py11AAA.aaa( )
#임포트 파일에 별칭을 주어, 별칭으로 함수를 불러올 수 있다.
- import py11AAA as abc
>> 함수 사용시 : abc.aaa( )
#from (파일명) import * 형태로 해당 파일 내에 있는 소스코드를 모두 내 것처럼 사용할 수 있게 할 수 있다.
- from py11AAA import *- 안에 있는 함수를 사용할 때 앞에 파일명 혹은 별칭을 적지않고 사용가능하다.
>> aaa( )
#09Lambda - 람다식
#(lambda (파라미터) : (함수)) (아규먼트) 뼈대로 작성하며, fn( )와 같은 형태이다.
- print((lambda x : x + 10)(99)) >>109 출력
#일급함수 기능을 사용해 함수형 프로그래밍을 지원하기 위한 것이다
- java의 anonymous inner func/ JS의 arrow func과 유사하다.
- 본래 리턴문에 함수 정의를 할 수 없지만, 람다식으로는 리턴문에 함수 정의를 할 수 있다.
#아규먼트 / 리턴이 없는 형태의 람다 함수는 사용 의미가 없고, 아규먼트의 갯수와 리턴 내용에 초점을 맞추게 된다.
#람다식은 필터링, 맵핑, 묶기에 자주 쓰인다.
#1급함수 기능 사용 방법
<1.argument value lambda>
- sum_xy = fn(11,22)
- test01(lambda x,y:x+y)
<2.return value lambda>
- return lambda x,y:x*y
- print(test02()(11,22))
<3.variable value lambda>
- a = lambda x,y: x*y
- print(a(3,4))
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("---------------")
#일반적인 함수 형태
def fn1(x):
return x + 10
print(fn1)
print(fn1(100))
print("---------------")
#(lambda ~: ~)() : fn()와 같은 형태이다.
#일급함수 기능을 사용해 함수형 프로그래밍을 지원하기 위한 것이다.
#아규먼트 혹은 리턴이 없는 형태의 함수는 람다는 사용에 의미가 없다.
#아규먼트의 갯수와 리턴이 어떤지에 초점을 맞추게 된다.
#필터링, 맵핑, 묶기 등에 자주 사용된다.
print(lambda x : x + 10)
print((lambda x : x + 10)(99))
print("-- 1.argument value lambda --")
#x,y lambda
def test01(fn):
print("test01()...",fn)
sum_xy = fn(11,22)
print("sum_xy:",sum_xy)
test01(lambda x,y:x+y)
print("-- 2.return value lambda --")
#lambda x,y: x*y
def test02():
print("test02()...")
return lambda x,y:x*y
print(test02())
print(test02()(11,22))
print("-- 3.variable value lambda --")
#lambda x,y: x*y
a = lambda x,y: x*y
print(a)
print(a(3,4))
print("---------------")
#10time - 시간 함수
#1초 동안 동작 중지 : 딜레이 효과
- import time #임포트 필요
- time.sleep(1)
#년-월-일 시:분:초 형태로 시스템 시간을 알려준다.
- import datetime #임포트 필요
- print(datetime.datetime.now())
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import datetime
print("Hello python")
print("-- time --")
for i in range(5):
#1초 동안 동작 중지 : 딜레이 효과
time.sleep(1)
print("sleep..")
print("-- datetime.now() --")
#년-월-일 시:분:초 형태로 시스템 시간을 알려준다.
print(datetime.datetime.now())
print("---------------")
#11import - 파일 임포트
#파일을 임포트하면 해당 파일의 소스코드를 포함시켜 사용한다(복붙한 것과 같다).
- 임포트 할 때는 확장자를 적어주지 않아도 된다.
- import py11AAA
>> 함수 사용시 : py11AAA.aaa( )
#임포트 파일에 별칭을 주어, 별칭으로 함수를 불러올 수 있다.
- import py11AAA as abc
>> 함수 사용시 : abc.aaa( )
#from (파일명) import * 형태로 해당 파일 내에 있는 소스코드를 모두 내 것처럼 사용할 수 있게 할 수 있다.
- from py11AAA import *
- 안에 있는 함수를 사용할 때 앞에 파일명 혹은 별칭을 적지않고 사용가능하다.
>> aaa( )
--예문 코드 보기--
<메인 소스코드>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#확장자를 적어주지 않아도 된다.
#임포트한 파일의 소스코드를 포함한 것처럼 사용한다(복붙한 것과 같다).
#별칭을 줄 수 있다.
import py11AAA
import py11AAA as abc
#해당 파일 내에 있는 소스코드를 모두 내것 처럼 사용하겠다.
#>> 안에 있는 함수를 사용할 때 앞에 파일명 혹은 별칭을 적지않고 사용가능하다.
from py11AAA import *
print("Hello python")
print("---------------")
#임포트한 파일명 혹은 별칭을 사용해 해당 파일의 함수를 콜 할 수 있다.
#py11AAA.aaa()
#abc.aaa()
aaa()
print("------mission---------")
#py11AAA.py << create function - testArgs(11,22,33), return sum
#print("sum:",py11AAA.testArgs(11,22,33))
#print("sum:",abc.testArgs(11,22,33,44,55))
print("sum:",testArgs(11,22,33,44,55))
<py11AAA.py - 임포트된 소스코드>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("py11AAA.py")
def aaa():
print("aaa()...")
def testArgs(*args):
print("testArgs()...",args)
sum_args = 0
for x in args:
sum_args += x
return sum_args
---------------------------
#mission1 : CRUD import 연습예제
--예문 코드 보기--
<메인 소스코드>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#from py11test import *
import py11test as dao
print("---------------")
print("result_insert:",dao.insert("kim",44))
print("---------------")
print("result_update:",dao.update(3,"lee",33))
print("---------------")
print("result_delete:",dao.delete(5))
print("---------------")
print("result_selectOne:",dao.selectOne(9))
print("---------------")
print("result_selectAll:",dao.selectAll())
lst_all = dao.selectAll()
for item in lst_all:
print(item)
print("---------------")
print("result_searchList:",dao.searchList("name","kim"))
lst_search = dao.searchList("name","kim")
for i in range(len(lst_search)):
print(lst_search[i])
print("---------------")
<임포트 소스코드 - py11test.py>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#insert(name,age) : int
def insert(name,age) :
print("insert()...",name,age)
return 1
#update(num,name,age) : int
def update(num,name,age) :
print("update()...",num,name,age)
return 1
#delete(num) : int
def delete(num) :
print("delete()...",num)
return 1
#selectOne(num) : str "1:kim:33"
def selectOne(num) :
print("selectOne()...",num)
return "1:kim:33"
#selectAll() : list ["1:kim:33","2:lee:44"]
def selectAll() :
print("selectAll()...")
return ["1:kim:33","2:lee:44","3:park:55"]
#searchList(searchKey,searchWord) : list ["1:kim:33","2:lee:44"]
def searchList(searchKey,searchWord) :
print("searchList()...",searchKey,searchWord)
return ["1:kim:33","2:lee:44","3:park:55"]
---------------------------
#mission2 : 12import_memeber 연습 예제
--예문 코드 보기--
<메인 소스 코드>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import py12member as dao
print("---------------")
print("result_insert:",dao.insert("admin1","hi123456","kim1","010"))
print("---------------")
print("result_update:",dao.update(3,"admin1","hi123456","kim1","010"))
print("---------------")
print("result_delete:",dao.delete(5))
print("---------------")
print("result_selectOne:",dao.selectOne(9))
print("---------------")
print("result_selectAll:",dao.selectAll())
for item in dao.selectAll():
print(item)
print("---------------")
print("result_searchList:",dao.searchList("user_id","admin"))
for item in dao.searchList("user_id","admin"):
print(item)
print("---------------")
<임포트 소스코드 - py12member.py>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#member : user_num,user_id,user_pw,user_name,user_tel
def insert(user_id,user_pw,user_name,user_tel):
print("insert()...",user_id,user_pw,user_name,user_tel)
return 1
def update(user_num,user_id,user_pw,user_name,user_tel):
print("update()...",user_num,user_id,user_pw,user_name,user_tel)
return 1
def delete(user_num):
print("delete()...",user_num)
return 1
def selectOne(user_num):
print("selectOne()...",user_num)
return "9:admin9:hi123456:kim9:019"
def selectAll():
print("selectAll()...")
return ["1:admin1:hi123456:kim1:011","2:admin2:hi123456:kim2:012","3:admin3:hi123456:kim3:013"]
def searchList(searchKey,searchWord):
print("searchList()...",searchKey,searchWord)
return ["4:admin4:hi123456:kim4:014","5:admin5:hi123456:kim5:015","6:admin6:hi123456:kim6:016"]
'Python' 카테고리의 다른 글
[Python] 7.sqlite3 DB 연동 CRUD 구현 (0) | 2022.04.07 |
---|---|
[Python] 6. 파일 읽기,쓰기 file open _ read / write,append, with_open (0) | 2022.04.06 |
[Python] 5.배열(array) : tuple, dictionary, set (0) | 2022.04.06 |
[Python] 2. 반복문(while, for), 함수(def), 1급 함수(def_firstclass) (0) | 2022.04.05 |
[Python] 1. 파이썬, 연산자(operator), 캐스팅(casting), 분기문(if_else), 실행 아규먼트(sys.argv) (0) | 2022.04.05 |