본문 바로가기
파이썬

함수

by Mostlove 2024. 5. 10.
728x90
반응형

함수의 활용

팩토리얼 (Factorial)

n! = n * )n-1) * (n-2) * ...*1

피보나치 수열

#메모 변수를 만듭니다.
dictionary = {1:1,2:1}
#함수를 선언합니다.
def fibonacci(n):
    if n in dictionary:
        #메모가 되어 있으면 메모된 값을 리턴
        return dictionary[n]
    else:
        #메모가 되어 있지 않으면 값을 구함
        output = fibonacci(n-1) + fibonacci(n-2)
        dictionary[n] = output
        return output

#함수 호출
print(fibonacci(10))
print(fibonacci(20))
print(fibonacci(30))
print(fibonacci(40))
print(fibonacci(50))

함수 고급

튜플(Tuple)

-함수와 함께 많이 사용되는 리스트와 비슷한 자료형 

-한번 결정되 요소를 바꿀 수 없다는 점이 리스트와 다름 

람다(Lambda)

-매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거롭고 코드 낭비라 생각될 때 ㅎ마수를 간단하고 쉽게 선언하는 방법

-1회용 함수를 만들어야 할 때 많이 사용함

 

람다란? ->간단한 함수를 쉽게 선언하는 방법

lamda 매개변수 : 리턴값

함수를 매개변수로 전달하는 대표적인 표준 함수 

map() 함수 

리스트의 요소를 함수에 넣고 리턴된 값으로 새로운 리스트를 구성함

map(함수, 리스트)

filter() 함수 

리스트의 요소를 함수에 넣고 리턴된 값이 True인것으로 , 새로운 리스트를 구성함

filter(함수, 리스트)

파일 처리 

파일 열고 닫기

open() 함수 

파일 객체 = open(문자열: 파일경로, 문자열: 읽기 모드)

모드에 다음을 지정할 수 있음

closed()함수 

파일 객체.close()

file = open("basic.txt","w")
file.write("Hellow world")
file.closed()

 

with 키워드 

조건문과 반복문이 들어가다 보면 파일을 열고 나서 닫지 않는 실수를 하는 경우가 있음

with구문 종료 시 파일을 자동으로 닫음

with open(문자영: 파일 경로, 문자열: 모드) as 파일 객체 : 

       문장

with open("basic.txt","w") as file:
    file.write("Helloe Python Programming...!")

텍스트 읽기 

read() 함수 

파일 객체.read()

with open("basic.txt","r") as file:
    contents = file.read()
    print(contents)

텍스트 한줄 씩 읽기

CSV, XML, JSON 방법 등으로 텍스트를 사용하여 데이터를 구조적으로 표현함

텍스트 한줄씩 읽기

랜덤하게 1,000명의 키와 몸무게 만들기 

#랜덤한 숫자를 만들기 위해 가져옵니다.
import random
#간단한 한글 리스트를 만듭니다.
hanguls = list("가나다라마바사아자차카타파하")
#파일을 쓰기 모드로 엽니다.
with open("info.txt","w") as file:
    for i in range(1000):
        #랜덤한 값으로 변수를 생성 합니다.
        name = random.choice(hanguls) + random.choice(hanguls)
        weight = random.randrange(40,100)
        height = random.randrange(140,200)
        #텍스트를 씁니다.
        file.write("{}, {}, {}\n".format(name, weight, height))

텍스트 한 줄식 읽기 

데이터를 한 줄씩 읽어 들일 때는 for 반복문을 다음과 같이 사용함

for 한줄을 나타내는 문자열  in 파일 객체:

     처리

with open("info.txt","r") as file:
    for line in file:
        #변수를 선언합니다.
        (name, weight, height) = line.strip().split(". ")
        #데이터가 문제없는지 확인합니다 : 문제가 있으면 지나감
        if(not name) or (not weight) or (not height):
            continue
        #결과를 계산합니다.
        bmi = int(weight)/((int(height)/100)**2)
        result = ""
        if 25<=bmi:
            result = " 과체중"
        elif 18.5<= bmi:
            result = "정상 체중"
        else :
            result = "저체중"
        #출력 합니다
        print('\n'.join(["이름: {}","몸무게: {}","키: {}","BMI: {}","결과: {}"])
        .format(name, weight, height, bmi, result))
        print()
반응형

'파이썬' 카테고리의 다른 글

컬랙션 자료형  (1) 2024.05.16
예외처리  (0) 2024.05.16
함수  (0) 2024.05.10
범위 자료형과 반복문  (0) 2024.05.09
반복문  (0) 2024.05.03