반응형
print(), end, sep
x = 3
y = 4
print("x = {}, y = {}".format(x, y)) # 변수 출력
# x = 3, y = 4
# 여러 값 출력 시 값들 사이에 공백이 출력
print("a", "b", "c")
# a b c
# end, print문 출력시 맨 뒤에 붙는 문자
print("a", "b", "c", end="@@")
# a b c@@
# sep, 출력시 문자 값 사이에 붙는 문자
print("000", "0000", "0000", sep="-")
# 000-0000-0000
len()
# len(), 문자열, 리스트, 튜플, 딕셔너리 등의 길이를 반환
str = "abcd"
list = [1,2,3,4,5]
print(len(str))
# 4
print(len(list))
# 5
for문
# for문, range()지정된 범위의 숫자를 생성 (n 부터, m-1까지, m개씩 건너뜀)'
# 세번 째 인자는 생략 가능
for i in range(1, 11, 2)
print(i,end=" ")
# 1 3 5 7 9 (11-1까지 이기때문에 10은 출력되지 않음)
upper(), capitalize(), title(), split()
# upper() 모두 대문자로
# capitalize() 첫글자만 대문자
# title() 각각의 영단어를 대문자로
print("hello world".upper())
# HELLO WORLD
print("hello world".capitalize())
# Hello world
print("hello world".title())
# Hello World
# split() 인자 기준 문자로 문자열을 나눈다. 인자가 없으면 공백기준.
# 두번 째 인자는 n개 기준까지 나눈다.
str = "h e l l o"
list = str.split()
# ['h', 'e', 'l', 'l', 'o']
list2 = str.split(" ", 3)
# ['h', 'e', 'l','lo' ]
배열 관련 메소드
# list 생성
list = [3, 1, 4, 2, 1, 6]
# append() 요소 추가
list.append(8) # [3, 1, 4, 2, 1, 6, 8]
# insert() 요소 삽입
list.insert(2, 7) # 2번 인덱스에 7을 삽입 [3, 1, 7, 4, 2, 1, 6, 8]
# remove() 요소 중 가장 먼저 발견되는 요소 제거
list.remove(1) #[3, 7, 4, 2, 1, 6, 8]
# pop() 요소 제거 및 반환, element 요소를 지정하지 않으면 마지막 요소 제거 및 반환
lastElement = list.pop()
# list -> [3, 7, 4, 2, 1, 6]
# lastElement = 8
# index() 해당 요소의 인덱스를 반환, 요소가 리스트에 없으면 ValueError 발생
list_of_three = list.index(3) # 0
# count() 해당 요소의 갯수
list_two_count = list.count(2) # 1
# sort() 정렬
list.sort() [1, 2, 3, 4, 6, 7]
# 역순으로 정렬
list.reverse() [7, 6, 4, 3, 2, 1]
#리스트 초기화
list.clear()
배열 슬라이싱
#list[srart : end : step]
list = ['a', 'b', 'c', 'd,', 'e']
# a b c d e
# index 0 1 2 3 4
# index -5 -4 -3 -2 -1
list[1:]
# 1번 인덱스 부터 끝까지 b c d e
list[-3:]
# -3부터 인덱스 번호 감소하면서 끝까지 c d e
list[2:4]
# 2번 인덱스 부터 4-1인덱스 까지 c d
list[-4:-2]
# -4 인덱스부터 (-2)+1 인덱스 까지 b c
list[3:0:-1]
# 3인덱스 부터 0+1까지 인덱스 까지 d, c, b
list[ : : 2]
# 전체를 가져온다. 2칸씩 건너뜀 a, c, e
list[-5: : 3]
# -5 인덱스부터 감소하면서 가져온다. 3칸씩 건너뛴다. a, d
list[ : : -1]
# reverse, e d c b a
map(), reduce(), filter()
# map(함수, iterable)
# 반복가능한 객체인 리스트, 튜플등 각 요소에 동일한 작업을 적용
a = [1, 2, 3]
b = [4, 5, 6]
result = map(lambda x, y : x+y, a, b) # lambda 인자 : 표현식, 인자
print(list(result)) # [5, 7, 9]
result2 = map(lambda x : x**2, a)
print(list(result2)) # [1, 4, 9]
# reduce( 함수, iterable[, 초기값])
# 함수 : 누적 함수. 두 개의 인자를 받아야 함
# iterable : 리스트, 튜플 등의 자료
# 시작 값, 생략하면 첫번 째 값이 기본
num = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, num)
print(result) # 15
# 동작 순서
# x = 1, y = 2 -> num[0] + num[1] = 3이 되며 x가 3이된다.
# x = 3, y = 3 -> (num[0] + num[1) + num[2] = 6이 되며 x가 6이 된다.
# ..... 해서 15가 된다.
# 초기값 지정
result = reduce(lambda x, y: x + y, num, 10) # 10 + 1 + 2 + 3 + 4 + 5
# result 값은 25
# filter(함수, iterable)
# 함수 : true / false를 반환하는 함수, bool 함수
# iterable : 리스트, 튜플 등 반복 가능한 자료형
# 반환값 : 걸러낸 요소들이 담긴 filter 객체, list()로 감싸서 사용
f_1 = filter(labda x: x % ==0, num)
print(list(f_1) # [2, 4]
words = ['apple', 'hi', 'banana', 'go', 'grape']
long_words = filter(lambda x: len(x) >= 5, words) # len이 5이상인것만
print(list(long_words)) ['apple', 'banana', grape']
# 종합적으로 사용하기
num2 [1, 2, 3, 4, 5, 6]
# 리스트 에서 짝수인데, 4이상인 것만 +2를 하고, 더한 값을 출력
# 1. 리스트에서 4 이상만 걸러내기
# filter(lambda x : x >= 4, num2) [4, 6]
# 2. [4,6]에서 +2 시키기
# map(lambda x : x+2, filter(labmda x : x >= 4, num2)) [6, 8]
# 서로를 합하기
result3 = reduce(labmda x, y : x + y,
map(lambda x : x+2,
filter(lambda x : x >= 4, num2)) # 14
# 출력
print(list(result3)
객체지향 프로그래밍
class Phone: # 부모 클래스
def __init__(self, name): # 생성자
self.name = name
def namePrint(self):
print(f"폰 이름 : {self.name}")
class ApplePhone(Phone): # 자식 클래스 - 애플폰
def __init__(self, name, ios_version): # 생성자
super().__init__(name) # 부모 생성자 호출
self.ios_version = ios_version #버전 명시
def info(self):
print(f"이름: {self.name}, iOS 버전: {self.ios_version}")
class SamsungPhone(Phone): # 자식 클래스 - 삼성폰
def __init__(self, name, oneui_version):
super().__init__(name)
self.oneui_version = oneui_version
def info(self):
print(f"이름: {self.name}, One UI 버전: {self.oneui_version}")
# 사용 예시
iphone = ApplePhone("아이폰 15", "17.4")
galaxy = SamsungPhone("갤럭시 S24", "6.1")
iphone.namePrint() # 폰 이름 : 아이폰 15 (부모의 메서드를 실행)
iphone.info() # 이름: 아이폰 15, iOS 버전: 17.4
galaxy.namePrint() # 폰 이름 : 갤럭시 S24
galaxy.info() # 이름: 갤럭시 S24, One UI 버전: 6.1
거듭 제곱
# Python, JavaScript es2016 이후 등에서 거듭제곱은 오른쪽 결합, 즉 오른쪽부터 연산된다.
# C는 pow(), java는 Math.pow() 사용, 해당 없음
print(2 ** 3 ** 2)
# 2 ** 3 ** 2
# = 2 ** 9
# = 512
'정보처리기사' 카테고리의 다른 글
정보처리기사 C언어 포인터 문제 풀이 (0) | 2025.04.09 |
---|