<1>

어제 내용 복습

tuple : 여러개를 반환, 요소 자체 변경이 불가하고 추가 /삭제도 불가하다.

tuple에는 대입 연산자를 사용할 수 없다.

다이렉트로는 안되지만 우회적으로 하는 건 가능(요소로 리스트를 넣어준다)

 

키를 같이 제공하는 이유가

dic은 키와 값을 같이 저장

tuple list는 순서가 있어

 

<꼭 알아야 하는 것>

기본 : 변수, 연산자, 제어문

응용 : 리스트

 

나중에 유지보수를 어떻게 편하게 할 수 있을까 이것도 봐야해

모듈을 부품이라 생각해

 

함수를 사용하는 이유는 자주 사용하는 코드를 반복적으로 작성하지 않고 모듈화하여

필요할 떄 호출해서 반복사용하는 방법

 

<함수사용방법>

* 함수 정의 :

def 함수명(파라메터 리스트):

     실행문1

     실행문2

* 함수 호출 : 

 

 

프로그램을 짜는 이유는 사용자들에게 판매하려고..

유즈케이스를 통해 기능들을 정의

함수 만들기 전에 필요한 기능과 변수들을 정리한 후

순서대로 만든다.

 

파라메터 0, 1, 2,,,

결과물 : 리턴값

 

함수이름 : 어떠한 기능을 수행하는지 알려주는 이름

값을 받아오려면 이런식으로 구현

def add(a, b):

     c = a + b

     #print(c)

      return(c)

 

외부로부터 값을 안 받아와도 되면 이런식으로 구현

def hello():

     print('hello')

호출을 하지 않으면 실행이 안돼

 

함수호출은 이름을 불러줘

만약 함수에 파라메터가 있다면 호출 시 그 값을 넣어줘

add(1, 2) 

 

함수를 호출하면 그 함수로 점프한다.

프로그램은 순서대로 실행됐지만 함수는 순서대로 진행하다가 함수로 점프됨

대입연산자는 우선순위가 나중이다

 

<2>

호출할떄 값을 넣어주는 걸 아규먼트

받는 걸 파라미터


# 파라메터로 단수를 받아 구구단 한단 출력하는 함수 정의, 호출, 반환값 없음

구구단 함수

def gugudan(dan):
    for i in range(1, 10):
        print(dan, ' * ', i, ' = ', dan * i)

gugudan(3)

3단을 출력

 

 

 

2-9단 구구단

for i in range(2, 10):
    gugudan(i)

이렇게 2단부터 9단까지 출력된다.

 

계싼기 만들기

def add(a, b):
    c = a + b
    return c

def minus(a, b):
    c = a - b
    return c

def multiple(a, b):
    c = a * b
    return c

def divide(a,b):
    c = a / b
    return c

x = 12
y = 3

print(x, ' + ', y, ' = ', add(x, y))
print(x, ' - ', y, ' = ', minus(x, y))
print(x, ' * ', y, ' = ', multiple(x, y))
print(x, ' / ', y, ' = ', divide(x, y))

 

def 더하기(a, b):#a, b:계산할 숫자 2개
    c=a+b
    return c

def 빼기(a, b):
    return a-b

def 곱하기(a, b):
    return a*b

def 나누기(a, b):#함수에서 아무값도 반환하지 않으면 None객체 전달됨
    if b!=0:
        return a/b


x = 6
y = 3
print(x,' + ', y, ' = ', 더하기(x, y))
print(x,' - ', y, ' = ', 빼기(x, y))
print(x,' * ', y, ' = ', 곱하기(x, y))
res = 나누기(x, y)
if res==None:
    print('0으로 나눌 수 없음')
else:
    print(x,' / ', y, ' = ', res)

 

<3>

약수

 

# 파라메터로 숫자를 받아서 그 숫자의 약수 출력하는 함수, 리턴값 없음
def 약수(num):
    print(num, '의 약수 : ', end='')
    for i in range(1, num+1):
        if num % i == 0:
            print(i, end=' , ')
    print()

x = int(input('num : '))
약수(x)

def 약수2(num):
    res = []
    for i in range(1, num + 1):
        if num % i ==0:
            res.append(i)
    return res

def 약수프린트(data):
    print(data[len(data) - 1], '의 약수 : ', end='')
    for i in data:
        print(i, end=' ,')
    print()

x = int(input('num : '))
d = 약수2(x)
약수프린트(d)

 

파이썬의 모든 변수는 값이 들어가는 게 아니라 참조값(주소값)이 들어가는 것

<4>

<점심>

<5>

지역변수는 가장 가까운 것부터 출력

없으면 그럼 전역변수에 있나.. 하고 확인하고 출력

 

만약 전역변수에도 없으면 에러가 나

함수안에 그 이름으로 만든 함수가 있다면 지역변수를 사용하고 없다면 전역변수를 사용한다.

 

지역변수는 어디든 사용이 가능하다.

전역변수는 그 함수 내에서만 사용이 가능하다.

 

읽기를 할때는 전역변수를 사용하면 되고, 단 전역변수 값을 수정하고자 하면 값을 할당하면 지역변수를 생성하므로 global num 이라고 위에 작성을 해줘야 한다.

 

global이 없으면 지역변수

글로벌로 지정하면 전역변수로 되기 때문에 똑같은 이름을 못써

지역 변수 : 함수 내에서 선언한 변수로, 해당 함수가 실행되는 동안에만 존재하며 실행이 끝나면 사라진다.

전역 변수 : 프로그램 내 어디에서나 사용 가능한 변수

 

+ Recent posts