본문 바로가기

Python

[Python] 3. 람다식(lambda), 시간함수(time,datetime), 임포트(import)

#정리 

#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"]