git 수업에 이어서 이틀간 파이썬을 가볍게 다루어보았다.
코딩테스트 공부를 파이썬으로 했었기에 전반적으로 가볍게 들을 수 있는 내용들이었지만 중간중간 아무 생각 없이 사용하던 함수 등의 정확한 기능 및 나도 몰랐던 유용한 파이썬의 기능들도 알아갈 수 있었다.
코딩테스트 공부를 할 때 많이 사용한 input함수, end=''를 사용한 줄바꿈 방지, f스트링 사용, continue와 break 등은 이상하게 오랜만에 파이썬 코딩을 하면 제대로 기억이 안 나서 구글링으로 다시 찾아보곤 했는데 이번 수업 때 계속 코드를 입력해보면서 손에 익게 된 것 같다.
무엇보다 나는 항상 for문 만을 사용했었는데 이번 수업에서 enumerate도 계속 사용해보다 보니 알고도 잘 몰라서 안썼던 enumerate도 제대로 기억하게 된 것 같다.
나머지는 조건문과 반복문, 리스트와 튜플 자료구조, 검색 알고리즘 등 아는 내용들이었다.
근데 검색 알고리즘에서 선형 검색 시 찾아야 하는 값을 리스트의 맨 끝에 붙여서 조건 검사 비용을 줄여주는 보초법 이라는 것을 처음 알게 되어서 신기했다.
수업 말미에는 여러 백준과 프로그래머스의 간단한 문제들을 풀어보며 오랜만에 파이썬을 다시 손에 익게 할 수 있는 수업이었다.
- f-string 연산자
name = 김영빈
print(f'제 이름은 {name}입니다.')
출력 : 제 이름은 김영빈입니다.
- 문자열 안에 바로 변수를 넣어서 짧은 코드로 출력 가능
- input으로 입력받기
length = input('정사각형의 한 변의 길이를 입력하세요 : ')
print(f'정사각형의 넓이는 {int(length)**2}입니다.')
실행결과
정사각형의 한 변의 길이를 입력하세요 : 5
정사각형의 넓이는 25입니다.
input() 기본은 문자열임
int(input())
로 입력받은 숫자를 바로 정수형으로 형변환 가능
- range() 범위 지정
range(1,6)
범위 1, 2, 3, 4, 5
range(6)
범위 0, 1, 2, 3, 4, 5
- 두 변수의 값 교환
a, b = b, a
우변의 b,a에 의해 두 값을 압축한 튜플 (b, a)가 생성된다.
튜플의 값이 바뀌지 않는 특성으로 temp 같은 임시 변수를 사용할 필요 없이 한번에 두 값의 변경이 가능해진다.
- 한 줄로 출력
a = [1, 2, 3]
for i in a:
print(a, end=' ')
실행 결과
1 2 3
end=' '를 해주면 출력할 때 줄바꿈울 하지 않고 end로 명기된 문자로 구분하여 출력한다.
- continue와 break
반복문에서 continue와 break를 사용할 수 있다.
continue : 지금 상황 다음의 반복문 이어서 진행
break : 반복문을 아예 종료
- 튜플(tuple)
파이썬 자료구조의 하나로 원소의 값을 변경할 수 없는 리스트이다.
# 튜플 선언 방법
t1 = 1, 2, 3 # 자동으로 튜플로 선언
t2 = (1,2,3)
튜플에서는 리스트와 같이 t2[0] = 4 같은 식으로 값의 대입이 불가능하다.
- enumerate() 함수
인덱스와 원소를 짝지어서 튜플로 꺼내는 내장 함수
x = ['John', 'George', 'Paul', 'Ringo']
for idx, name in enumerate(x):
print(f'x[{idx}]의 값은 {name}')
실행 결과
x[0]의 값은 John
x[1]의 값은 George
x[2]의 값은 Paul
x[3]의 값은 Ringo
인덱스와 대응하는 값을 바로 꺼내 사용 가능하다.
검색 알고리즘
선형 검색 (Linear search)
: 직선 모양으로 늘어선 리스트에서 검색하는 경우에 원하는 값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘
[ 선형 검색의 종료 조건 ]
- 검색할 값과 같은 원소를 찾은 경우 -> 스캔 종료
- 검색할 값과 같은 원소를 찾지 못하고 리스트의 맨 끝에 도달한 경우 -> 검색 실패
* 보초법
: 리스트의 끝에 찾으려는 값을 추가해주면서 언제나 성공하게 만들어서 선형 검색의 종료 조건 검사 비용을 줄여주는 방법
[ 보초법을 사용할 경우 종료 조건 ]
- 검색할 값과 같은 원소를 찾은 경우 -> 스캔 종료
검색할 값과 같은 원소를 찾지 못하고 리스트의 맨 끝에 도달한 경우 -> 검색 실패
이진 검색 (Binary search)
- 중앙값을 기준으로 범위를 반으로 줄여가며 찾는 방법
- 리스트의 데이터가 오름차순이나 내림차순으로 정렬되어 있어야 적용 가능
- 선형 검색보다 빠르게 검색 가능
'KT AIVLE School' 카테고리의 다른 글
(2주차 - 22.08.04) 웹크롤링2 (0) | 2022.08.04 |
---|---|
(2주차 - 22.08.03) 웹크롤링 1 (0) | 2022.08.03 |
(2주차 - 22.08.02) Python 라이브러리 활용 [데이터 분석] 2 (0) | 2022.08.02 |
(2주차 - 22.08.01) Python 라이브러리 활용 [데이터 분석] 1 (0) | 2022.08.02 |
(1주차 - 22.07.27) IT 프로젝트 관리도구 - Git (0) | 2022.08.01 |
git 수업에 이어서 이틀간 파이썬을 가볍게 다루어보았다.
코딩테스트 공부를 파이썬으로 했었기에 전반적으로 가볍게 들을 수 있는 내용들이었지만 중간중간 아무 생각 없이 사용하던 함수 등의 정확한 기능 및 나도 몰랐던 유용한 파이썬의 기능들도 알아갈 수 있었다.
코딩테스트 공부를 할 때 많이 사용한 input함수, end=''를 사용한 줄바꿈 방지, f스트링 사용, continue와 break 등은 이상하게 오랜만에 파이썬 코딩을 하면 제대로 기억이 안 나서 구글링으로 다시 찾아보곤 했는데 이번 수업 때 계속 코드를 입력해보면서 손에 익게 된 것 같다.
무엇보다 나는 항상 for문 만을 사용했었는데 이번 수업에서 enumerate도 계속 사용해보다 보니 알고도 잘 몰라서 안썼던 enumerate도 제대로 기억하게 된 것 같다.
나머지는 조건문과 반복문, 리스트와 튜플 자료구조, 검색 알고리즘 등 아는 내용들이었다.
근데 검색 알고리즘에서 선형 검색 시 찾아야 하는 값을 리스트의 맨 끝에 붙여서 조건 검사 비용을 줄여주는 보초법 이라는 것을 처음 알게 되어서 신기했다.
수업 말미에는 여러 백준과 프로그래머스의 간단한 문제들을 풀어보며 오랜만에 파이썬을 다시 손에 익게 할 수 있는 수업이었다.
- f-string 연산자
name = 김영빈
print(f'제 이름은 {name}입니다.')
출력 : 제 이름은 김영빈입니다.
- 문자열 안에 바로 변수를 넣어서 짧은 코드로 출력 가능
- input으로 입력받기
length = input('정사각형의 한 변의 길이를 입력하세요 : ')
print(f'정사각형의 넓이는 {int(length)**2}입니다.')
실행결과
정사각형의 한 변의 길이를 입력하세요 : 5
정사각형의 넓이는 25입니다.
input() 기본은 문자열임
int(input())
로 입력받은 숫자를 바로 정수형으로 형변환 가능
- range() 범위 지정
range(1,6)
범위 1, 2, 3, 4, 5
range(6)
범위 0, 1, 2, 3, 4, 5
- 두 변수의 값 교환
a, b = b, a
우변의 b,a에 의해 두 값을 압축한 튜플 (b, a)가 생성된다.
튜플의 값이 바뀌지 않는 특성으로 temp 같은 임시 변수를 사용할 필요 없이 한번에 두 값의 변경이 가능해진다.
- 한 줄로 출력
a = [1, 2, 3]
for i in a:
print(a, end=' ')
실행 결과
1 2 3
end=' '를 해주면 출력할 때 줄바꿈울 하지 않고 end로 명기된 문자로 구분하여 출력한다.
- continue와 break
반복문에서 continue와 break를 사용할 수 있다.
continue : 지금 상황 다음의 반복문 이어서 진행
break : 반복문을 아예 종료
- 튜플(tuple)
파이썬 자료구조의 하나로 원소의 값을 변경할 수 없는 리스트이다.
# 튜플 선언 방법
t1 = 1, 2, 3 # 자동으로 튜플로 선언
t2 = (1,2,3)
튜플에서는 리스트와 같이 t2[0] = 4 같은 식으로 값의 대입이 불가능하다.
- enumerate() 함수
인덱스와 원소를 짝지어서 튜플로 꺼내는 내장 함수
x = ['John', 'George', 'Paul', 'Ringo']
for idx, name in enumerate(x):
print(f'x[{idx}]의 값은 {name}')
실행 결과
x[0]의 값은 John
x[1]의 값은 George
x[2]의 값은 Paul
x[3]의 값은 Ringo
인덱스와 대응하는 값을 바로 꺼내 사용 가능하다.
검색 알고리즘
선형 검색 (Linear search)
: 직선 모양으로 늘어선 리스트에서 검색하는 경우에 원하는 값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘
[ 선형 검색의 종료 조건 ]
- 검색할 값과 같은 원소를 찾은 경우 -> 스캔 종료
- 검색할 값과 같은 원소를 찾지 못하고 리스트의 맨 끝에 도달한 경우 -> 검색 실패
* 보초법
: 리스트의 끝에 찾으려는 값을 추가해주면서 언제나 성공하게 만들어서 선형 검색의 종료 조건 검사 비용을 줄여주는 방법
[ 보초법을 사용할 경우 종료 조건 ]
- 검색할 값과 같은 원소를 찾은 경우 -> 스캔 종료
검색할 값과 같은 원소를 찾지 못하고 리스트의 맨 끝에 도달한 경우 -> 검색 실패
이진 검색 (Binary search)
- 중앙값을 기준으로 범위를 반으로 줄여가며 찾는 방법
- 리스트의 데이터가 오름차순이나 내림차순으로 정렬되어 있어야 적용 가능
- 선형 검색보다 빠르게 검색 가능
'KT AIVLE School' 카테고리의 다른 글
(2주차 - 22.08.04) 웹크롤링2 (0) | 2022.08.04 |
---|---|
(2주차 - 22.08.03) 웹크롤링 1 (0) | 2022.08.03 |
(2주차 - 22.08.02) Python 라이브러리 활용 [데이터 분석] 2 (0) | 2022.08.02 |
(2주차 - 22.08.01) Python 라이브러리 활용 [데이터 분석] 1 (0) | 2022.08.02 |
(1주차 - 22.07.27) IT 프로젝트 관리도구 - Git (0) | 2022.08.01 |