사용자 함수

Grace Goh·2022년 9월 21일
0

Python

목록 보기
21/24
post-thumbnail

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의 값은 확인할 수 없게 된다.


전역변수(global variable)와 지역변수(local variable)

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)

profile
Español, Inglés, Coreano y Python

0개의 댓글