본문 바로가기

Python

20210104_Python 입문2, 가상환경 설정, pip, 데이터 형태, 문자,숫자 함수 등

Python 입문 02

Print 에서 % ,format사용

어제 % 사용 이어서 알아볼 예정

1. % 와 자리수

print("Q: %6d, P: %4.3f" %(324, 6843.2356))

이 처럼 %d, %f 에 숫자가 들어가는 경우 숫자는 자리수를 이야기함

  • %6d : 6자리 정수
  • %4.3f : 4자리 그리고 소수3자리까지의 실수

2. 숫자 키값 사용

print("Q: {0: 6d}, P: {1: 4.3f}").format(324, 6843.2356))

이렇게 키값을 사용하여 자리수 지정 출력도 가능. 주의!({0: 6d}에서 :를 붙여써야함. 즉 키지정은 붙여 쓰자 )

3. 문자 키값 사용

print("Q: {a: 6d}, p: {b: 4.3f}".format(a=324, b=6843.2356))

문자 키값도 가능함 주의 할점은 뒤에 문자와 =으로 연결해줘야 함

4. escape 코드
\n : 개행 (enter 효과)
\t : 탭
\ 문자 : 해당 문자 그대로 표현
\r : 캐리지 리턴
\f : 폼 피드
\a : 벨 소리
\b : 백 스페이스
\000 : 널 문자


Python 가상환경 설정

같은 운영체제에 다양한 버전의 python 사용시 충돌 발생해서 다 밀어버리는 경우도 생김 (여러 프로젝트 때문에)

1. cmd -> cd \ 해서 c드라이브로 들어감
2. python -m venv python_basic(만들고 싶은 파이썬 폴더) 로 커맨드 입력 (환경 폴더 생성됨)
3. 파이썬 폴더에 include, lib, scripts 파일 생성된거 확인
4. cmd 로 Scripts 폴더 들어가서 activate.bat 로 가상환경 실행 , deactivate.bat로 가상환경 나오기
윈도우 그냥 activate , deactivate 커맨드로 가능

나중에 잘못 되면 include, lib, Scripts 만 지우거나 소스코드만 백업해 놓고 프로젝트 폴더만 날려버리면 됨

5. 가상환경에서 설치할 패키지

  • simplejson (이미 만들어진 것을 가지고 빠르게 개발하는게 더 좋다.) cmd 가상환경에서 'pip search simplejson'
    근데 난 에러 났다. 'pip list' 확인하고 pip upgrade 했는데도 search에러 나서 그냥 pip install simplejson 했는데 install 됨. 제거는pip uninstall simplejson
    [알아보니 search 문제 생겨서 막아놨다고 한다.]
  • simplejson update 는 pip install --upgrade simplejson (난 현재3.17.2 )
  • pip show simplejson 해도 에러가 뜬다.
  • 정리] pip command : install, search, uninstall, show, upgrade
  • 가상환경 내에서 cmd로 code 실행시 VS Code 실행 됨
  • import simplejson as json에서 오류가 났다. 실행은 되지만 import가 되지 않는것 같아 찾아보니 view - command palette - select interpreter 가 예전의 환경으로 되어 있었다.
  • *참고한 블로그 <-클릭**

Python 자료형

1. 데이터 타입, 숫자형 및 연산자

  • 데이터 타입
    print(type(변수)) 로 타입 확인가능

    • Boolean : bool -> True , False (1, 0)
    • Numbers : 숫자 (int: 정수, float : 실수)
      • 주의) 5. -> float이고, int + float -> float
      • 여기서 int, float, complex(복소수)를 씌우면 형 변환됨, boolean도 int 씌우면 숫자 1, 0 으로 변함
    • String : str->문자열(시퀀스)
    • Bytes :
    • Lists : list(시퀀스)
    • Tuples : tuple(시퀀스)
    • sets : set 집합
    • dicitonaries : dict 사전
  • 숫자형 연산자

    • + : 더하기
    • - : 빼기
    • * : 곱하기
    • / : 나누기 (몫 소수점 까지 모두)
    • // : 나누기(몫 정수 까지)
    • % : 나누기 (나머지)
    • ** : 제곱(지수)
    • 단항 연산자 : += , *=
      •  y = 100  
         y += 100 # y에 100만큼 더해라  
         y *= 100 # y에 100만큼 곱해라   
  • 수치 연산 함수

    • abs(x) : 절대값
    • int(x) : int로 변환
    • float(x) : float으로 변환
    • divmod(x, y) : x/y(몫) , x%y(나머지)
    • pow(x, y) : x의 y승
    • complex(re, im) : 실수(re) , 허수(im) -> 복소수
  • 수학관련 패키지 math 사용

    • 제일 먼저, import math로 패키지 불러오기
    • math.ceil(x) : X이상의 가장 작은 정수 반환
    • math.floor(x) : X이하의 가장 큰 정수 반환
    • math.pi : 원주율 , 파이
  • 2진수 변환 : bin(X) 0b로 시작함


2. 문자형 및 데이터 타입

  • 문자형 연산자

  • 문자열 생성 (문자 변수 선언)

    str1 = "Hello world" 
    str2 = str("Hello world!")
  • 문자열 길이 구하기 (len 함수 사용, 공백, 마침표 포함 계산)

    print(len(str1)) 
    print(len(str2))
  • 이스케이프 문자 (\백슬래시 사용해서 문자 그대로 표현 or 줄바꿈, tab 등)
escape_str1 = "I know \"This word\""
  • Raw String (보통 경로 표현시에 사용)

    raw_s1 = r'C:\Programs\games\Overwatch'
  • 멀티라인 (\ 쓰면 여러 코드 행을 연결)

      multi = \
      """
      멀
      티
      라
      인
      """
  • 문자열 연산
    (같은 문자끼리 *, + 가능 문자와 숫자 *는 가능한데, +는 불가)

  • 문자열 in ,not in 사용

    print('k' in str1) # str1에 k가 포함되어 있는가? -> 논리로 결과냄
    print('k' not in str1) # str1에 k가 포함되어 있지 않은가? -> 논리로 결과냄
  • 문자열 형 변환

    print(str(45)) # 77을 type 확인해보면 str임
    print(str(47)+'a') # 문자 숫자 합 에러 없음 어차피 str 처리되서
  • 문자열 함수

    a = 'boy'
    b = 'Girls'
    print(a.isupper()) # . 앞의 변수(a)가 isupper 하니?
    print(b.endswith('s')) # . 앞의 변수(b)가 's'로 끝나니?
    print(a.capitalize()) # . 앞의 변수를 대문자로 바꾼다.
    print(a.replace('bo', 'Gu')) # . 앞의 변수에서 bo를 Gu로 대체한다.
    print(list(reversed(a))) # boy를 거꾸로 리스트로 반환
  • 문자열 슬라이싱 (이해 필수!)

    슬라이싱 번호 이해

X o X r X a X n X g X e X
0 o 1 r 2 a 3 n 4 g 5 e 6
-6 o -5 r -4 a -3 n -2 g -1 e 0


NRC

하루평 : 저번에 배운것 같아도 진도가 느리게 가는것 같다.... 더 열심히 오전 시간도 활용해 보자