파이썬 기초 2 - 02 함수와 메서드

핏자·2023년 4월 5일
0

인공지능사관학교

목록 보기
6/31
post-thumbnail
  • 함수

- 프로그래밍의 기본 틀

컴퓨테에게 정보를 입력하고.

컴퓨터가 작업을 하고

컴퓨터가 작업 결과를 출력

입력 -> input
출력 -> print

입구 -> 작용(기능) -> 출구

- 함수

특정 기능을 수행하는 코드(들의 모임)

- 함수의 구조

컴퓨터 -> 함수 .... 함수 -> 컴퓨터

len() : 자료를 넣으면 그 자료의 길이를 알려준다

int() : 자료를 넣으면 정수형으로 변환해서 알려준다

str() : 자룔를 넣으면 문자열로 변환해서 알려준다




  • 함수의 종류

- 내장 함수

파이썬 개발자들이 이미 만들어 둔 함수

편리하게 가져다 쓰면 된다

- input()과 print()

input() - 자료를 입력하는 함수

a = input() # Hello 입력
print(a) # Hello

- max()와 min()

max() - 시퀀스 자료의 최댓값을 구하는 함수

min() - 시퀀스 자료의 최솟값을 구하는 함수

print(max(1,2,3,4,5)) # 5
print(min([1,2,3,4,5])) # 1

- sum()과 len()

sum() - 숫자 원소로 이루어진 시퀀스 자료의 합

len() - 시퀀스 자료의 길이를 구하는 함수

print(sum(1,2,3,4,5)) # 15
print(len("Triangle)) # 8

- 사용자 지정 함수

사용자가 여러 코드를 묶어서 새로 만든 함수

def plusDouble(a,b):
	c = a+b
    return 2*c
print(plus(3,4)) #14

- 함수 만들기

define(정의하다) 키워드를 이용해서 함수 정의

def 함수이름(매개변수):
	<수행할 명령>
    ...
    return 반환값

- 함수의 입력

매개변수를 이용해서 함수 내부로 값을 전달

def 함수이름(매개변수):
	<수행할 명령>
    ...
    return 반환값

- 함수 속 명령 작성

같은 들여쓰기를 통해 명령 작성

def 함수이름(매개변수):
____<수행할 명령>
____...
____return 반환값

- 함수의 반환(출력)

return을 이용해서 함수 외부로 값을 전달

def 함수이름(매개변수):
	<수행할 명령>
    ...
    return 반환값

- 왜 반환이 필요할까?

함수 내부에서 일어난 일은 함수 외부에서 알 수 없다!

-> 반환을 통해 외부로 전달!

def plus(a,b):
	c = a+b
    return c
print(plus(3,4))
def plus(a,b):
	c = a+b
    return c
print(7)



  • 전역 변수와 지역 변수

- 함수와 변수

왜 x가 출력 되지 않을까?

함수 안에서 일어난 일은 함수 밖에 영향을 끼치지 않는다!

def my_func(a):
	x = "Hi!"
    print(a)
a = 3
my_func(a) # 3
print(x) # error!

- 전역 변수

어디서든지 사용할 수 있는 변수 -> 함수 밖에서 정의된 변수

x = "Hi!"
def my_func():
    print(x)
my_func() # Hi!
print(x) # Hi!

- 지역 변수

특정 구문(for문, 함수, ...) 안에서 정의한 변수

변수를 정의한 범위에서만 사용이 가능!

def my_func(a):
	x = "Hi?"
    print(x)
my_func() # Hi?
print(x) # error



  • Method(메서드)

- 메서드(Method)

특정 자료에 대해 특정 기능을 하는 코드

my_list = [1,2,3]
my_list.append(4)
my_list.count(2)
my_list.pop()

- 함수 vs 메서드

함수는 특정 기능을 한다.

(매개변수를 이용해 자료를 전달해준다)

my_list = [1,2,3]
len(my_list)
sum(my_list)
min(my_list)

메서드는 특정 자료와 연관 지어 기능을 한다.

(자료 뒤에 .을 찍어 사용한다

my_list = [1,2,3]
my_list.sort()
my_list.pop()
my_list.clear()







  • 실습문제1. 네버랜드

    대기시간을 다음의 조건에 맞게 정렬하는 함수 neverland()를 작성하라

    • 대기시간이 가장 짧은 놀이기구부터 오름차순으로 놀이기구를 탄다
    • 단, 인덱스 2에 해당하는 놀이기구는 유진이가 꼭 타고 싶어하는 놀이기구이기에 대기시간에 상관없이 가장 먼저 탄다
    • 인자 : 리스트 queue
    • 반환값 : 주언진 조건에 맞게 정렬된 리스트
      %대기시간이 같은 놀이기구는 없음
# 대기시간이 담긴 리스트가 인자로 주어지면 조건을 만족하도록
# 타야하는 대기시간의 순서가 담긴 리스트를 반환하는 함수 neverland()를 작성해봅시다.
def neverland(a):
    x = a[2]
    a.sort()
    a.remove(x)
    a.insert(0, x)
    return a

# 확인을 위한 코드입니다.
# 대기시간이 담긴 리스트 queue를 자유롭게 수정해보세요!
queue = [30, 10, 20, 50, 40, 60,80,100]
print(neverland(queue))
  • 실습문제2. 비밀번호 486

    • 주어진 조건에 맞는 비밀번호를 만들어주는 함수 yoonHa()를 작성

      숫자 | 문자열
      4 | love
      8 | smile
      6 | kiss

    인자 : 숫자 nums
    매개변수 : 숫자 nums
    반환값 : 변환한 비밀번호 문자열

# 비밀번호를 만들어주는 함수 yoonHa()를 만들어봅시다.
def yoonHa(a):
    yh_dic = {4:"love", 8:"smile", 6:"kiss"}
    str1 = ""
    for i in range(len(a)):
        if  a[i]=="4":
            str1 = str1 + yh_dic[4]
        elif a[i]=="8":
            str1 = str1 + yh_dic[8]
        elif a[i]=="6":
            str1 = str1 + yh_dic[6]
    return str1

# 채점을 위한 코드입니다. 이를 수정하지 마세요!
nums = input()
print(yoonHa(nums))
profile
개발자 핏자의 로그들

0개의 댓글