7장 함수
7.1 함수 정의와 호출
함수의 기본 구조
def 함수명([인자1, 인자2, ...인자n]):
<코드블록>
[return <반환 값>]
인자도 반환 값도 없는 함수
def Sir_func():
print("wndnrml")
print("wnsxo")
Sir_func()
wndnrml
wnsxo
# 인자는 있으나 반환 값이 없는 함수
def my_friend(friendName):
print("{}는 나의 친구입니다.".format(friendName))
my_friend("한수")
한수는 나의 친구입니다.
def My_F(name):
print(f"{name}은 나의 가족 입니다.")
My_F("할머니, 할아버지, 엄마, 아빠, 동생")
할머니, 할아버지, 엄마, 아빠, 동생은 나의 가족 입니다.
def my_student_info(name, school_ID, phoneNumber):
print("------------------------")
print("- 학생이름:", name)
print("- 학급번호:", school_ID)
print("- 전화번호:", phoneNumber)
my_student_info("현아", "01", "012-234")
------------------------
- 학생이름: 현아
- 학급번호: 01
- 전화번호: 012-234
def my_student_info(name, school_ID, phoneNumber):
print("*******************************")
print("- 학생이름:", name)
print("- 학급번호:", school_ID)
print("- 전화번호:", phoneNumber)
my_student_info("현아", "01", "012-234")
my_student_info("재성", "02", "012-238")
*******************************
- 학생이름: 현아
- 학급번호: 01
- 전화번호: 012-234
*******************************
- 학생이름: 재성
- 학급번호: 02
- 전화번호: 012-238
인자도 있고 반환 값도 있는 함수
def my_calc(x,y):
z = x**y
return z
my_calc(3,4)
81
리스트를 인자로 갖는 함수
def my_student_info_list(student_info):
print("********************************")
print("* 학생이름:", student_info[0])
print("* 학급번호:", student_info[1])
print("* 전화번호:", student_info[2])
print("********************************")
인자를 리스트로 입력해서 호출한다.
student1_info = ["현아", "01", "1234-12"]
my_student_info_list(student1_info)
********************************
* 학생이름: 현아
* 학급번호: 01
* 전화번호: 1234-12
********************************
my_student_info_list(["진수", "02", "01-987-2312"])
********************************
* 학생이름: 진수
* 학급번호: 02
* 전화번호: 01-987-2312
********************************
7.2 변수의 유효 범위
전역 변수와 지역 변수의 차이
함수 안에서 정의한 변수는 함수 안에서만 사용할 수 있다.
a = 5 # 전역변수
def func1():
a = 1 #지역변수, func1()에서만 사용
print("[func1] 지역변수 a =", a)
def func2():
a = 2 # 지역변수, func2()에서만 사용
print("[func2] 지역변수 a =", a)
def func3():
print("[func3] 전역변수 a =", a)
def func4():
global a #함수 내에서 전역 변수 변겅 위해 선언
a=4 # 전역 변수의 값 변경
print("[func4] 전역변수 a =", a)
func1() #함수 func1() 호출
func2() #함수 func2() 호출
print('전역변수 a =', a) #전역 변수 출력
[func1] 지역변수 a = 1
[func2] 지역변수 a = 2
전역변수 a = 5
func3()
func4()
func3()
[func3] 전역변수 a = 5
[func4] 전역변수 a = 4
[func3] 전역변수 a = 4
7.3 람다(lambda)함수
한 줄로 함수를 표현하는 람다함수의 기본 구조
lambda <인자> : < 인자 활용 수행 코드 > )(<인자>)
(lambda x : x**3)(4)
64
람다 함수를 변수에 할당한 후에 인자를 호출해서 사용
mySquare = lambda x : x**2
mySquare(4)
16
mySquare(5)
25
RS_code_def = lambda x : (x+2)*3
RS_code_def(3)
15
여러개의 인자를 받아 사용하는 것도 가능
mySimpleFunc = lambda x,y,z : x+2*y+3*z
mySimpleFunc(1,1,1)
6
#저장이 안됨 형변환 함수들 int str float bool함수
bool 함수의 활용
def print_name(name):
if bool(name):
print("입력된 이름:",name)
else:
print("입력된 이름이 없습니다.")
print_name("Ji Won")
print_name("")
입력된 이름: Ji Won
입력된 이름이 없습니다.
최솟값과 최댓값을 구하는 함수
.
myNum = [10, 5, 12, 0, 3, 5, 99.5, 42]
[min(myNum), max(myNum)]
[0, 99.5]
myStr = 'zxyabc'
[min(myStr), max(myStr)]
['a', 'z']
]
myStr = [ "z", "x", "y", "a", "b", "c"]
[min(myStr), max(myStr)]
['a', 'z']
튜플과 세트에서 활용
=
myNum1= (10, 5, 12, 0, 3.5, 99.5, 42)
[min(myNum1), max(myNum1)]
[0, 99.5]
절댓값과 전체 합을 구하는 함수
[abs(10), abs(-10)]
[10, 10]
[abs(2.45), abs(-2.45)]
[2.45, 2.45]
sumList = [1, 2, 3, 4, 5, 6, 7, 8, 9,10]
sum(sumList)
55
항목의 개수를 구하는 함수
문자열
len("ab cd") #문자열
5
#리스트
len([1, 2, 3, 6]) #리스트
4
len((1, 2, 3, 4, 5)) # 튜플
5
#세트
len({'a', 'b', 'c', 'd','d'}) #세트
4
len({1:"T", 2:"E", 3:"H"}) #딕셔너리
3
내장함수의 사용
사용하지 않은 경우
scores = [90, 85, 95, 85]
score_sum = 0 #총점 계산을 위한 초기값
subject_num = 0 #과목수 계산을 위한 초기값
for score in scores:
score_sum = score_sum + score #과목별 점수 모두 더하기
subject_num = subject_num + 1 #과목수 계싼
average = score_sum / subject_num #평균
print(f"총점:{score_sum} , 평균:{average}")
총점:355 , 평균:88.75
사용했을 경우
scores = [90, 80, 95, 85] #과목별 시험 점수
print("총점: {0}, 평균:{1}". format(sum(scores), sum(scores) / len(scores)))
총점: 350, 평균:87.5
print("최하 점수:{0}, 최고 점수:{1}". format(min(scores), max(scores)))
최하 점수:80, 최고 점수:95
'[Python]' 카테고리의 다른 글
Python 기본 개념 정리 6 (0) | 2022.12.01 |
---|---|
Python 기본 개념 정리 4 (0) | 2022.11.29 |
Python 기본 개념 정리 3 (2) | 2022.11.28 |
Python 기본 개념 정리 2 (0) | 2022.11.24 |
Python 기본 개념 정리 1 (0) | 2022.11.23 |