4주차 기본과제 및 추가과제
4주차 기본과제 및 추가과제
기본 과제
p. 287 [직접 해보는 손코딩: 범위 내부의 정수를 모두 더하는 함수] 실행 후 코드가 입력된 화면 및 실행 결과 화면 캡처하기
추가 과제
매개변수, 기본 매개변수, 가변 매개변수에 대해 간략하게 정리하기
일반 매개변수
함수에 고정된 갯수의 값을 전달하여 사용할때 사용
1
2
3
4
5
6
7
8
# def 함수이름(매개변수,매개변수2):
# 문장
def print_3_times(value,n):
for i in range(n):
print(value)
print_3_times("냐옹냐옹",3) #냐옹냐옹 3번 반복
기본 매개변수
값이 전달되지 않아도 기본값을 할당하여 사용가능함
1
2
3
4
5
6
7
8
# def 함수이름 (매개변수,가변매개변수, 기본 매개변수 순으로 사용)
# 문장
def print_n_times(*values, n=2):
for i in range(n):
for value in values:
print(value)
print_n_times("냐옹냐옹","혼공단","정한민") #냐옹냐옹,혼공단,정한민 2번 반복
가변 매개변수
갯수 제한없이 함수에 값을 전달할때 사용함
1
2
3
4
5
6
7
8
# def 함수이름(매개변수,매개변수2,*가변매개변수):
# 문장
def print_3_times(n,*values):
for i in range(n):
for value in values:
print(value)
print_3_times(3,"냐옹냐옹","혼공단","정한민") #냐옹냐옹,혼공단,정한민 3번 반복
궁금증 해결코너
튜플은 요소가 변경이 불가능 하지만 교환은 가능한걸까용?
내용물을 교환하는게 아니라 새로운 튜플값을 만들어서 참조하여 값을 변경한다고 합니다.
좀더 자세히 보자면
1
2
3
4
5
6
7
#간단한 튜플 교환
a = 1
b = 2
a, b = b, a # 튜플 교환
print(a, b) # 2 1
1
2
3
4
5
6
7
8
9
#간단한 튜플 교환
a = 1
b = 2
temp = (2, 1) # 임시 튜플이 만들어짐
a = temp[0] # a = 2
b = temp[1] # b = 1
print(a, b) # 2 1
이렇게 임시로 만든 값을 받아감으로써 교환이 이루어집니다.
어라? 그러면 어째 튜플이 불변하다고 하는건가요? 어쨋든 교환하니까 튜플의 값은 변한거 아닌가?
정확하게 설명하자면 튜플의 불변성은 딕셔너리처럼 메모리 주소를 고정해야하기 때문에 길이 순서 요소등이 고정이 되어있는것을 뜻하며
교환의 경우 새로 튜플을 만들고 그 메모리 주소를 받아들이는 것과 같다고 생각하면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
t = (1, "hello", 3)
print("튜플 전체 메모리 주소:", id(t))
print("첫 번째 요소 (1) 메모리 주소:", id(t[0]))
print("두 번째 요소 ('hello') 메모리 주소:", id(t[1]))
print("세 번째 요소 (3) 메모리 주소:", id(t[2]))
# 튜플을 새로 생성
t = (1, "world", 3)
print("\n[튜플 재할당 후]")
print("튜플 전체 메모리 주소:", id(t))
print("두 번째 요소 ('world') 메모리 주소:", id(t[1]))
튜플 전체 메모리 주소: 140415600020672
첫 번째 요소 (1) 메모리 주소: 11757992
두 번째 요소 ('hello') 메모리 주소: 140415599728064
세 번째 요소 (3) 메모리 주소: 11758056
[튜플 재할당 후]
튜플 전체 메모리 주소: 140415600284032
두 번째 요소 ('world') 메모리 주소: 140415599735408 #완전 새로운 메모리값을 받음
결론적으로 교환의 경우 튜플의 값이 변한것이 아니라 메모리 주소값이 변화한것이니 불변하다 라고 말할 수 있는겁니다.
지각쟁이의 사죄인사
또 늦어버린 지각쟁이 인사 올립니다.
아니 이눔아 왜 또 늦었느냐하시면….
노비인생엔 월화수목금금금만이 존재하여 못했습니다…. ㅠㅠ….
남은 2주 동안에도 잘 올릴지는 모르겠지만 최선을 다해보겠습니다.
이제 슬슬 날이 풀리기 시작하지만 오히려 지금이 더 감기에 걸리기 쉬운 계절입니다.
혼공단 그리고 족장님도 건강하시길 바랍니다.
p.s 이제 슬슬 책 다봤는데 뭐해야하지? 라는 생각이 드네요 자바스크립트는 뭐라도 했던거 같은데 파이썬은 진짜 뭐해야될까요 으음…