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

4 분 소요

Python 입문 02

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

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
a = "niceman" b = "orange"
print(a[0:3]) # a의 0자리 부터 2자리 까지 출력(아니면 0공간부터 3공간 까지)
print(a[0:]) # 모두 출력
print(a[0:len(a)]) # 모두 출력
print(a[:]) # 모두 출력

print(b[0:4:2]) 
# 0공간 부터 ~4공간 사이 나오는데 2 공간 씩 건너 뜀
# 0번째 문자 부터 찍고, 2개 이동해서 찍기 4번째 문자 제외하고 까지
print(b[0:7:3]) 
# 0공간 부터 ~7공간 사이 나오는데 3 공간 씩 건너 뜀
# 0번째 문자 부터 찍고, 3개 이동해서 찍기 7번째 문자 제외하고 까지
print(b[1:-2]) 
# 1공간 부터 ~-2공간 사이 나옴
# 1번째 문자 부터 찍고 -2번째 제외하고 까지
print(b[::-1]) 
# 모두 나오는데 역순으로 1개 이동해서 찍기



NRC

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

태그:

카테고리:

업데이트: