관리자 글쓰기
코테용 파이썬 문법 정리3
2023. 11. 9. 17:26 - pingu-s

함수

 

def add(a, b):
  return a + b

print(add(3, 7))

 

동일한 함수를 return문 없이 작성할 수도 있다.

 

def add(a, b):
  print("함수의 결과:", a + b)

add(3, 7)

 

함수를 호출하는 과정에서 다음과 같이 인자(Argument)를 넘겨줄 때, 파라미터의 변수를 직접 지정해서 값을 넣을 수 있다.

 

def add(a, b):
  print("함수의 결과:", a + b)

add(b = 3, a = 7)

 

함수 안에서 함수 밖의 변수 데이터를 변경해야 하는 경우가 있다. 이때는 함수에서 global 키워드를 이용하면 된다. global 키워드로 변수를 지정하면, 해당 함수에서는 지역 변수를 만들지 않고, 함수 바깥에 선언딘 변수를 바로 참조하게 된다.

 

a = 0

def func():
  global a
  a += 1

for i in range(10):
  func()

print(a)

 

파이썬에서는 람다 표현식(Lambda Express)을 사용할 수 있다. 람다 표현식을 이용하면 함수를 매우 간단하게 작성하여 적용할 수 있다. 특정한 기능을 수행하는 함수를 한 줄에 작성할 수 있다는 점이 특징이다.

 

def add(a, b):
  return a + b

# 일반적인 add() 메서드 사용
print(add(3, 7))

# 람다 표현식으로 구현한 add() 메서드
print((lambda a, b: a + b)(3, 7))

 

입출력

 

파이썬에서 데이터를 입력받을 때는 input()을 이용한다. input()의 경우 한 줄의 문자열을 입력 받도록 해준다. 만약 파이썬에서 입력받은 데이터를 정수형 데이터로 처리하기 위해서는 문자열을 정수로 바꾸는 int() 함수를 사용해야 한다.

 

그리고 여러 개의 데이터를 입력받을 때는 데이터가 공백으로 구분되는 경우가 많다. 그래서 입력받은 문자열을 띄어쓰기로 구분하여 각각 정수형의 데이터로 저장하는 코드의 사용 빈도가 매우 높다. 이때는 list(map(int, input().split()))을 이용하면 된다.

 

list(map(int, input().split()))의 동작 과정을 알아보자. 가장 먼저 input()으로 입력받은 문자열을 split()을 이용해 공백으로 나눈 리스트로 바꾼 뒤에, map을 이용하여 해당 리스트의 모든 원소에 int() 함수를 적용한다. 최종적으로 그 결과를 list()로 다시 바꿈으로써 입력받은 문자열을 띄어쓰기로 구분하여 각각 숫자 자료형으로 저장하게 되는 것이다.

 

파이썬에서는 구분자가 줄 바꿈인지 공백인지에 따라서 다른 처리를 요구한다. 줄 바꿈이라면 int(input())을 여러 번 사용하면 되는데, 공백이라면 이렇게 사용해야 하므로 구분해서 알아야한다.

 

# 데이터의 개수 입력
n = int(input())
# 각 데이터를 공백으로 구분하여 입력
data = list(map(int, input().split()))

data.sort(reverse = True)
print(data)

 

공백으로 구분된 데이터의 개수가 많지 않다면, 단순히 map(int, input().split())을 이용하는 것도 가능하다.

 

# n, m, k를 공백으로 구분하여 입력
n, m, k = map(int, input().split())

print(n, m, k)

 

입력의 개수가 많은 경우에는 단순히 input() 함수를 그대로 사용하지는 않고 파이썬의 sys 라이브러리에 정의되어 있는 sys.stdin.readline() 함수를 이용한다. sys 라이브러리는 다음과 같은 방식으로 사용하여 input() 함수와 같이 한 줄씩 입력받기 위해 사용한다. sys 라이브러리를 사용할 때는 한 줄 입력을 받고 나서 rstrip() 함수를 꼭 호출해야 한다. readline()으로 입력하면 입력 후 엔터가 줄 바꿈 기호로 입력되는데, 이 공백 문자를 제거하려면 rstrip() 함수를 사용해야 한다.

 

import sys

# 문자열 입력받기
data = sys.stdin.readline().rstrip()
print(data)

 

출력을 할 때는 print()를 이용하여 출력을 진행할 수 있다. print()는 변수나 상수를 매개변수로 입력받아 이를 표준 출력으로 출력한다. print()는 각 변수를 콤마(,)로 구분하여 매개변수로 넣을 수 있는데, 이 경우 각 변수가 띄어쓰기로 구분되어 출력된다.

 

# 출력할 변수들
a = 1
b = 2

print(a, b)

 

 파이썬의 print()는 기본적으로 출력 이후에 줄 바꿈을 수행한다. 따라서 print()를 사용할 때마다 줄이 변경된다고 볼 수 있다.

 

# 출력할 변수들
a = 1
b = 2

print(a)
print(b)

 

일부 문제의 경우 출력할 때 문자열과 수를 함께 출력해야 되는 경우가 있다. 이 경우 단순히 더하기 연산자(+)를 이용하여 문자열과 수를 더하면 오류가 발생한다.

 

# 출력할 변수들
answer = 7

print("정답은 " + answer + "입니다.")

 

이 경우에는 2가지 방법으로 해결할 수 있다. str() 함수를 이용하여 출력하고자 하는 변수 데이터를 문자열로 바꾸어주거나, 혹은 각 자료형을 콤마(,)를 기준으로 구분하여 출력하면 된다.

 

# 출력할 변수들
answer = 7

print("정답은 " + str(answer) + "입니다.")

 

Python 3.6 이상의 버전부터 f-string 문법을 사용할 수 있다. f-string은 문자열 앞에 접두사 'f'를 붙임으로써 사용할 수 있는데, f-string을 이용하면 단순히 중괄호({}) 안에 변수를 넣음으로써, 자료형의 변환 없이도 간단히 문자열과 정수를 함께 넣을 수 있다.

 

answer = 7
print(f"정답은 {answer}입니다.")

 

'개발 > Python' 카테고리의 다른 글

입출력 관련  (1) 2024.01.05
코테용 파이썬 라이브러리 문법  (1) 2023.11.12
코테용 파이썬 문법 정리2  (1) 2023.11.09
코테용 파이썬 문법 정리  (0) 2023.11.08