반응형
7과목. 프로그래밍 언어
📒 04. Python
1. Python
(1) Python 소개
- 귀도 반 로섬에 의해 개발된 언어
- 구글과 같은 대형 기술 회사에서 광범위하게 사용
(2) Python의 특징
- a) 스크립트 언어
- 별도의 컴파일 과정 없이 코드를 실행할 수 있는 스크립트 언어 - b) 동적 타이핑
- 변수의 타입을 실행 시점에 결정하는 동적 타이핑을 지원 - c) 플랫폼 독립적
- 다양한 운영체제에서 실행 가능한 플랫폼 독립적 언어 - d) 간결한 문법
- 배우기 쉽고 읽기 쉬운 간결한 문법 - e) 확장성 및 이식성
-높은 확장성을 가지며, 다른 시스템으로의 이식성이 좋음 - f) 표준 라이브러리
- 방대한 표준 라이브러리를 제공하여 다양한 작업을 쉽게 처리
2. Python 문법
(1) 사칙연산
print(2+5) #7
print(3/2) #1 or 1.5
print(3//2) #1 (정수//정수 = 정수)
print(3/2.0) #1.5
print(3*4) #12
(2) 변수 사용
a=3
b=2.0
print(a/b) #1.5
(3) 조건문
a = 10
if a > 10 :
print("a가 10보다 크다")
elif a > 5 :
print("a가 5보다 크다")
else :
print("a가 5보다 작다")
(4) for 반복문
for i in [1,2,3]:
print(i)
# i값에 하나씩 값이 담아짐
#1
#2
#3
(5) while 반복문
i = 0
sum = 0
while i < 3:
sum = sum + i;
i = i + 1
print(sum) #3
(6) range
- 인자값의 범위를 리스트 형태로 출력
# range(x) : 0부터 x-1까지 출력
print(range(3)) #[0,1,2]
# range(x,y) : x부터 y-1까지 출력
print(range(3,6)) #[3,4,5]
# range(x,y,z) : x부터 y-1까지 z만큼 증감
print(range(3,15,3)) #[3,6,9,12]
int_val = range(2,10,2)
for i in int_val:
print(i)
#2
#4
#6
#8
(7) 함수
- def로 선언하며 들여쓰기가 되어있는 곳까지 함수의 범위
def sum(i,j):
return i+j
print(sum(10,2)) #12
# 람다함수 : 함수를 간단하게 표현한 방식
lambda num : num + 100
# map(함수, 배열형태)
# 배열에서 하나씩 값을 꺼내 함수로 넘김
map(lambda num : num + 100, [1,2,3,4,5])
(8) 출력
# 기본으로 print는 enter를 포함
a = ["대","한","민","국"]
for i in a:
print(i)
# 대
# 한
# 민
# 국
# 한 줄로 쓰고싶을 땐 end 이용
for i in a:
print(i, end="")
# 대한민국
3. 문자열 함수
(1) join
- 여러 개의 문자를 하나로 결합
# '구분자'.join(string) : 구분자를 기준으로 문자열 합치기
str = '^'.join(['a','b','c'])
print(str) #a^b^c
# 구분자 없을 경우
str = ".join(['a','b','c'])
print(str) #abc
(2) partition
- 인자값을 기준으로 첫 번째 조건이 발견되면, 분리하여 튜플 형태로 반환
str = "hungjik_wonju_kangwon"
arr = str.partition('_');
print(arr) #('hungjik','_','wonju_kangwon')
(3) split
- 인자값을 기준으로 분리하여 리스트 형태로 반환
str = "hungjik_wonju_kangwon"
arr = str.split('_');
print(arr) #['hungjik','wonju','kangwon']
(4) format
- %연산자와 포맷 스트링을 사용하는 방법
print("Int : %d, Str : %s, float : %f" % (22, "peazh", 167.5))
#Int : 22, Str : peazh, float : 167.500000
(5) 대문자 / 소문자 변환
#upper : 모든 문자를 대문자로 변경
str1= "peazh"
print(str1upper()) #PEAZH
#lower : 모든 문자를 소문자로 변경
str2= "PEAZH
print(str2.lower()) #peazh
(6) 공백 제거
# lstrip : 좌 공백 제거
# rstrip : 우 공백 제거
# strip : 좌/우 공백 제거
str = " peazh "
print(str.strip()) #peazh
(7) max
- 문자열에서 max 함수는 사전순으로 값을 판단
- 대.소문자 같이 있을 때는 아스키코드로 변환하여 높은 값을 리턴
country = ['Korea','Spain','Germany','Canada',france','Serbia']
print(max(country)) # france
# max(country, key=lambda x:x[2]) : 각각의 2번 인덱스의 값만 가지고 최대값 출력
# 동일 순위일 땐 첫 번째 나오는 요소만 출력
print(max(country, key=lambda x:x[2])) # Korea
print(max(country, key=lambda i:i.lower()) # Spain
더보기
들여쓰기로 같은 블록인지 구분
4. 자료구조
(1) 리스트(List)
- 배열과 유사하게 여러 요소를 갖는 집합
- 동적 배열로서 크기를 자유롭게 조정할 수 있음
- 각 요소를 서로 다른 타입이 될 수 있음
# 리스트 슬라이스
list = [1,2,3,4,5,6,7,8]
print(list[1:3]) # [2,3]
print(list[:3]) # [1,2,3]
print(list[3:]) # [4,5,6,7,8]
print(list[1::2]) # [2] 시작:끝:증분값
# 리스트 추가
list.append(9)
print(list) # [1,2,3,4,5,6,7,8,9]
# insert(x,y) : x 자리에 y값을 넣기
listA = [1,2,3,4]
print(listA.insert(1,5)) # [1,5,2,3,4]
# 리스트 삭제
del list[0]
print(list) # [2,3,4,5,6,7,8,9]
# 리스트 검색
# index(x) : x가 있는 인덱스 출력
print(list.index(3)) # 1
# count(x) : x의 개수 출력
print(list.count(3)) # 1
(2) 튜플
- 여러 요소를 갖는 구조로 리스트와 비슷
- 순서의 의미가 있고 중복 허용
- 요소의 추가, 수정, 삭제가 불가능한 불변의 특성을 가짐
- 소괄호() 또는 괄호 없이 표현 가능
tup = ("peazh", 20, 167.5)
print(tup) # ('peazh', 20, 167.5)
(3) set
- 중복 없는 유일한 요소들로 구성
- 순서가 없으며, 인덱스로 요소에 접근할 수 없음
set_data = {1,2,3,4,1,2,3,}
print(set_data) # {1,2,3,4}
# 값 삭제
set_data.remove(3)
print(set_data) # {1,2,4}
set_data.discard(3)
print(set_data) # {1,2,4}
# discard 안전한 삭제 - 값이 없다해도 오류 발생하지 않음
# remove 값이 없는 걸 삭제하면 오류 발생
# intersection (교집합)
set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
result = set1.intersection(set2)
print(result) # {3,4,5}
# union (합집합)
set3 = {1,2,3,4,5}
set4 = {3,4,5,6,7}
result1 = set3.union(set4)
print(result1) # {1,2,3,4,5,6,7}
# difference (차집합)
set5 = {1,2,3,4,5}
set6 = {3,4,5,6,7}
result2 = set5.difference(set6)
print(result2) # {1,2}
(4) 딕셔너리(dict)
- key와 value 쌍으로 구성된 구조
- 키를 통해 빠르게 값을 찾을 수 있는 해시테이블 구조
- 키는 변경 불가능한 타입만 가능하며, 값은 어떤 타입이든 될 수 있음
# 선언
dict_data = {"name":"peazh","age":20,"height":167.5}
print(dict_data) # {"name":"peazh","age":20,"height":167.5}
print(dict_data['name']) # peazh
# key만 추출
keys = dicc_data.keys();
print(keys) #['name','age','height']
for i in keys
print(i)
# name
# age
# height
# 값만 추출
values = dict_data.values();
print(values) #['peazh',20,167.5]
for i in values
print(i)
# peazh
# 20
# 167.5
# key가 있는지 체크하여 value 가져오기
print(dict_data.get("name")) # peazh
더보기
{} 중괄호 쓰는 건 set, dict
값만 들어가면 set, key:value 형식이면 dict
** 2 : 제곱
sort : 오름차순
sort(reverse=True) : 내림차순
sel : 나 자신(자바에서 this 역할)
global : 함수에서 전역 변수를 쓴다는 의미
[아스키코드]
A : 65
a: 97
참고자료
흥달쌤, '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
1억뷰 N잡
[1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스
www.njobler.net
반응형
댓글