본문 바로가기
Programming/Python

[Python] 기본 연산, 변수, 리스트, 튜플, range

주피터 노트북 실행하는 다른 방법

Anaconda prompt 에서 jupyter notebook 입력

여기서 기본 명령어(mkdir, cd 등) 사용 可

 

주피터 노트북 버전확인

import sys

print(sys.version)

 

현재 경로 확인

!dir

 

 

kernal: 핵심 프로그램과 연결할수있냐 없냐 개념 (시스템 중심, 출력여부 결정)

# : 주석 달

 

shift enter: code run

 

;   해당 줄 명령어 종료 및 새 명령어 입력 可

print("  ")  : " " 안 텍스트 내용 출력  (" "과 ' ' 차이없고 둘 다 사용 可)

print 안에 ,로 두개  -> 두 개 나란히 출력 with one space   (+는 공백 無)

                          \n  -> 줄바꿈 (문자열에서만 가능)

                          \t   -> tap (간격 tap만큼 띄우기)

 

print("first", end=" ");print("second")    -> end=" "로 두 명령어를 한 줄에 출력 -> first second

 

 

A = esc + a : add code space above

B = esc + b : add code space below

D  (두번 클릭) = esc + x : delete the current code  

 

ctrl + ent: run the current code only

art + ent: run and create another code space below

==========================================================

사칙연산: 기본 계산기와 같이 수식만 입력 후 출력 ( '=' 입력 필요 없음)

                괄호는 소괄호 ()만 여러개 사용

단, 거듭제곱 표현  '^' = **   ex) 2 ** 5:       2^5

                  13 // 5:    몫 출력

                 13 % 5:  나머지 출력

 

 

type(): () 안의 내용물에 대한 성질(type)을 표현

ex) type(3)      -> int        : integer 의미

      type(1.2)   ->  float    : 실수

      type('r')    -> str         : string (문자열)    반드시 ''안에 표현해야 오류 안생김

   type(True)   -> bool      : 논리 연산결과  (True, False만 可)

 

 

성질 변형 방법

int() : 정수로 변환   str(): 문자로 변환   float(): float(실수)로 변환 ...

ex) 문자 -> 정수  변환이라

num_str = "720"
num_str = int(num_str)
type(num_str)  -> int로 출력

 

 

진수변환 표현

bin()  2진수

oct()  8진수

hex()  16진수

 

 

비교연산자

== 두 값이 같은지 판별

!=  두 값이 다른지 판별

 

논리 연산자(bool형식),   bool()

and: 둘 다 참이여야 참. 나머지는 거짓

or : 둘 다 거짓이여야 거짓. 하나라도 참이면 참

not A: A가 참이면 거짓이고 거짓이면 참

 

==========================================================

변수 지정  (단 기존 코드 언어는 생 변수로 사용 불가, 숫자로 시작하는 변수 불가)

공백 포함 변수 설정 불가 ->  '_'  사용해 공백 표현(snake case) 또는 매 단어 첫 글자 대문자로 표현(Pascal case)

Del 변수  <- 지정한 변수 삭제

 

 

ex) a = 12340        s = " text "

문자 지정된 변수 s는  ' ' 필요없이 바로 사용 가능.

문자 안 따옴표: 양쪽 ' ' 후 필요 따옴표 ' ' or " " 입력

양쪽 삼중 따옴표 ' ' ' or " " " : 문자 안 따옴표와 여러 문자열 동시 입력시 사용.

 

 

문자 사칙연산

+ : 문장 그대로 이어짐

* : 곱해진 값 만큼 문자 반복 입력

 

=============================================================

자료구조 형태 비교

1. list = [1,2,3,4]                    <- 빈번 사용

2. tuple = (1,2,3,4)                <- 드물게 사용

3. set = {1,2,3,4}                   <- 거의 안 씀

4, dictionary = { 10 : " English", 20 : "Math" }           <- 빈번 사용

 

 

list: [ ] 이용해서 생성 (type = list)

index? : 변수[0] : list 1번째 값 출력     변수[-1]: list 마지막 값 출력.

list 값 변경: 변수 할당  ex)  변수[1] = 값    ->   변수 -> [ ? ,  값,  ?,  . . .  ]

                       문자인 경우 '값' 으로 입력

list 길이 재기: len(list)

 

 

list 연산

+ : 두 리스트 그대로 합침

* : 해당 리스트 숫자만큼 반복함 (결과는 변수 지정해서 출력)

 

