티스토리 뷰

파이썬을 이용해 함수를 활용하는 방법을 알아보자.

www.youtube.com/watch?v=jRsXLEPnd6Q&list=PLU9-uwewPMe2AX9o9hFgv-nRvOcBdzvP5&index=6


<함수 정의하기 = 함수의 기본구조>

 

 def 함수명(인자):

      실행문

      return 출력결과

 

이때, 출력이 없을 수도 있으며 입력이 없는 경우도 있다. 뿐만 아니라 입력 출력 모두 없는 경우도 있을 수 있다.

 

<파이썬에서의 함수 사용 level up>

 

1) *args : 함수의 인자가 너무 많은 경우, 하나의 변수를 설정해주고(args) 앞에 *(1개)을 붙여 모든 인자를 표현할 수 있다.

2) **kwargs : 딕셔너리 형태의 인자가 여러개가 존재할 때, kwargs변수를 설정해주고 kwargs.key() 앞에 **(2개)을 붙여 모든 딕셔너리형태의 key만 뽑아낼 수 있다.

3) 함수에서 return 값을 설정시, return 결과로 여러개를 설정할 수 있다. 

- return 값은 튜플로 묶여서 나오며 따로 사용하고 싶다면 인자번호를 사용해 구분.

4)  함수 인자에 초기값을 먼저 설정할 수 있다

- 함수 설정시, 초기값이 설정되지 않은 인자만 함수호출시 값을 초기화해줘도 정상 작동.

5) 파이썬에서의 전역변수

[globla 변수명]의 식으로 변수를 정의한다면 전역변수

6)함수를 한줄로 정의할 수 있다

-[함수명 = lambda 매개변수명: return형태]의 식으로 함수를 한줄로 정의할 수 있다

-list에 넣어서 lambda별로 꺼내서 쓸 수도 있다

 

 

<파일입출력>

파일입출력

1. 파일의 open과 close는 항상 함께

2. readline()함수 : 한줄을 읽어오는 함수, 위의 예제의 결과는 따라서 "1번째 줄을 출력합니다"가된다.

3. readlines : 모든 줄을 다 읽어와서 list화 시킴 

 

r 파일경로에 내용을 "불러옴"
readlines(), read(), readline()등과 같이 사용됨
w 파일경로에 새로운 내용을 "넣음"
파일명.write()와 함께 사용됨
a 파일경로의 기존내용에 새로운 내용을 "추가"
파일명.write()와 함께 사용됨

함수를 활용을 연습하기 좋을 것 같은 알고리즘이 dfs와 bfs라고 생각한다.

c언어를 통해 구현하는 방법은 알지만 python은 기초연습중이라 dfs와 bfs를 통해 연습해보았다.

 

 

www.acmicpc.net/problem/1260

 

1260번: DFS와 BFS

첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사

www.acmicpc.net

dfs함수 생성

 

딕셔너리 구현을 통한 인접리스트구현
양방향이기에 key두개 모두 각각 요소를 넣어줌

<<DFS구현 - stack사용>>

c언어에서의 pop()함수 구현 : "리스트명.pop()"을 통해 한줄로 표현할 수 있다.

- stack.pop()을 통해

c언어에서의 push()함수 구현 : stack.append()를 통해 구현?

- 이때, append()가 아니라 extend()를 통해서 구현해야함을 깨달음

- graph가 딕셔너리형이고 pop한 node에 연결된 모든 노드를 하나씩 꺼내서 대입해야하기때문

- 딕셔너리 하나의 key의 해당하는 요소를 하나씩 분리해서 꺼낼 때는 extend()를 사용한다.

'파이썬 > 파이썬 기초' 카테고리의 다른 글

파이썬 기초 - 기초 문법 연습하기  (0) 2021.03.10
파이썬 기초 - 예외처리  (0) 2021.03.09
파이썬 기초 - 모듈  (0) 2021.03.08
파이썬 기초 - class  (0) 2021.03.07
파이썬 기초 - 제어문  (0) 2021.03.02