파이썬 정리 (2)

날짜/시간 활용하기

from datetime import datetime

time = datetime.now()

now.year, month, day, hour ... 등이 있다.

기억해야할 예제

1> format 함수로의 매개변수 대입 때 줄 바꿈

print("{}년 {}월 {}일 {}시".format(
    data.year,
    data.month,
    data.day,
    data.hour
))

2> if 문 다중 or문에서 줄 바꿈

if number == 1 \
    or number == 3 \
    or number == 5 \
    or number == 7 \
    or number == 9:
    print("홀수")

교재에서 설명되지 않아 정확한 것은 아닐 수도 있으나, 함수로 매개변수 전달은 줄 바꿈에 영향을 받지 않고
함수가 아닌 keyword의 사용은 줄 바꿈에 영향을 받는 것으로 보인다.

-> 괄호가 있으면 괄호 단위로 interpret되지만, 두 번째 예제의 경우, command line이 끝났는 지 아닌지 알 수 없으므로 줄바꿈 기호를 사용해야 한다.

False로 변환되는 값

None 0 0.0 empty container

갑자기 헷갈릴 수 있는 False로 변하지 않는 값

'0': not empty contatiner
-1: 원래 아닌데 false라고 생각할 수 있는 값

pass 키워드

나중에 코딩을 마무리 할 때 사용

+ raise NotImplementedError 을 이용해서 일부러 오류를 발생시키기도 한다.

List

python list
stack

요소 추가

append, insert 함수
insert(인덱스, 요소), append(요소)

extend 함수
매개변수로 리스트를 넣음으로써 여러 요소를 추가(iterator하게)

요소 제거

del keyword, pop 함수

Ex>

del data_list[index]
data = data_list.pop(index)

remove 함수
인덱스(위치)가 아닌 값으로 요소 제거

clear 함수
요소를 모두 제거하여 empty container list로 만듬

in/ not in
boolean값을 반환

반복문

range

  • range(20) -> 0~19까지
  • range(1, 20) -> 1~19까지
  • range(1, 20, 2) -> 1~19까지 1, 3, 5, ....

Ex>

data_list = [23, 4, 5, 7, 1]

#리스트 출력
for i in range(len(data_list)):
    print("{}번 째 : {}".format(i+1, data_list[i]))

tip

ctrl + c 누르면 강제 종료

유닉스 타임

기준이 되는 시간으로부터 몇 초 흘렀는지를 반환

import time

print(time.time()) # 유닉스 타임 반환

enumerate 함수

Ex>

data = ["유라", "하라", "소영"]

for i, value in enumerate(data): #enumerate를 사용하면 i, value와 같이 반복문을 작성할 수 있다.
    print("{}번 째, {}".format(i, value))

+ 딕셔너리의 item 함수와 흡사함.

List Comprehension

[변수 for 반복자 in (range, list, ..) (if)]

join 함수

문자열.join(리스트) #리스트의 각 요소는 String

Ex> print(",".join(["1","2","3","4"]))
-> 1,2,3,4

함수의 매개변수

가변 매개변수

 print(value, ..., sep= '', end='\n', file=sys.stdout, flush=False)

가변 매개변수 : 매겨변수를 원하는 만큼 입력 가능 하도록 함

  • 가변 매개변수 뒤에는 일반 매개변수가 올 수 없다.
  • 가변 매개변수는 하나만 사용 가능하다
  • 매개변수 앞에 Ex> *data

기본 매개변수

-> 매개변수를 입력하지 않았을 경우 기본값으로 설정되도록 함

키워드 매개변수

-> 가변 매개변수와 기본 매개변수를 같이 쓰기 위해서 값을 함수에 넣을 때, 식별자에 대입하는 꼴로 넣게끔 함.
Ex> sum(data_one = 100, data_two = 200) # 출력결과 100+200 = 300

재귀 함수

보통 재귀함수 챕터에서는 재귀함수가 뭔지 알려주고 팩토리얼 예제와 피보나치 수열을 이용해서 실습한다. 하지만 n값이 올라갈수록 연산량이 기하급수적으로 늘어난다. 이를 해결하기 위해 원인을 파악하고 메모화를 이용해 해결한다.

피보나치 수열에서 연산이 늘어나는 이유는 n-1 과 n-2를 n에서 호출하기 때문에 트리의 형태로 2^n 만큼 늘어난다. 하지만 실제 필요한 연산은 매우 적고 나머지는 불필요한 중복 연산이다. 따라서 우리는 중복하는 데이터를 기록함으로 해결한다.

# 메모화 이전

def fibonacci(n):
    if n == 1 || n == 2:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

# 메모화 적용

note = {
    1: 1,
    2: 1
}

def fibonacci(n):
    if n in note:
        return note[n]
    else:
        note[n] = fibonacci(n-1) + fibonacci(n-2)
        return note[n]

튜플

-> 리스트와 흡사하지만 내부 요소를 바꿀 수 없다는 점이 다르다

튜플의 활용

  1. 변수 선언 및 할당
    [a, b] = [10, 20]
    (c, d) = (10, 20)
    

10

print(a)


2. 괄호없는 튜플

a, b = 10, 20
data = 10, 20, 30

(10, 20, 30)

print(data)

#추가로 다음과 같은 코딩도 가능하다. swap

a, b = b, a

```

파일 처리

파일 객체 = open(파일 경로, 읽기 모드)

+ close()로 마무리 하여야한다.

with 키워드

with 구문이 끝나면 자동으로 파일이 닫힌다.

with open() as 파일 객체:
sentence

'컴퓨터과학' 카테고리의 다른 글

[컴퓨터 네트워크] ICMP  (0) 2024.03.12
[운영체제] 프로세스 동기화  (1) 2024.03.12
파이썬 정리 (1)  (0) 2024.01.07
[소마] 블록체인 멘토링  (0) 2024.01.07
면접 대비 멘토링  (0) 2023.12.12