728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다. 이 코드로는 파이참에서도 실행이 가능하다.

 

펙토리얼을 구현하는 방법은 크게 반복문을 이용하는 것과 재귀함수를 이용하는 것이 있다.

 

오늘 이 두가지 방법을 구현해 보았다!

 

1. 반복문 이용하기

def factorial1(n):
    fact = 1
    for i in range(1, n+1):
        fact = fact*i
    return fact
n=5    
print('{}! = {}'.format(n,factorial1(5)))

 

2. 재귀함수 이용하기

def factorial2(n):
    if n<=1: # 종료조건
        return 1
    else :
        return n* factorial2(n-1) #n*(n-1)!
n=5
print('{}! = {}'.format(n,factorial2(5)))

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다. 이 코드로는 파이참에서도 실행이 가능하다.

 

가변 인자를 가지는 함수에 대해 알아보자

def foo(*args):
    print('인자의 갯수 : ',len(args))
    print('인자들 : ',args)

 

foo(10,20,30)

 

가변 인자를 가지는 함수를 이용한 합계 구하기

def sum_nums(*numbers):
    result=0
    for n in numbers:
        result+=n
    return result
sum_nums(10,20,30) # 60
sum_nums(10,20,30,70,11) #141

728x90
반응형
728x90
반응형

* 주피터 노트북으로 실행하였다!

 

직사각형과 원의 면적을 구하는 함수

def func(shape, width=1, height=1, radius=1):
    if shape==0: # shape값이 0이면 사각형의 면적을 반환
        return width * height
    elif shape ==1: # shape값이 0이면 원의 면적을 반환
        return 3.14 * radius **2

 

 

추가 문제로  shape이 2가 들어오면 근의 공식의 결과를 반환하는 기능도  추가 하였다!

def func(shape, width=1, height=1, radius=1,a=1,b=1,c=1):
    if shape==0: # shape값이 0이면 사각형의 면적을 반환
        return width * height
    elif shape ==1: # shape값이 0이면 원의 면적을 반환
        return 3.14 * radius **2
    elif shape==2:
        r1= (-b + (b**2-4*a*c)**0.5)/(2*a)
        r2 = (-b - (b**2-4*a*c)**0.5)/(2*a)
        print("{} 또는 {} 입니다.".format(r1,r2))

728x90
반응형
728x90
반응형

* 주피터 노트북에서 실행하였다.

 

def get_root(a,b,c):
    r1=(-b +(b**2 - 4*a*c)**0.5)/(2*a)
    r2=(-b -(b**2 - 4*a*c)**0.5)/(2*a)
    return r1,r2
    
result1, result2 = get_root(a=7, b=13, c=6)
print(result1) #-0.8571428571428571

result1, result2 = get_root(a=7, c=6,b=13)
print(result1) #-0.8571428571428571

728x90
반응형
728x90
반응형

1. n의 배수 m개를 반환

def times_input(a,b):
    result=[]
    for i in range(1,b+1):
        result.append(a*i)
    return result
a=int(input("a를 입력하세요."))
b=int(input("b를 입력하세요."))
times_input(a,b)

 

def times_input(a,b):
    if b%3==0: return '3의 배수를 입력하셨어요 다시 입력하세요.'
    result=[]
    for i in range(1,b+1):
        result.append(a*i)
    return result
a=int(input("a를 입력하세요."))
b=int(input("b를 입력하세요."))
times_input(a,b)

while문으로 하면 3의배수를 적기전까지 계속 반복할 것같은데 아직 거기까진 구현하지 않았다!

 

2. n의 배수 m까지 구하기

def math(n,m):
    for i in range(1,m+1):
        if i %n==0:
            print(i)
n=int(input("n을 입력하세요."))
m=int(input("m을 입력하세요."))
math(n,m) 

728x90
반응형
728x90
반응형

# 피타고라스의 정리
밑면의 제곱은 밑변의 제곱 더하기 높이의 제곱
c **2 = a**2 + b**2
높이와 밑면을 파라미터로 받고 그 결과는 빗면의 길이를 반환하는 함수 작성
3,4를 집어 넣으면 5가 되면 로직이 맞음

 

이 코드는 math함수를 쓰지 않고 구현함!

 

