<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이 없으면 지역변수
글로벌로 지정하면 전역변수로 되기 때문에 똑같은 이름을 못써
지역 변수 : 함수 내에서 선언한 변수로, 해당 함수가 실행되는 동안에만 존재하며 실행이 끝나면 사라진다.
전역 변수 : 프로그램 내 어디에서나 사용 가능한 변수