목록Python (11)
스토리지

다른 언어에서 문자열의 특정 인덱스에 다른 값을 넣을려고 한다면? string s = "abcdef"; s[0] = z; 위 처럼 그냥 인덱스에 접근하면 된다. 하지만 Python 에서는 다음과 같은 방법이 적용되지 않는다. tmp = "Hello" tmp[0] = "a" # 'str' object does not support item assignment 이유 Pythom에서 한번 생성되고 그 후 변경하지 못하는 타입을 immutable 타입이라고 한다. 그와 반대되는 개념은 mutable이다. Mutable Immutable list dict set bytearray user-defined classes int float decimal complex bool string tuple range froz..

깊이 우선 탐색. def dfs(graph, v, visited): # 현재 노드를 방문 처리 visited[v] = True print(v, end=' ') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph, i, visited) graph = [ [], [2, 3, 8], [1, 7], [1, 4, 5], [3, 5], [3, 4], [7], [2, 6, 8], [1, 7] ] visited = [False] * 9 dfs(graph, 1, visited) 위의 코드의 그래프는 다음과 같은 형태이다.

5 65 90 75 34 99 다음과 같이 데이터 입력을 받아야되는 문제가 있다. C++같은 경우에은 다음과같이 해결할 수 있다. ex) input.cpp #include using namespace std; int main(){ int n; int* arr = new int[n]; cin >> n; for(int i = 0; i > arr[i]; } } 파이썬은 다음과 같이 처리한다. # 데이터의 개수 입력 n = int(input()) # 각 데이터를 공백으로 구분하여 입력 data = list(map(int, input().split())) print(data) data = list(map(int, input().split())) 이 부분은 그냥 외우면 편할 꺼 같다. ..

함수의 기본형태 def 함수명(매개변수): 실행할 소스코드 return 반환 값 return이 없을 수도 있다. ex1) 더하기 기능을 제공하는 함수 def add(a, b): return a + b print(add(3, 7)) 함수 안에서 밖의 변수 데이터를 변경 할 때 a = 0 def func(): global a a += 1 for i in range(10): func() print(a) 함수 안에서 함수 밖의 변수인 a를 변경하려고 한다. 다른 언어에서는 그냥 접근이 가능할텐데 파이썬에서는 함수 내부에서는 함수 내부의 변수만 접근이 가능한 모양이다. 람다 익명함수이다. print((lambda a, b: a + b)(3, 7)) 괄호가 중요한것 같다.

리스트 컴프리헨션 리스트를 초기화하는 방법 중에 하나이다. 대괄호 안에 조건문과 반복문을 넣는 방식으로 리스트를 초기화할 수 있다. ex) 0~19까지 중 홀수만 배열에 포함하는 리스트 array = [i for i in range(20) if i % 2 == 1] print(array) List Comprehension을 사용하지 않았을 때의 코드 array = [] for i in range(20): if i % 2 == 1: array.append(i) print(array) List Comprehension은 2차원 리스트를 초기화할 때 매우 효과적으로 사용될 수 있다. # N X M 크기의 2차원 리스트 초기화 n = 3 m = 4 array = [[0] * m for _ in range(n)]..

1. 반복문 내에서의 리스트 사용 다른 언어들과 완전 똑같다. base.py language = ['eng', 'kor', 'jpn'] for lan in language: print(lan, end=' ') CalculateSumNAvg.py scores = [88, 75, 90, 95, 77, 69, 80, 92] sum = 0 avg = 0 for i in scores: sum += i; avg = sum / len(scores) print('합계: %d, 평균: %.2f' %(sum, avg)) 2. 2차원 리스트 2차원 리스트는 리스트의 각 요소가 리스트 형태를 가진다. 리스트 내에 리스트가 있는 이중의 구조이다. scores = [[75, 83, 90], [86, 86, 73], [76, 95..

1. 선언 fruits = ['사과', '오렌지', '딸기', '포도', '키위', '수박'] list1 = [5, 10.2, '탁구', True, [4, 5, 6]] numbers = list(range(1, 10, 2)) 리스트명 = [데이터, 데이터, 데이터,...] 와 같이 기본적으로 선언이 가능하다. 리스트의 데이터는 모두 같은 자료형이 들어갈 필요가 없다... list()함수는 list를 만드는 함수이다. 리스트를 만들면서 범위를 지정해서 자동으로 숫자가 들어가도록 했다. 2. 요소 추가 여러가지 함수들이 존재한다. append(data) : 리스트의 끝에 특정 요소를 추가한다. insert(index, data) : 리스트의 특정 인덱스에 요소를 추가한다. list.extend(_list) ..

1. for문 for 반복변수 in 범위: 동작 예제 1 for x in range(10): print(x) 0,1,2,3,...,8,9 가 결과로 나온다. 여기서 알 수 있는 점이 몇 개 있다. range(x) 함수는 0≤Number<x 의 범위를 나타낸다. 즉 range(10)이면 0부터 9까지이다. print()함수는 자동개행이다. 자동개행을 피하기 위해서 print(x, end = ' ')라고 적으면 된다. 예제 2: 1~10까지의 합 구하기 sum = 0 for x in range(1, 11): sum += x print(sum) range함수에 인자가 두 개 들어갈 때, 시작위치를 정할 수 있다. 여기서 range(1,11)은 1부터 10까지를 의미한다. for x in range(1, 11,..

1. if 기본적으로 다음과 같은 문법형태를 지닌다. if 조건문: 실행결과 elif 조건문2: 실행결과 else: 실행결과 ★ 실행결과 앞에 들여쓰기가 안되어있으면 무조건 에러난다. 다른 언어들은 중괄호로 구분지었지만 파이썬은 들여쓰기로 구분을 짓는다. ex) x = int(input('숫자를 입력하세요 : ')) if x > 0: print('양수!') else: print('0 또는 음수!') 비교연산자는 여느 언어와 똑같으니 생략. 2. 논리 연산자 cond1 and cond2 → cond1와 cond2가 둘 다 만족, && cond1 or cond2 → cond2와 cond2 둘 중 하나가 만족, || not cond → cond가 참이면 거짓, 거짓이면 참, ! and 예제 필기성적과 실기성적..

C++에서 파이썬으로 갈아타는 이유 중에 하나가 문자열 처리가 너무 간단하게 이루어지기 때문이다. C++에서 Split을 하려고 하면 똥꼬쇼를 해야되지만 다른 언어들은 그렇지않다. 여기서는 문자열을 위주로 정리해보려고 합니다. 문자열 반복 greet = 'hello' print(greet * 5) 안에서 반복문이 자동으로 이루어지나보다. 너무 편하다. 문자열 길이 greet = 'hello' print(len(greet)) len함수를 사용하여 길이를 구한다. len함수의 인자에 문자열만 들어가는지 아니면 다른것도 들어가는지 알아봐야겠다. 문자열 연결 eng = 80 result = '영어점수 : ' + eng + "점" # 모든 변수의 자료형이 문자열이 아니면 에러를 일으킴. print(result) ..