def selfintroduction(name, age, address):
print(f"나는 {name}이고, {age}살이고 {address}에 거주합니다.")
selfintroduction("똑똑2", 24, "경기도")
>>>나는 똑똑2이고, 24살이고 경기도에 거주합니다.
import random
def sundaySchedule():
li = ["하루종일 공부하기","하루종일 놀기","털기춤","섹시 웨이븡"]
tjob = random.choice(li)
return tjob
x = sundaySchedule()
print("일요일인 오늘은 "+x+"를 하는 날로 당첨되었습니다.")
# print("일요일인 오늘은 "+sundaySchedule()+"를 하는 날로 당첨되었습니다. )
>>> 일요일인 오늘은 하루종일 공부하기를 하는 날로 당첨되었습니다.
#예시도 무슨 하루종일 공부야 !!!!!!!!! 어이없어
def listMul(x1, x2): #입력으로 2개의 리스트를 받음
tlist=[] #동일한 인덱스 두 원소를 곱한 결과를 저장할 리스트
for i in range(len(x1)):
tlist.append(x1[i]*x2[i])
return tlist #리스트로 값을 돌려줌
li1 = [2,4,6,8,10]
li2= [1,2,3,7,9]
newList = listMul(li1,li2) #함수의 리턴 값 list를 newList에 할당함
print(f"li1 = {li1}")
print(f"li2 = {li2}")
print(f"두 리스트의 동일 인데스 원소의 곱셈 결과:{newList}")
>>>
li1 = [2, 4, 6, 8, 10]
li2 = [1, 2, 3, 7, 9]
두 리스트의 동일 인데스 원소의 곱셈 결과:[2, 8, 18, 56, 90]
def evOdGrouping(): #입력받은 데이터를 짝수와 홀수로 그룹핑하는 함수
i=1 #함수 내에서 할당한 변수는 함수 내에서만 유효
while i <= 10:
in1 = int(input(f"{i}번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :"))
if in1 % 2 == 0 : #짝수이면
elist.append(in1) #짝수들
else : #홀수이면
olist.append(in1) #홀수들
i += 1 #i값을 1씩 증가시킴
def mulElements(li):#리스트의 원소들을 모두 곱해 리턴
mul =1 #곱셈의 결과 저장 변수
for el in li:
mul*=el
return mul #return시 mul값을 돌려줌
elist = [] #짝수의 모음
olist = [] #홀수의 모음
evOdGrouping() #gkatnghcnf
print(f"elist = {elist}, olist ={olist}")
print(f"짝수들의 곱 :{mulElements(elist)}")
print(f"홀수들의 곱 :{mulElements(olist)}")
>>> 1번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. : [입력창]
1번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :1
2번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :2
3번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :3
4번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :4
5번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :5
6번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :6
7번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :7
8번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :-8
9번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :-9
10번째 값으로 -100 ~ 100 사이의 정수를 입력하세요. :-10
elist = [2, 4, 6, -8, -10], olist =[1, 3, 5, 7, -9]
짝수들의 곱 :3840
홀수들의 곱 :-945
#variance 구하기_함수 응용
import random
li1 =[] #리스트
li1_avg = None #리스트 1의 평균값
for _ in range(50):#range에서 넘겨주는 값을 사용하지 않을 때 _를 사용함
li1.append(random.randint(1,50))
print(f"li1 = {li1}")
#함수의 정의를 함수의 호출 이전에 하면 문제없음.
def average(li):
sum = 0
for i in li:
sum += i
return (sum/len(li))
def variance(li,avg):
squaredAdd = 0
for i in li:
squaredAdd += (i-avg)**2
return squaredAdd/len(li)
li1_avg = average(li1)
li1_var = variance(li1, li1_avg)
print(f"li1의 평균 : {li1_avg}, li1의 분산 : {li1_var:.4f}")
람다함수는 익명함수
def가 정상함수
lambda 넘겨줄 인자들 (arguments) : 표현식(expression)
lambda 함수는 return구문을 사용하지 않는다.
lambda 넘겨줄 인자들 (arguments) : 표현식(expression)
square = lambda a:a**2
x = square(3)
print(x)
#인자의 갯수는 일치해야 함(선언과 동시에 호출)
x = (lambda a,b : a+b)(3,5)
print(f"a+b의 결과는 {x}")
def power(n):
return lambda x : x**n
orderPower = power(4)
print(f"3**4의 값은 : {orderPower(3)}")
>> 3**4의 값은 : 81
def mul(x,y):
return x,y
x = map(mul,("orange",'banana','strawberry'),('노랗다',"길다","빨갛다"))
x=list(x)
print(f"x={x}")
y=map(lambda a,b : a+b,("orange",'banana','strawberry'),('노랗다',"길다","빨갛다"))
y = list(y)
print(f"y = {y}")
>>>
x=[('orange', '노랗다'), ('banana', '길다'), ('strawberry', '빨갛다')]
y = ['orange노랗다', 'banana길다', 'strawberry빨갛다']
def odd(x):
return True if x %2 ==1 else False
li = list(range(1,11))
oddlterator = filter(odd, li)
oddList = list(oddlterator)
pritn(f"일반함수를 사용한 홀수 원소들의 필터링 결과 : {oddList}")
>>>일반함수를 사용한 홀수 원소들의 필터링 결과 : [1, 3, 5, 7, 9]
### 람다함수 이용
oddlter = filter(lambda x : x%2 == 1, li)
oddLi = list(oddlter)
print(f"람다함수를 사용한 홀수 원소들의 필터링 결과 : {oddLi}")
>>>람다함수를 사용한 홀수 원소들의 필터링 결과 : [1, 3, 5, 7, 9]