li = [85,95,90,80,75] sum =0# 합계 저장할 변수 fori in li: sum += i print("항목 개수:", len(li)) print("점수 합계:", sum) print("점수 평균:", sum/len(li))
이런식으로 담아올 수도 있다!
< range(시작번호, 끝번호, 증가값) >
> 구구단 2단 출력해보기
dan =2 fori in range(1,10,1): print(dan,"*", i,"=", dan*i)
fori in range(2,10,1): print("<", i,"단 >") forj in range(1,10,1): print(i,"*", j,"=", i*j)
중복 for문도 가능!
< 한줄 for문 >
# 한줄for문 # [반복 실행문for변수 in 리스트] a = [1,2,3,4] result = [i*3fori in a] print(result)
result 가 리스트 형태로 출력됨!
# [조건에 만족하는 반복실행문for변수 in 리스트if조건] #2의 배수를 구해서 i*3 result = [i*3fori in aifi %2==0] print(result)
# [반복실행문for변수1in 리스트1for변수2in 리스트2] # [반복실행문for변수1in 리스트1if조건1for변수2in 리스트2if조건2] # 구구단 결과 result = [] result = [dan*ifordan in range(2,10,1)fori in range(1,10,1)] print(result)
======== test4.py
< 일반함수 >
< 기본문법 >
탭이 중요! 탭만큼 띄워져야 인식함
# 두 수를 받아서 사칙연산 출력하는 함수 def cal(a, b): print(a + b) print(a - b) print(a * b) print(a / b) # 함수 호출 print(cal(1,2))
eng = [90, 80, 70, 60, 50] # 점수를 받아 합을 구해서 리턴하는 함수 sum2(배열받는 변수) defsum2(eng2): sum = 0 for s in eng2: sum += s return sum # 함수 호출 print(sum2(eng))
< 여러 개의 입력값을 받는 함수 >
> 파이썬에만 있는 기능
# 함수의 매개변수 *변수 - 받는 값에 따른 튜플(값을 바꿀 수 없는 배열) 변수 defsum_many(*a): # print(a) sum = 0 for b in a: sum += b return sum # 함수 호출 print(sum_many(1,2,3)) print(sum_many(1,2,3,4,5,6)) print(sum_many(1,2,3,4,5,6,7,8,9,10))
< 함수 초기값 설정 >
# 함수 안에 매개변수에 초기값 설정 def myfun(name, old, man = True): print(name) print(old) print(man) # 초기값 있으면 함수호출시 생력가능(마지막 인수만 가능) myfun("홍길동", 20, True) myfun("이순신", 30)
# 람다 함수 square() 2**3 변수**변수 두 수를 받아서 2의 3승을 구해서 리턴 square = lambda a,b: a**b print(square(2,3))
< 람다함수를 리스트에 넣기 >
# mylist = [람다함수, 람다함수] # mylist = [두 수를 더하는 람다함수, 두 수를 곱하는 람다함수] mylist = [lambda a,b:a+b, lambda a,b:a*b] print(mylist[0](3,4)) print(mylist[1](4,5))
mylist[0]은 +를 수행하고, mylist[1]은 *를 수행함!
< ★map 함수 >
파이썬 내장함수
< 기본 문법 >
map(람다함수, 리트스자료)
> two_times 함수 정의 : 일반함수로 일단 만들어보기
# [1, 2, 3, 4] * 2 => [2, 4, 6, 8] # 함수 two_times(리스트변수) # 리스트 변수 result=[] # for # result 리스트 값 추가 result.append(값*2) # 리턴 result def two_times(li): result = [] for i in li: result.append(i*2) return result print(two_times([2, 4, 6, 8]))
이걸 map 함수를 이용하면 한줄로 코드가 간단해짐
> two_times2 함수 정의 : 하나의 값을 받아서 받은 값에 *2 해서 그 값을 리턴
보통은 li1 = list(map(lambda a:a*2, [1,2,3,4])) 이 형태를 가장 많이 씀!
< filter 함수 >
파이썬의 내장함수
배열에서 내가 원하는 부분만 걸러서 보여줌
< 기본 문법 >
filter(조건람다함수, 리스트자료)
조건이 있는 람다함수를 받음
# filter 함수 : 배열에서 내가 원하는 부분만 걸러서 보여줌 # filter(조건람다함수, 리스트자료) => 함수를 통해 결과 리스트 # [1, -3, 2, 0, -5, 6] => 0보다 큰 값 찾기 [1, 2, 6] # pos 일반 함수 def pos(x): return x > 0 # pos2 람다함수 : 하나의 값을 받아서 0보다 큰 값 리턴 pos2 = lambda x:x>0