04장. 프로그램의 입력과 출력은 어떻게 해야할까
04-1 함수
- 파이썬 함수 구조
def 함수명(매개변수):
<수행할 문장1>
<수행할 문장2>
- 매개변수(parameter)와 인수(argument)
- 매개변수 : 함수에 입력으로 전달되는 값
- 인수 : 함수를 호출할 때 전달하는 입력 값
1. 가변인수 함수 : 여러개의 입력값을 받는 함수 *매개변수 , 입력값을 모아서 튜플로 만들어 줌
def add_many(*args):
result = 0
for i in args:
result = result + i
return result
2. 언패킹 사용하기 : 리스트나 튜플앞에 애서터리스크(*)를 붙여서 함수에 넣어줌
x = [10, 20, 30]
print_numbers(*x)
print_numbers(*[10, 20, 30])
def print_numbers(a, *args):
print(a)
print(args)
print_numbers(1)
print_numbers(1, 10, 20)
print_numbers(*[10, 20, 30])
3. **키워드 파라미터 kwargs (매개변수 앞에)
매개변수 kwargs는 딕셔너리가 되고 모든 key=value 형태의 결괏값이 그 딕셔너리에 저장된다.
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(a=1) #{'a': 1}
- 매개변수에 초깃값 설정하기
- 초기화시키고 싶은 매개변수를 항상 뒤쪽에 두어야 함
def say_myself(name, old, man=True):
print("나의 이름은 %s 입니다." % name)
print("나이는 %d살입니다." % old)
if man:
print("남자입니다.")
else:
print("여자입니다.")
say_myself("박응용", 27)
say_myself("박응용", 27, True)
- 함수 내 변수의 범위
- 파이썬변수는 네임스페이스에 저장됨
- locals함수를 사용하면 현재 네임스페이스를 딕셔너리 형태로 출력가능
locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'x': 10}
- 함수에서 전역변수 사용하기 : global
- 함수에서 지역변수 사용하기 nonlocal
- Lambda(람다)
- 함수를 생성할 떄 사용하는 예약어, def와 동일역할이며, 함수를 한줄로 간결하게 만들 때 사용
- return 명령어가 없어도 결괏값을 돌려준다.
- lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
04-2 사용자 입력과 출력
- 사용자 입력(input): 입력되는 모든 것을 문자열로 취급
- 출력(print)
#한줄에 결괏값 출력하기 for i in range(10): print(i, end=' ')
04-3 파일 읽고 쓰기
1. 파일 쓰기 :
- 파일경로 설정방법 : 슬래시(/), 역슬래시(\\), 문자열 앞에 r(Raw String)을 덧붙여 사용
f = open("fileNmae.txt",'w') # r:읽기모드, w:쓰기모드, a:추가모드
data = "%d번째 줄입니다.\\n" % i
f.write(data)
f.close()
2. 파일 읽기(readline, readlines, read)
# readline_all.py
f = open("C:/doit/새파일.txt", 'r')
while True:
line = f.readline()
if not line: break
print(line)
f.close()
f = open("C:/doit/새파일.txt", 'r')
lines = f.readlines()
for line in lines:
print(line)
f.close()
f = open("C:/doit/새파일.txt", 'r')
data = f.read()
print(data)
f.close()
3. 파일 한번에 열고 닫기(with 블록)
with open("foo.txt", "w") as f:
f.write("Life is too short, you need python")
'Coding > 언어-Python' 카테고리의 다른 글
[점프투] #4. 5장 클래스와 객체 (0) | 2022.08.31 |
---|---|
[점프투] #2. 3장 제어문 (0) | 2022.08.31 |
[점프투] #1. 2장 자료형 (0) | 2022.08.31 |
[점프투] 점프투파이썬 intro (0) | 2022.08.31 |