Coding/언어-Python

[점프투] #3. 4장 함수

꿀딴지- 2022. 8. 31. 14:32

https://wikidocs.net/23

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