230809 TIL

요시롱·2023년 8월 9일

TIL

목록 보기
1/8
post-thumbnail

Python 복습

  • 연산자, 자료형, 문자열
  • 새롭게 알게된 것, 자주 헷갈리는 것 위주로 정리

주피터 노트북 관련

  • 하나의 code 셀에서 여러 개를 동시에 출력하려면 print 이용해야함
    - 아니면 마지막만 출력됨
  • 선택한 code 셀의 위아래에 code 셀을 추가하는 단축키 a, b는 각각 above, below에서 온 것 (처음 알았어...!)

식별자

  • 식별자는 변수명, 함수명, 클래스명 등을 모두 아울러 이르는 말
  • 숫자로 시작 불가

역슬래시의 활용

  • 백틱 말고 \역슬래시\로 감싸주면 티나지 않게(?) 표기 가능
**볼드체로 쓰기 위해서는 `**`을 강조하고 싶은 부분 양쪽에 써주면 됩니다**

**볼드체로 쓰기 위해서는 \**\을 강조하고 싶은 부분 양쪽에 써주면 됩니다**
help(print)

Help on built-in function print in module builtins:

print(*args, sep=' ', end='\n', file=None, flush=False)
    Prints the values to a stream, or to sys.stdout by default.
    
    sep
      string inserted between values, default a space.
    end
      string appended after the last value, default a newline.
    file
      a file-like object (stream); defaults to the current sys.stdout.
    flush
      whether to forcibly flush the stream.
import time

for i in range(10):
	print(i, end = '', flush = True)
    time.sleep(1)
  • flush가 False일 경우(buffered) 모든 루프가 종료된 뒤에 출력된다.
    - 0 1 2 3 4 5 6 7 8 9가 10초 뒤 동시에 출력
  • flush가 True일 경우(flushed) 루프가 돌 때 마다 print된다.
    - 1초마다 숫자 1개씩 출력

참고 : https://velog.io/@janeljs/python-print-sep-end-file-flush, https://lineho.tistory.com/21

메모리 주소

  • 물리적인 메모리 공간을 식별하기 위해 사용되는 고유주소
  • 변수를 참조할 때에는, 메모리의 주소가 아니라 해당 메모리 주소에 저장된 데이터를 참조한다.

아스키코드 변환

ord() : 문자 -> 아스키코드
chr() : 아스키코드 -> 문자

  • 문자의 대소 비교는 아스키코드가 기준

datetime 라이브러리

  • datetime은 자체 내장 함수가 아니고, 라이브러리 불러와서 쓰는 것임
from datetime import datetime
dtnow = datetime.now() # 현재날짜, 시간
dtnow.year
dtnow.month
# ...

문자열과 튜플

  • 문자열을 , 없이 나열하면 공백없이 합쳐짐
stc = 'Hello' 'World'
print(stc) # HelloWorld
  • 문자열을 , 로 구분하면 튜플이 됨
stc = 'Hello', 'World'
print(stc) # ('Hello', 'World')
- 이는 원래 파이썬으로 튜플을 생성할 때 소괄호를 생략할 수 있기 때문임.

문자열 포맷팅

{자릿수 지정(그냥 순서대로 할거면 공백):,(1000단위 쉼표).nf(소숫점f n자리까지 반올림)}
(매번 그만 찾아보자)

name = '요시롱'
year = 2023
num = 1234.56789

print('이름:{0}, 연도:{1}, 숫자:{2}'.format(name, year, num))
## 굳이 숫자를 쓰지 않아도 됨

print('이름:{0:>10}, 연도:{1:<10}, 숫자:{2:^20}'.format(name, year, num))
## {위치 : 총 숫자 자릿수(칸 수)}
## 오른쪽 정렬 >, 왼쪽 정렬 <, 중앙정렬 ^
## 빈자리 채우기 : 이름:{위치 : *^10} => ***요시롱****
## f-string에도 똑같이 사용됨

print('이름:{0}, 연도:{1}, 숫자:{2:.2f}'.format(name, year, num)) 
## 2번째 값을 : 소숫점(f) 2자리까지 반올림

print('이름:{}, 연도:{}, 숫자:{:,.2f}'.format(name, year, num))   
## 자리수 지정은 그대로 : 1000단위로 쉼표찍고, 소숫점(f) 2자리까지 반올림
  • 대세는 f-string

round()

  • 파이썬의 round()는 우리가 흔히 쓰는 사사오입이 아닌 오사오입을 사용

  • 사사오입 : 4 이하 내림, 5 이상 올림

  • 오사오입 : 5 미만 내림, 5 초과 올림, 5일 경우 앞자리가 홀수이면 올림, 짝수면 내림

  • 25세가 20대임을 나타내기위해 round(25, -1) 을 사용하려다 이상하다는 것을 깨닫고 새로 공부했다..!!

TypeError와 callable

  • python에서 callable 이란 호출가능한 클래스 인스턴스, 함수, 메서드 등 객체를 의미
  • 내장함수이름을 변수명으로 사용하면, 해당 내장 함수를 '불러올'수 없다.

역시 CS 공부를 제대로 해야만...

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

즐겁게 읽었습니다. 유용한 정보 감사합니다.

답글 달기