파이썬따라하기/4입출력

#입출력1편 - 파이썬 함수 기초 python

모두의 실험실 2023. 5. 5. 20:20
728x90

※접속하시어 실습하면서 학습하세요. 파이썬 설치 없이 코드실행할 수 있어요
클릭클릭 : https://tinyurl.com/ynpj4ykv

 

파이썬 실습 실행 가능해요 이용해 보세요

파이썬 코드 입력하시고 맨우측 '▶' 클릭하면 실행 됩니다 #파이썬 테스트 코드 (복사붙여넣기로 테스트해보세요) for i in range(5): print(str(i) + ' 오늘하루 행복하세요') 파이썬은 컴퓨터 언어다 이

modoopython.tistory.com

 

함수란 뭐다? 
자동화 틀이라고 이해하면 편함
 
반복적으로 이야기하지만 코딩은
손으로 하는 반복적인것을 코드로 구현하여
컴퓨터가 자동으로 하기 위함임
 
그런 자동화 틀의 가장 작은 형태임
중학교에서 배운 기억을 되살려보면
y = 2x + 3이 함수임
'일차 함수' 첨 보는 단어라서
머리를 긁적였던 기억이 남
 
결국은 y를 찍어내는 틀임
x에 1을 입력하면 y가 5가 출력됨
 
우리 일상에도 함수역할들을 하는 도구들이 많음
칼을 살펴보면
사과를 자르는 함수임
칼이 없으면 손으로 잘라야함
 
손으로 하기 어려운걸  자동화 틀로 만듦
 
다시 python의 함수로 돌아와서
python에서 함수는 변수 다음으로 큰 자동화 틀임
 
변수 >> 함수 >> 클래스 >> 패키지 >> 완성된 프로그램
이런식으로 python에서는 자동화 틀이 점점 커지는 형태로 구성됨
 
변수 2개를 입력하면 더하기를 해주는 함수(자동화 틀)를 구현할 수 있음

def add(input1,input2):
    output = input1 + input2
    return output

def add2(input1,input2): 
    return input1 + input2

def add3(input1,input2): 
    print(input1 + input2)

a = 1
b = 2
c = add(a,b)
print(c)
d = add2(a,b)
print(d)
add2(a,b)

-결과 (드래그로 확인가능)
3
3
3
 
def는 함수를 만들기 위한 문법임
define은 '정의한다 '는 사전적 의미임
add는 함수의 이름임
함수를 'call한다 ' 또는 '부른다' 라고 자주씀input1,input2와 같이 개발자가 설계하고 싶은 입력변수를 정의해야함
괄호로 닫고 마지막은 ':'을 입력하여야함
 output과 같은 수식을 정의한 다음
return을 사용하여 반환 정의하면 함수 구현이 완료됨
 
수식을 바로 return을 하여 짧게 함수를 구현 가능함
return값 없이 print를 출력하는 역할로도 함수를 사용할 수 있음
 
함수의 입력은 개발자가 마음대로 정할수 있으며
정해지지 않는 입력으로 함수를 구현가능함
 

def add_all(*args):
    tmp = 0
    for i in args:        
        tmp = tmp + i
    return tmp

result = add_all(1,2,3)
print(result)

-결과 (드래그로 확인가능)
6
 
함수의 입력에 '*'을 붙여서 사용가능하며 형태는 괄호가 없는 다양한 입력형태임
 
리스트형식을 입력으로도 사용가능함

def add_all(*args):
    tmp = 0
    args2 = args[0]
    for i in args2:        
        tmp = tmp + i
    return tmp

a = [1,2,3]
result = add_all(a)
print(result)

-결과 (드래그로 확인가능)
6
 
정해지지 않는 입력을 변수를 추가하여 사용가능함

def calculator(menu, *args):
    
    if menu == '+':
        tmp = 0
        for i in args:
            tmp = tmp + i
            
    elif menu == '*':
        tmp = 1
        for i in args:
            tmp = tmp*i
            
    return tmp

result1 = calculator('+', 1,2,3,4)
print(result1)
result2 = calculator('*', 1,2,3,4)
print(result2)

-결과 (드래그로 확인가능)
10
24
 
입력값 앞에 **를 붙여서 함수를 구현할 수 있음
함수는 딕셔너리 자료형으로 수행됨

def dic_generator(**kwargs):
    return kwargs

result = dic_generator(math = 10)
print(result)

-결과 (드래그로 확인가능)
{'math': 10}
 
함수의 return 형태는 변수, 리스트, 튜플, 딕셔너리 등 여러형태가 될수 있지만그 갯수는 하나임

def calculate_all(input1,input2):
    return input1+input2, input1-input2, input1*input2, input1/input2

result = calculate_all(2,1)
print(type(result))
print(result)

print('------------')
plus,minus,multi,divide = calculate_all(2,1)
print(plus, minus, multi, divide)

-결과 (드래그로 확인가능)
<class 'tuple'>
(3, 1, 2, 2.0)
------------
3 1 2 2.0
 
함수에 변수를 초기화 하는 기능도 존재함

def add(input1, input2, period = 1):
    tmp = 0
    for i in range(input1,input2, period):
        tmp = tmp + i
    return tmp

result = add(1,5)
print(result)
result2 = add(1,5,1)
print(result2)
result3 = add(1,5,2)
print(result3)

-결과 (드래그로 확인가능)
10
10
4
 
result와 result2의 값은 같으며
result3은 2씩 더하므로 range가 1,3이 수행됨
 
함수에 변수초기화 하는 기능은 입력의 맨뒤에만 허용됨

def add(input1, period = 1, input2):
    tmp = 0
    for i in range(input1,input2, period):
        tmp = tmp + i
    return tmp

result = add(1,1,5)
print(result)

-결과 (드래그로 확인가능)
  File "<ipython-input-41-b965ccc90488>", line 1
    def add(input1, period = 1, input2):
           ^
SyntaxError: non-default argument follows default argument
 

def add(input1, input2, period = 1, special= 10):
    tmp = 0
    for i in range(input1,input2, period):
        tmp = tmp + i
        
    return tmp*special

result = add(1,3)
print(result)

-결과 (드래그로 확인가능)
30
 
변수초기화는 복수개가 가능하지만 맨뒤에 연달아 사용해야함
 
함수 내의 변수는 local변수여서 함수안에서만 유효함
집안에서만 사용하는 젓가락을 밖에서 사용할 경우도 없고 가지고 나갈일도 극히 드물기 때문에 집밖에 사람들이 모름

def function(input1):
    input1 = input1 + 1
    print(input1)
    
input1 = 1
function(input1)
print(input1)

-결과 (드래그로 확인가능)
2
1
 
함수안의 input1은 함수안에서만 사용함
그래서 2가 출력됨
함수밖에서는 input1은 1이외에는 어떠한 정의가 없음
그래서 1이 출력됨
일반적인 상황이 아니지만 코드 문법구조를 이해 해야함
가급적이면 다른글자로 변수사용 권장함
 
global 명령어를 쓰면 함수안과 밖에서 모두 변수를 인식

def function():
    global input1
    input1 = input1 + 1
    print(input1)
    
input1 = 1
print(input1)
function()
print(input1)

-결과 (드래그로 확인가능)
1
2
2
 
function수행후 global변수가 적용되어
input1은 1에서 2로 됨
 
태그
-------------------------------------------------------------
#python, #파이썬, #anaconda, #아나콘다, #기초, #클래스, #class, #import, #selenium, #셀레늄, #자동, #교육, #코딩교육, #coding, #chatgpt, #챗GPT, #로봇,
 

 
 

728x90
반응형