python - 함수

nahye·2021년 5월 10일
0
test = [["kim", "english", 99],["Hong","math",88],["Park", "history",55]

test[-2][1:-1] #['math']
   #참조 #슬라이싱
test[-2][1:-1][0:-1] #"mat" => []

test[-2][1:-1] #['math']
슬라이싱할 때
끝의 -1은 포함이 안되니까 1만 포함이 됨

```

test = [["kim", "english", 99],["Hong","math",88],["Park", "history",55]]

print(test[-2][1:-1]) #['math']
   #참조 #슬라이싱
print(test[-2][1:-1][0:-1]) #"mat" => []
# list를 슬라이싱 하면 결과도 list가 된다.
#그래서 빈 리스트가 나옴

# 글자를 뽑아낼때는 슬라이싱이 아니고 인덱스로 접근하면 된다
# 문자열 슬라이싱하면 문자열 나옴
print(test[-2][1][0:3])
print(test[1][1][0:1])

리스트 슬라이싱하면 리스트 나오고(문자열 안 나옴)
문자열 슬라이싱하면 문자열 나온다.


  1. 파이썬 함수를 구현 할 때 시 인수가 고정되지 않을 때 사용하는 사전 형식의 키워드 인수를 사용하는 표현이 올바른 것을 고르시오. 3번
    def addmany(a, b, ):
    def add_many(a, b, args):
    def add_many(a, b, **args):
    def add_many(
    a, *b):

함수

함수의 정의

  • 특정의 기능을 구현하기 위하여
    관련된 여러 개의 실행문을 묶어 놓은 코드를 말한다.
  • 프로그램에서 반복 사용되는 부분을 함수로 정의하면 코딩량을 줄일 뿐만 아니라 디버깅도 용이해진다.
  • 잘 만들어진 함수는 여러 다른 프로그램에서도 재사용이 가능하다.
  • 파이썬에서 함수는 원하는 기능을 함수로 만들어 모듈화해서 구현하고 필요한 곳에서 import하여 사용할 수 있다.

함수의 종류

  • 내장(bulit-in)함수 (기본함수)
  • 라이브러리 or 패키지 함수 -import필요
  • 사용자 정의 함수

내장(bulit-in)함수 (기본 함수)

print(sum[1,2,3,4])

10 출력됨
함수는 변수처럼도 사용가능

  • 파이썬
  • 자주 사용하는
    • sum
    • sorted(반복가능한데이터, key =None(생략가능), reverse = False(생략가능))
      • 함수는 반복가능한데이터를 입력 받아서

print(sorted([4,1,2,3]))
print(sorted([4,1,2,4], reverse=True))
print(sorted(["aaa", "cccc", "bb", "dddd"]))
print(sorted(["aaa", "cccc", "bb", "dddd"], key=len)) # 오름차순 출력
print(sorted(["aaa", "cccc", "bb", "dddd"], key=len, reverse=True))
#오름차순인데 reverse해서 내림차순 
  • len
    • 객체가 가지고 있는 요소 개수
  • min
  • map(함수, 반복 가능한 자료형)
    • map은 입력받은 자료형의 각 요소가 함수 f에 의해 수행된 결과를 묶어서 리턴하는 함수이다.
    • ex)
def exp_2(a): # a는 형식매개변수
	return a*a
    
print(list(map(exp_2, [1,2,3]))) 
# 실행결과 [1,4,9]

exp_2 함수 먼저 실행해 요소를 함수에 돌림
값을 list 타입으로 바꿔줌

자동반복은 map에 의해서 되는 것
map이 함수를 자동호출하도록 설정됨!
map Type인데

  • open(파일명, [mode])
    • 파일명에 접근할 수 있는 파일 객체를 반환하는 함수이다.

    • mode가 생략되면 읽기 전용모드(r)로 파일 객체를 만들어 반환하여 mode는 다음과 같다.

      ex) fp = open('test.txt', 'r')

text 모드가 기본모드가 된다.

라이브러리 or 패키지 함수

  • 파이썬에서는 함수들을 기능별로 패키지 혹은 모듈에 포함

    numpy 설치

  • 라이브러리나 모듈에 존재하는 함수를 사용하기 위해서

    형식 1


    형식 2
    모듈명 없이 사용하기 편함

    import *



사용자 정의 함수

  • 사용자가 필요로 하는 기능을 직접 만들어 사용하는 함수를 말한다.
  • 정의된 함수는 반드시 호출하는 문장을 통해서 실행이 된다.
  • 호출된 함수는 모든 내용을 수행한 다음 호출한 문장으로 복귀한다.
  • 형식)
def 함수명(파라메터1, 파라메터2...) #이 파라메터는 형식매개변수! 
		함수에서 수행할 코드
        [return 반환값]
  • ex1)

    함수명에 사용되는 변수 : 형식매개변수(가인수)
    호출할 때 사용되는 변수 : 실매개변수(실인수)

    a,b는 형식매개변수
    10,20은 실매개변수
    실매개변수가 형식매개변수에 들어가
    return값 수행

print(add(10)) 때문에 에러
b가 전달받지 않은 파라미터가 없기 때문!

키워드 매개변수 : 이름을 가지고 있는 것을 찾아감!
키워드를 지정해주면 자리 상관없이 이름에 해당되는 곳에 들어간다.

  • 정의되지 않은 매개변수

    	-

for문은 2번 반복됨

for문 3번 반복됨
키워드 파라미터를 dict로 만들어 전달함

hap = 10 + b[mbc] + b[kbs]
= 10 + 20 + 30

첫번째 print

두번째 print

def add(*b, **c)로 바꿔도 가능

이렇게도 가능
*있는 건 없으면 생략이 가능하다!

error 나오지 않음

print(10,20,sep=",", end="\n")

숙제는 두 숫자 입력 받아서 min, max 만드는 거 함수로 만들기

이거 함수로 만들기

내 풀이:

답:

def input_proc():
    num1 = int(input("첫번째 숫자를 입력하시오 => "))
    num2 = int(input("두번째 숫자를 입력하시오 => "))

    if num1 > num2:
        min_num = num2
        max_num = num1
    else:
        min_num = num1
        max_num = num2

    print()
    return min_num, max_num

소수 출력하는 거 함수로 만들기

내 풀이:

답:

def process_proc(min_num, max_num):
    cnt = 0
    if min_num == 1:
        min_num == 2

    for i in range(min_num, max_num + 1):
        for j in range(2, i):
            if i % j == 0:
                break
            else: # 소수인 경우 수행
                print("%5d" % (i), end="")
                cnt += 1 # 소수의 갯수 카운트
                if cnt % 10 == 0: # 소수의 갯수가 10의 배수면 줄바꿈 수행
                    print()
    return cnt

총 소수 개수 출력하는 함수 만들기

내 풀이:

답:

def output_proc(cnt):
    if cnt % 10 != 0:
        print()

    print("총소수의 갯수 = %d" % (cnt))




if __name__ == "__main__":

    min_num, max_num = input_proc()
    cnt = process_proc(min_num, max_num)
    output_proc(cnt)
profile
Slow and steady wins the race

0개의 댓글