점프투파이썬 스터디 4장 함수 이론 복습

2024. 2. 20. 02:47학습/팀스터디

 

01 함수 인사이트


*args : 튜플 형태로 입력을 받겠다.
**kwargs : 딕셔너리 형태로 입력을 받겠다.
>>> def add_and_mul(a, b):
>>> return a+b, a*b
리턴 값은 하나여야 하는데 출력값이 어떻게 될까?

튜플로 입력되어서 (a+b, a*b)로 나온다.
질문) man=True 값을 False 로 바꾸면
if man: 자체가 남자가 참인 값 자체가  거짓이 되서 그런건가?
왜 man=False라고 명시하지 않는건지?
물론 수정한다면? 이라는 상황이긴 했음. -> 해결함. 사진 참고!

 

a.pop()가 값을 끄집어내는 점은 a.append()와 비슷하지만,
print(a.append(3))하면 None으로 return값이 없다.

[참고]
튜플은 요솟값을 변경할 수 없기 때문에 sort, insert, remove, pop과 같은 자체변경 내장함수가 없다.

[참고]
문자열 upper, lower, join, strip, replace, split 함수 모두 자체변경이 아니라 변경된 값을 return한다.

[예시]
>>> b = [1,2,3]
>>> def vartest2(b):
>>>         b = b.append(4)
>>> vartest2(b)
>>> print(b)
b = [1,2,3,4] 가 되는 이유는?

- b는 일단 가변형 자료형인 리스트이다. 리스트를 append를 이용해 자체 변형하였다. 때문에 return값이 none이어도 변형된 리스트를 출력하는 것이다.

- 불변형인 문자형을 파라미터로 넣고 a = a+1하고나서 return이 없으면 함수 값이 날라가고 전역변수가 도출되는 것을 이해해야 한다.

 

02 입출력 인사이트


- input() 으로 숫자를 입력해도 str(문자형)으로 출력된다.
- 파일경로 쓸 때 역슬래시 쓰려면 두개를 이어쓴다.
>>> while True:
>>>        data = input()
>>>        if not data:
>>>                break

>>>        print(data)

- if 문 자체가 'True' 여야 'break' 가 발동된다는 조건은 변하지 않음.
- 'not data'가 'True'일려면 'data'가 'False'여야 돼. 즉, 값이 없어야 발동함.
- 이때 'input()'은 'str'을 도출하니까 '0'을 넣어도 안 끝난다는 것을 이해해야만 한다.