일부 범위만 리스트 출력  (슬라이싱     리스트 슬라이스     ->     리스트변수[숫자:숫자]  개념 

ex) list_data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

list_data[숫자] = X   -> 해당 순서의 원소를 X로 변경
list_data[0:3] = list_data[:3]  <- 첫번째부터 4번째 미만 [0, 1, 2]

list_data[4:8]    <- 5번 째부터 8번째 미만 [4, 5, 6, 7]
list_data[7:]      <- 7번 쨰부터 끝까지.
list_data[::2]     <- 0번 째부터 2칸씩 띄워 나오는 숫자만 출력

list_data[::-1]    <- 역순으로 출력

리스트 안의 리스트 찾기  list_data[기존 순서][리스트안안의 순서]

 

 

일부 리스트 항목 삭제

ex)  del list_data[6]   <- 7번째 값 '6' 삭제.

       del list_data[6:]   <- 7번째 값 '6'부터 뒤에 전부 다 삭제.  (위에 방식 응용 可)

 

리스트 항목 존재여부 판단

print(5 in list_data)  -> Ture 출력

print(6 in list_data) -> False 출력 (만약 위 del을 실행하고나서의 경우)

 

리스트 항목 단순 추가: append()

Ex) list_data.append('Thomas')   -> 숫자 뒤에 문자열 'Thomas' 추가

 

리스트 항목 특정 추가: insert()

Ex) list_data.instert(1, 'Paul' )     -> 2번 째 자리에 'Paul' 추가.

 

다른 리스트를 이어서 연장: extend()

Ex) list_data.extend(['A', 'B'])      -> 뒤에 그대로 'A,' 'B' 한번에 연장 추가

 

리스트 특정 항목 제거: remove()

Ex) list_data.remove('Thomas')      -> 'Thomas'만 제거

 

리스트 뒷부분 단순 제거: pop()

Ex) list_data.pop()                       -> 맨 뒤에 것만 단순 제거

 

리스트 위치 찾기 index()

Ex) list_data.index('Paul')            -> 'Paul'의 위치인 2번 째, '1'로 출력.

 

 

리스트 항목 셈 count()

Ex) list_data.count('A')                 -> 1로 출력 (A의 개수) 

     만약 리스트 안의 또다른 리스트 ['A']가 있었어도 밖의 'A' 하나, 1로 출력.

 

리스트 자동 정렬 sort()

기본값 = 오름차순 = list_data.sort() = list_data.sort(reverse=False)

내림차순 설정 = list_data.sort(reverse=True)

 

리스트 역순 정렬 reverse()

list_data.reverse()   ->    해당 명령어 입력시, 원본 list_data 역순으로 변형

 

리스트 조인 join()     -> 리스트 각 괄호와 콤마를 지우고 출력 

ex) print(" ", join(리스트변수) )      -> 구분은 " " 공백으로 하고 기호없이 다 나열해라

                                                                     "\n" 한칸씩 "\n\n" 두칸씩 엔터쳐서 구분

리스트 split: 스트링을 리스트형태로 기준을 갖고 잘라 만들어주는 함수

ex) string = "A/B/C"

   string.split("/")  ->  '/' 기준으로 잘라 만들어줘  -> ['A', 'B', 'C']

 

리스트화하기: list(해당 집군)

 

 

 

 

 

 

==================================================================

(!) 튜플은 리스트와 유사하지만 한번 생성(입력)시, 그 이후 변경 불가

소괄호 없이도 생성 可 ex) tup = 1, 2, 3, 4   ->   (1, 2, 3, 4)

빈 튜플만 만들기 : 변수 = ()    <- list, set, dict와 동일

한개만 튜플 생성 -> ex) tup = 숫자,     <- 이래야 tuple 可

튜플 type = tuple

tuple[숫자] 로 index, 기존 list의 index(), count() 可

 

튜플화 하기: tuple(해당 집군)  

 

한 번에 변수 지정(=tuple unpacking)  a , b, c = 3개집군   ->  print시 그대로 (단, 반드시 서로 개수 맞아야 함)

                                             list, set, dict 모두 됨

 

range 함수

data = tuple(range(1,100))

data

-> 1부터 100미만까지(99까지) 쭉 tuple로 나옴

 

range(1,100,2)  <- 2칸씩 띄워 1부터 출력 (홀수만 나옴.)

range(0,100,2)  <- 2칸씩 띄워 0부터 출력 (짝수만 나옴.)

 

 

 

 

728x90
반응형