정보처리기사 실기 python
python ----------------------------------------
예제 -----
-----
class Calc :
result = 0
def setdata(self, fir, sec) :
self.fir = fir
self.sec = sec
def add(self) :
Calc.result += 1
self.result = self.fir + self.sec
def getdata(self) :
print(self.result, end= " ")
#15
print(Calc.result)
#1
a = Calc()
b = Calc()
a.setdata(5, 10)
b.setdata(5, 10)
a.add()
a.getdata()
#15 1
b.add()
b.getdata()
#15 2
#Calc.result에 이미 += 1이 되어있어서 최종적으로 2가됨.
-----
def add(x, y) :
return x + y
def sub(a, b) :
return a - b
number1 = [1, 2, 3, 4]
number2 = [5, 6, 7, 8]
result1 = map(add, number1, number2)
#map()은 리스트나 튜플 같은 반복 가능한 데이터(Iterable)의 모든 요소에 특정 함수를 일괄적으로 적용해 주는 내장 함수입니다.
#6, 8, 10, 12
result2 = map(sub, number1, number2)
#-4, -4, -4, -4
print(list(result1))
print(list(result2))
#list()로 변환하지 않고 result1을 그대로 출력하면 데이터 값이 아닌
다차원 배열
data = [
[3, 5, 2, 4, 1],
[4, 5, 1],
[4, 4, 1, 5, 4],
[4, 5],
]
-----
딕셔너리
result = {}
#이건 빈 딕셔너리
기본 할당 ([]): my_dict['key'] = 'value'
update() 메서드: my_dict.update({'key1': 'value1', 'key2': 'value2'})를 사용하여 여러 값을 한 번에 추가
setdefault() 메서드: my_dict.setdefault('key', 'default_value')로 키가 없을 때만 값을 설정
-----
집합 -----
여러 개의 자료를 하나의 변수로 관리할 때 사용하는 자료형으로 중복된 데이터를 가질 수 없고, 순서가 없다.
asia = {'한국', '중국', '일본'}
asia.add('베트남')
asia.add('중국')
asia.remove('일본')
asia.update(['홍콩', '한국', '태국'])
print(asia)
답은 {'태국', '홍콩', '한국', '베트남', '중국'}
https://www.youtube.com/watch?v=sTq9uMtz49g&list=PLz95GL3y9Hv0fbwTxWqc3dni3hCA7OXgj&index=5
11분 38초 쯤 보기
-----
for index, lis in enumerate(data):
는 파이썬에서 리스트(data)를 순회할 때 요소의 순서(index)와 값(lis)을 동시에 가져오는 방식입니다. index는 0부터 시작하는 자동 생성 인덱스를, lis는 해당 순서의
데이터를 받으며,
코드를 간결하고 가독성 있게 만들어 줍니다.
예시
bichons = ["groomi", "mungmungee", "bichonchon"]
for index, bichonee in enumerate(bichons):
print(f"{index}: {bichonee}")
"""
0: groomi
1: mungmungee
2: bichonchon
"""
동시 접근: enumerate()는 데이터를 하나씩 열거하며 (인덱스, 요소) 튜플 형태로 반환합니다.
간결한 코드: range(len(data))를 사용하여 수동으로 인덱스를 관리할 필요가 없어 파이썬다운(Pythonic) 방식입니다.
시작값 변경: enumerate(data, start=1)와 같이 사용하여 인덱스를 1부터 시작할 수 있습니다.
https://0171-cloud.tistory.com/10
[Python] `enumerate`로 간편하게 인덱스 추적하기: 인덱스와 값 모두 쉽게 관리하기
Python enumerate로 간편하게 인덱스 추적하기: 인덱스와 값 모두 쉽게 관리하기Python에서 리스트나 튜플과 같은 시퀀스를 순회할 때 인덱스와 값을 동시에 다뤄야 하는 경우가 자주 있습니다. 이때
e
-----
sum
Python에서 sum()은 리스트, 튜플 등 반복 가능한(iterable) 객체 안에 있는 숫자 요소들의 총합을 계산하는 내장 함수입니다. sum(iterable, start=0) 형태로
사용하며,
기본적으로 0부터 시작하여 리스트 등의 모든 요소를 더한 결과를 반환합니다.1. 기본 사용법숫자로 구성된 리스트나 튜플의 합을 구할 때 가장 많이 사용됩니다.pythonnumbers = [1, 2, 3, 4,
5]
total = sum(numbers)
print(total) # 출력: 15
2. 주요 특징 및 기능시작 값 지정 (start): 합계를 구할 때 초기값을 설정할 수 있습니다. 기본값은 0입니다.pythonsum([1, 2, 3], 10) # 10 + 1 + 2 + 3 = 16
데이터 타입: 숫자(integer, float) 데이터에만 사용할 수 있으며, 문자열 등 다른 타입이 포함되면 TypeError가 발생합니다.효율성: 수동으로 for 루프를 작성하는 것보다 빠르고 간결하게
합계를 구할 수 있습니다.3. 응용 예시평균 계산: sum()과 len()을 함께 사용하여 평균을 구합니다.pythonscores = [80, 90, 100]
average = sum(scores) / len(scores)
2차원 리스트 펼치기: start 인자를 활용해 리스트를 합칠 수 있습니다.pythonnested = [[1, 2], [3, 4]]
flattened = sum(nested, []) # [1, 2, 3, 4]
-----
class arr:
a = ["Seoul", "Kyeonggi", "Incheon", "Daejeon", "Daegu", "Pusan"]
str01 = ' '
for i in arr.a:
str01 = str01 + i[0]
print(str01)
출력값 SKIDDP
------
print(17 / 3)
#으로하면 실수로 나옴.
17 // 3으로 해야지 정수 몫만 나옴.
print(5 ** 2)
#거듭제곱
print("\"구름이\"")
print(r"C:\some\name")
#C:\some\name 이렇게 출력됨 \ 무시하게 해주는 r
print("dfsdkfjsdkjfksdjfksdfsdfdf" "dfsdjkfjsdkfjsdkfjksdjfsdkjfskdfjdksl")
#이렇게 하면 두 문자열이 붙어서 나옴.
arr = "groom"
print(arr[-1])
#배열 음수 순서는 뒤에서 부터
arr = "groom"
print(arr[4:43])
#이렇게 슬라이스 끝이 초과되는건 작동함.
arr = "groom"
groom[0] = "k"
print(groom)
#이런식으로 문자열에 대입을 해버리면 오류뜸.
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
letters[1:3] = ['B', "C"]
letters[5:7] = []
print(letters)
#위와 같은 방식으로 대입 및 삭제 가능
#####
# Strategy: Iterate over a copy
for user, status in users.copy().items():
if status == 'inactive':
del users[user]
# Strategy: Create a new collection
active_users = {}
for user, status in users.items():
if status == 'active':
active_users[user] = status
#####
enumerate()
while True :
pass
#pass는 최소한의 class나 def를 만들 때 사용하기도 함.
arr = list(range(4))
print(arr)
#이런식으로 [0, 1, 2, 3] 리스트 만들기도 가능함.
def groom(n) :
n += 1
print(n)
groom(3)
#함수 정의
-----
def groom(n) :
n += 1
return n
n2 = groom(2)
print(n2)
#이런식으로 함수 return
-----
#####
def ask_ok(prompt, retries=4, reminder='Please try again!'):
while True:
ok = input(prompt)
if ok in ('y', 'ye', 'yes'):
return True
if ok in ('n', 'no', 'nop', 'nope'):
return False
retries = retries - 1
if retries < 0:
raise ValueError('invalid user response')
print(reminder)
-----
groom = 5
def groo(gu = groom) :
print(gu)
groom = 6
groo()
#값 5
---------
def f(a, L = []) :
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
"""
출력값
[1]
[1, 2]
[1, 2, 3]
"""
-----
#####
def f(a, L=None) :
if L is None :
L = []
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
출력값
[1]
[2]
[3]
-----
def groom(groo, statt = "kim", action = "goo", type = "rem", roo = "rem") :
print("구름이는", action, end = " ")
print("구름", statt, action, type, roo)
print(groo)
groom("gu", "rem", "ii")
groom(groo = 10)
#키워드 인자를 이용해서 함수를 정의 가능함.
#1개의 필수 인자와 선택적 인자 statt = "kim", action = "goo", type = "rem", roo = "rem"로 가능.
#출력값은
"""
구름이는 ii 구름 rem ii rem rem
gu
구름이는 goo 구름 kim goo rem rem
10
"""
------
**name 형식의 마지막 형식 매개변수가 존재하면, 형식 매개변수들에 대응하지 않는 모든 키워드 인자들을 담은 딕셔너리 (매핑 형 — dict 를 보세요) 를 받습니다. 이것은 *name (다음 서브섹션에서 설명합니다) 형식의 형식 매개변수와 조합될 수 있는데, 형식 매개변수 목록 밖의 위치 인자들을 담은 튜플을 받습니다. (*name은 **name 앞에 나와야 합니다.) 예를 들어, 이런 함수를 정의하면: 부터 보기.
https://docs.python.org/ko/3.8/tutorial/controlflow.html
끝값은 만들어지는 수열에 포함되지 않습니다; range(10) 은 10개의 값을 만드는데, 길이 10인 시퀀스의 항목들을 가리키는 올바른 인덱스들입니다. 범위가 다른 숫자로 시작하거나, 다른 증가분을 (음수조차 가능합니다; 때로 이것을 ‘스텝(step)’이라고 부릅니다) 지정하는 것도 가능합니다: 부터