mutable : list, dict, set
immutable : int, string
반복되는 코드 분리·재사용시, 객체지향 프로그래밍 등.
def myfunction():
print("Function print")
return True # return할 내용 없으면 생략 가능
# 함수 호출
a = myfunction()
함수는 선언한다고 해서 실행되는 건 아니고 위와 같이 호출해줘야 실행된다.
def myfunction():
print("함수 호출") # 실제 어떤 함수가 수행되고
return True # 어떤 데이터가 리턴되면
# return값은 호출된 a로 전달된다.
a = myfunction()
△ 이처럼 a
로 return값을 받아주기도 하고
def myfunction():
print("함수 호출")
return True
myfunction() #
△ 위의 경우처럼 값을 안 받아줘도 에러가 나진 않지만, 리턴 True의 값은 확인할 수 없게 된다.
c = 10 # 전역변수 c
def add(a, b): # 함수에 input data를 전달하기 위한 변수
c = a + b # 지역변수 c는 add 함수 내에서만 사용
return c
b = add(1, 10) # return값 c가 b가 된다.
print(b, c)
# 11, 10
c = 10
def add(a, b):
global c # add 내에서 쓰는 변수 c를 전역변수 c=10을 사용하겠다고 명시
c = a + b # a+b를 더해서 c에 담는 순간 c값이 바뀐다. 11=1+10
return c # 최종적으로, c=11
# 11
b = add(1, 10)
print(b, c)
# 11 11
def get_input_user(msg): # ("사용자 이름을 입력하세요")
user = input(msg) # 3 input(("사용자 이름을 입력하세요")가 프롬프트에 출력되고
return user # 4 사용자에게 받은 값이 user에 들어간다.
# 함수 호출한 지점으로 return된 값이 넘어간다.
user = get_input_user("사용자 이름을 입력하세요 > ") # 1 get_input_user 함수 호출
# 2 인자값으로 받은 문자열을 넘기면 msg로 들어간다.
def get_input_user(msg):
user = input(msg) # 이 user(지역)와
return user
# 이 user(전역변수)는 아무 상관 없는, 다른 것이다.
user = get_input_user("사용자 이름을 입력하세요")
# return된 user를 새로운 user 담는다.
def get_input_user(msg, casting):
while True: # '정상값이 들어올 때까지 무한반복 하겠다'는 의미
try:
# 사용자 입력값을 강제로 casting해서 문제가 없으면 정상 수행
user = casting(input(msg))
return user # try문이 문제 없으면 return 되고 끝
except: # 오류 > except > continue > 다시 while문
continue
user = get_input_user("사용자 이름을 입력하세요 > ", str) # str 형태이길 바라는 것.
age = get_input_user("사용자 나이를 입력하세요 > ", int)
print(user, age)
사용자 이름을 입력하세요 > hp
사용자 나이를 입력하세요 > 10
hp 10
def get_input_user(msg, casting=int): # 인자argument에 기본값을 넣어주는 방법도 있다.
while True:
try:
user = casting(input(msg)) # 기본값으로 실행된다. int로 주로 많이 쓰일 것 같은 경우.
return user
except:
continue
user = get_input_user("사용자 이름을 입력하세요 > ", str)
age = get_input_user("사용자 나이를 입력하세요 > ") # 기본값을 설정하면 여기는 int를 생략 가능
print(user, age)