<내용정리>
- 관련 파일
- 본문
## 람다 표현식(lambda expression) : 익명 함수
<형식>
lambda 매개변수들 : 식
# 일반적인 방법
def plus_ten(x):
return x + 10
a = plus_ten(1)
print('def 사용했을 때 : ', a)
# lambda 사용
b = lambda x: x + 10
print('lambda 사용했을 때 : ', b(1))
print((lambda x: x + 10)(2))
## map() : 리스트의 요소를 각각 처리
반복 가능한 자료형(리스트나 튜플)을 첫번째 인자로 들어온 함수에
하나씩 집어넣어서 함수를 수행하는 함수
map 함수의 반환값은 map객체이기 때문에 해당 자료형을 list 혹은 tuple로 형변환 시켜주어야한다
<형식>
map(함수, 반복 가능한 객체)
map(적용시킬 함수, 적용할 값들)
# 일반적인 방법
def plus_one(x):
return x + 1
a = list(map(plus_one, [1, 2, 3]))
print('def 사용 : ', a)
# lambda 사용
b = list(map(lambda x: x + 1, [1, 2, 3]))
print('lambda 사용 : ', b)
## 람다 표현식에 조건부 표현식 사용하기
<형식>
lambda 매개변수들 : 식1(참) if 조건식 else 식2(거짓)
*else는 반드시 있어야 하며, elif는 올 수 없다. if를 연속해서 사용한다
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = list(map(lambda x: str(x) if x % 3 == 0 else x, a))
print(b)
## filter()
반복 가능한 객체에서 특정 조건에 맞는 요소 중 참일 때만 해당 값을 가져오는 함수
<형식>
filter(함수, 반복 가능한 객체)
def f(x):
return 5 < x < 10
a = [8, 3, 2, 10 ,15, 7, 1, 9, 0, 11]
result = list(filter(f, a))
print(result)
# 모듈을 불러와서 사용하기
<형식>
import 모듈이름 as 별칭 # as 별칭은 생략 가능
또는
from 모듈이름 import 모듈함수
>> 모듈이름을 생략하고 함수만 쓰고 싶을 때
from 모듈이름 import *
>> 모듈 안에 있는 모든 함수를 당겨쓸 때 모두의 의미를 가진 *를 사용
# import 방식
import m # m 이라는 파이썬 파일을 불러온다
print(m.add(1, 2))
print(m.sub(2, 1))
print(m.mul(1, 2))
print(m.div(2, 1))
# from 방식1
from m import add, sub
print(add(1, 2)) # from으로 가져올 땐 모듈명(m.)이 필요없다
print(sub(1, 2))
# from 방식2
from m import *
x = int(input('x를 입력하세요 : '))
y = int(input('y를 입력하세요 : '))
n1 = add(x, y)
n2 = sub(x, y)
n3 = mul(x, y)
n4 = div(x, y)
print('x + y =', n1)
print('x - y =', n2)
print('x * y =', n3)
print('x / y =', n4)
# return한 결과값 n1, n2가 다시 매개변수로 들어간다
print('n1 + n2 =', add(n1, n2))
# return한 결과값 n3, n4가 다시 매개변수로 들어간다
print('n3 - n4 =', sub(n3, n4))
## 패키지(폴더)를 만들어서 관리
<형식>
import 패키지명.모듈이름 as 별칭
또는
from 패키지명.모듈이름 import 모듈함수
from pkg.m import add # pkg 폴더 안 m모듈 안에 있는 add함수를 불러온다
print(add(1, 2))
## __name__
현재 모듈의 이름을 담고 있는 내장변수
원래 파일에서 실행하면 __name__ 에 '__main__'이 할당된다
모듈로 참조하고 있는 다른 파일에서 실행하면 __name__에 해당 모듈명이 할당됨
# ex)
''' --my_secure 파일에--
def secure_name(name):
return name[0] + '**'
def secure_no(no):
return no[:8] + '******'
def secure_phone(phone):
return phone.replace(phone[4:8], '****')
'''
from my_secure import *
print(secure_name('김철수'))
print(secure_no('751012-1234567'))
print(secure_phone('010-1234-5678'))
### 표준 모듈
## math 모듈
import math
print(math.pi) # 원주율
print(math.ceil(1.1)) # 올림
print(math.floor(1.9)) # 내림
print(math.trunc(-1.9)) # 버림
print(math.sqrt(81)) # 제곱근
print(math.pow(2, 3)) # 2의 3제곱
## random 모듈
import random
print(random.randint(1, 10)) # 1이상 10 이하의 정수 중 RANDOM
print(random.randrange(10)) #0부터 9까지의 정수 중 RANDOM
print(random.randrange(1, 10)) # 1~9 중 RANDOM(range는 끝값 포함 X)
print(random.randrange(1, 10, 2)) # 1, 3, 5, 7, 9 중 RANDOM
print(random.random()) # 0 이상 1 미만 중 RANDOM(소수점)
seasons = ['spring', 'summer', 'autumn', 'winter']
print(random.choice(seasons))
print(random.sample(range(1, 46), 6)) # 중복 없이 6개의 숫자를 리스트 형태로 출력
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)
# ex)
import random
num1 = random.randint(1, 10)
num2 = random.randint(1, 10)
print(f'{num1} + {num2} = ?')
dab = int(input('정답은 무엇입니까? '))
if num1 + num2 == dab:
print('정답!')
else:
print('오답!')
# ex)
import random
dice = random.randint(1, 6)
while True: # 맞출 때까지 무한반복
user = int(input('주사위 값은 얼마일까요? :'))
if dice == user:
print('정답입니다!')
break
else:
print('오답입니다')
'학부 자료 > Python' 카테고리의 다른 글
[Python] 파이썬 기초 12/20, 파일 입출력의 활용 (1) | 2023.11.07 |
---|---|
[Python] 파이썬 기초 11/20, 모듈, 파일 입출력 (2) | 2023.11.07 |
[Python] 파이썬 기초 9/20, 사용자 함수 (1) | 2023.11.07 |
[Python] 파이썬 기초 8/20, 시퀀스 내장 함수, 메소드 (0) | 2023.11.07 |
[Python] 파이썬 기초 7/20, 조건문 반복문 3, 리스트 내포(리스트 컴프리헨션), 내장함수 (0) | 2023.11.07 |