◦ Algorithm/Python

[점프투파이썬] 함수, 사용자 입출력

밍블리s2 2021. 1. 29. 07:24

1. 함수의 입력값이 몇 개가 될지 모를 때

def 함수이름(*매개변수):
     수행할 문장
     …
>>> def add_many(*args):
	result = 0
	for i in args:
		result = result + i
	return result
        
>>>> result = add_many(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
>>>> print(result)
55

 

✔︎ 키워드 파라미터

 

매개변수 이름 앞에 **을 붙이면 매개변수는 딕셔너리가 되고 모든 key=value 형태의 결과값이 그 딕셔너리에 저장된다.

>>> def print_kwargs(**kwargs):
	print(kwargs)
    
>>> print_kwargs(a=1)
{'a': 1}

>>> print_kwargs(name='foo', age=3)
{'age': 3, 'name': 'foo'}

 

 

2. 매개변수에 초깃값 미리 설정하기

def say_myself(name, old, man=True):
	print("나이 의름은 %s입니다." % name)
    print("나는 %d살 입니다." % old)
    if man:
    	print("남자입니다.")
    else:
    	print("여자입니다.")
        
say_myself("박응용", 27)
say_myself("박은선", 27, False)
나의 이름은 박응용입니다.
나는 27살 입니다.
남자입니다.

나의 이름은 박은선입니다.
나는 27살입니다.
여자입니다.

 

단, 초기화시키고 싶은 매개변수는 항상 맨 뒤쪽에 놓는다.

 

 

 

3. 함수 안에서 함수 밖의 변수를 변경하는 방법

1) return 사용하기

a = 1
def vartest(a):
	a = a + 1
    return a
    
a = vartest(a)
print(a)

 

2) global 명령어 사용하기

a = 1
def vartest():
	global a
    a = a + 1

vartest()
print(a)

 

하지만 프로그래밍 할 때 global 명령어는 사용하지 않는 것이 좋다. 함수는 독립적으로 존재하는 것이 좋기 때문이다.

 

 

4. lamda

- 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할.

- 보통 함수를 한 줄로 간결하게 만들 때 사용.

- 람다 예약어로 만든 함수는 return 명령어가 없어도 결과값을 돌려준다.

- lambda 매개변수 1, 매개변수 2, … : 매개변수를 사용한 표현식

>>> add = lambda a, b: a+b
>>> result = add(3, 4)
>>> print(result)
7


>>> def add(a, b):
	return a + b
>>> result = add(3, 4)
>>> print(result)
7

 

>>> myList = [lambda a, b: a + b, lambda a, b: a * b]
>>> print(myList[0](1, 2))
3

- 함수 이름을 정하지 않아도 된다.

- 람다는 List 안에 혹은 변수 안에 넣어서 사용 가능.

 

 

5. 사용자 입력

input은 입력되는 모든 것을 문자열로 취급한다.

>>> a = input()
Life is too short. You need Python.
>>> a
'Life is too short. You need Python.'

 

>>> number = input("숫자를 입력하세요: ")
숫자를 입력하세요:
>>> number = input("숫자를 입력하세요: ")
숫자를 입력하세요:3

>>> print(number)
3

 

 

6. print

큰 따옴표()"로 둘러싸인 문자열은 + 연산과 동일

>>> print("Life" "is" "too short")
Lifeistoo short

>>> print("Life"+"is"+"too short")
Lifeistoo short

 

문자열 띄어쓰기는 콤마로 한다

>>> print("Life","is","too short")
Life is too short

 

한 줄에 결과값 출력하기

: 매개변수 end를 사용해 끝 문자를 지정해야 한다.

>>> for i in range(10):
		print(i, end=' ')
        
0 1 2 3 4 5 6 7 8 9

 

출력값 사이에 공백 대신 다른 기호 출력하기

: print 함수의 sep 인자로 '/' 출력.

>>> print('naver', 'kakao', 'daum', 'coupang', sep='/')
naver/kakao/daum/coupang

 

 

예제1. 

s = "hello"
t = "python"

 

두 변수를 이용하여 아래와 같이 출력해보시오.

 

실행 예: hello! python

 

정답 ↓

더보기

s = "hello"

t = "python"

print(s+"!",t)