def pita(a,b):
    c = (a**2 + b**2)**0.5
    print("높이는{}, 밑면은 {} 이므로 빗면의 길이는 {}입니다.".format(a,b,c))
    
a=float(input("삼각형의 높이를 입력해주세요."))
b=float(input("삼각형의 밑면을 입력해주세요."))
pita(a,b)     

 

728x90
반응형
728x90
반응형
def circle(r):
    pi=3.14
    radius = 2*pi*r
    area = r**2*pi
    print("반지름은 {} 이고 원의 둘레는 {} 원의 넓이는 {} 입니다.".format(r,radius,area))
    

r=float(input("반지름을 입력해주세요."))
circle(r)    

728x90
반응형
728x90
반응형

간단하게 구현을 해보면

a=1
b=2
c=-8
r1= (-b + (b**2-4*a*c)**0.5)/(2*a)
r2 = (-b - (b**2-4*a*c)**0.5)/(2*a)
print('해는 : ',r1, '또는 ',r2)

이걸 기반으로 근의 공식 함수를 만들어 보았다.

 

def root_calc(a,b,c):
    D = (b**2) - (4*a*c)
    if D>0:
        r1= (-b + (b**2-4*a*c)**0.5)/(2*a)
        r2 = (-b - (b**2-4*a*c)**0.5)/(2*a)
        print("{} 또는 {} 입니다.".format(r1,r2))
    elif D==0:
        x = -b / 2*a
        print("중근입니다. 해는 {}입니다.". format(x))
    else:
        r1= (-b + (b**2-4*a*c)**0.5)/(2*a)
        r2 = (-b - (b**2-4*a*c)**0.5)/(2*a)
        print("허근입니다. 해는 {} 또는 {} 입니다.".format(r1,r2))
        
a=int(input("a를 입력해주세요."))
b=int(input("b를 입력해주세요."))
c=int(input("c를 입력해주세요."))
root_calc(a,b,c)   

허근은 안될줄 알았는데 파이썬에서 제공이 가능하나보다!

 

허근일 때

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다. 이 코드로는 파이참에서도 실행이 가능하다.

 

import numpy as np
import pandas as pd
def print_star():
    print("==========")
print_star()
print_star()

함수를 호출하면 저장된 값이 반환된다.

def print_plus():
    print("++++++++++++")
print_star()
print_plus()
print_plus()
print_star()

def sum(a,b):
    return a+b
sum(7,6)

 

문제

1) 함수 호출을 하는데 파라미터로 숫자를 받고 그 숫자만큼 반복해서 출력하기

def star(n):
    for i in range(n):
        for j in range(i+1):
            print("*",end="")
        print('')
        

2. input으로 2개의 값을 받아서 정수로 변환하고 그 값을 함수 호출시 전달

def sum1(x,y):
    print(x+y)


x = int(input("정수 입력하세요"))
y = int(input("정수 입력하세요"))
sum1(x,y)

728x90
반응형
728x90
반응형

* 본 포스팅은 주피터 노트북을 이용하였다. 이 코드로는 파이참에서도 실행이 가능하다.

 

1. while 문을 이용하여 총합계 구하기

arr = [1,2,3,3,7,9,23]
sum=0
i=0
while i < len(arr):
    sum = sum +arr[i]
    i += 1
print(sum)

 

2. list comprehension(리스트 내포)

[출력표현식 for 요소 in 입력Sequence [if 조건식]]

예제를 풀어보자

arr = [1,2,3,3,7,9,23,100,4,12,7]
arr1=[i*i for i in arr] #list comprehension
print(arr1)


이번에는 기존의 list 예제와 list comprehension을 비교해보자

문제는 arr 리스트 안에 짝수만 새로운 리스트(arr1)에 넣는 것이다.

 

기존 list

arr = [1,2,3,3,7,9,23,100,4,12,7]
arr1=[]
sum=0
i=0
while i < len(arr):
    if arr[i]%2==0:
        arr1.append(arr[i])
    i += 1
print(arr1) #[2, 100, 4, 12]

list comprehension

arr = [1,2,3,3,7,9,23,100,4,12,7]
arr2 = [i for i in arr if i%2==0]
print(arr2)

 

 

728x90
반응형

+ Recent posts