◦ 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)