LiJell's 성장기

01.python_01_변수와 리스트 본문

Bigdata/파이썬_Python

01.python_01_변수와 리스트

All_is_LiJell 2021. 12. 14. 17:47
반응형

# 변수 생성
# 변수 : 값을 저장하기 위한 객체(object)
# 변수 명명 규칙
# - 대소 구분, 숫자로 시작 불가(숫자 포함 가능), 특수기호(!@#) 삽입불가(_dict : _ 사용가능)
# - 예약어(함수명, 함수 내 인자명, 패키지 이름... if, for, while )

 

파이썬의 숫자 종류 

1. 정수형, 실수형, 8진수와 16진수가 있다. 

# 정수형
a = 1
a = -1
a = 0

# 실수형
a = 1.2
a = -3.45
a = 4.25E10
a = 4.25E-10 
# 컴퓨터식 지수 표현 방식으로 E는 10을 뒤에 오는  숫자는 제곱의 수를 얘기한다.

# 8진수와 16진수 
a = 0o177 # 8진수를 만들기 위해서는 숫자가 0o 또는 0O 으로 시작하면된다. 
a = 0x8ff # 16진수는 0x로 시작하면된다.

2. 문자열은 string으로 문자, 단어 등으로 구성된 문자들의 집합을 말한다. 

v1 = 'abcd'


# 모듈(module)
# 패키지(package)
# import 모듈 호출(loading)

round(1.5) = 2

# trunc(1.5) 불가

# 1) 모듈 호출 : 하위 함수 (모듈명.함수명)

 

import math
import math as ma  #as (alias : 별칭)

ma.trunc(1.5)

import math as ma  

ma.trunc(1.5) = 1 #trunc는 버림이다.



# 2) 모듈 내 함수 직접 호출 : 함수명만 사용 가능

from math import trunc
trunc(1.5) = 1


# 산술연산
3+2    
3/1.5
10-2
5*3

9//2  # 몫
9%2   # 나머지

3**2  # 거듭제곱
math.pow(3, 2)  # 3의 제곱

# 파이썬 기본 구조
# 1. 리스트(list)  [ ]  cf. R: c()
# - 기본 자료 구조 (여러 상수를 동시 전달)
# - 1차원 
# - 서로 다른 데이터 타입 가입

# 1) 리스트 생성

l1= [1,2,3,4]
l1

type(l1)

l2 = [1,2,3,'4']
type(l2)

t1 = (1,2,3,4) # tuple : 상수 (변하지 않는 값 -> 변경이 불가능한 값)
type(t1)
t2 = 1,2,3,4


# 2) 색인(indexing)

파이썬은 0부터 숫자를 센다.

l1
l1[0]
l1[1]
l1[-1] # reverse indexing
l1[-2]

l1[0:1] # n:m --> n부터 m-1 까지
l1[0:2]

# 여러 숫자 전달 불가
l2[0,2] 
l2[[0:2]]

슬라이싱 기법으로 a[0:3]을 수식으로 나타내면 

0 <= a < 3

슬라이싱으로 문자열 나누기 

>>> a = "20010331Rainy"
>>> year = a[:4]
>>> day = a[4:8]
>>> weather = a[8:]
>>> year
'2001'
>>> day
'0331'
>>> weather
'Rainy'


# 3) 수정

l1[0] = 10
l1
>>> a = "Pithon"
>>> a[1]
'i'
>>> a[1] = 'y'
error

문자열의 요솟값은 바꿀 수 있는 값이 아니기 떄문에 오류가 발생한다.

 

따라서 

>>> a = "Pithon"
>>> a[:1]
'P'
>>> a[2:]
'thon'
>>> a[:1] + 'y' + a[2:]
'Python'

이렇게 슬라이싱을 활용하여 새로운 문자열을 만들 수 있다. 

문자열 포매팅 따라 하기

 

1. 숫자, 문자열 대입

>>> "I eat %d apples." % 3
'I eat 3 apples.'

문자열 안에 숫자를 넣고 싶은 자리에 %d 문자를 넣어주고 뒤에 있는 % 뒤에 삽입 숫자를 넣어주면 된다. 

출처: wikidocs.net

 

문자열에 넣고싶은 성질에 따라서 코드를 변경해 주면 된다.

하지만 %s 코드는 어떤 형태의 값이든 변환해 넣을 수 있다. 

 

%s 코드 활용

>>> "%10s" % "hi"
'        hi'
#전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬 후 나머지는 공백으로 남겨두란 의미

>>> "%-10sjane." % 'hi'
'hi        jane.'


>>> "%0.4f" % 3.42134234
'3.4213'


>>> "%10.4f" % 3.42134234
'    3.4213'

4) 연산

l1 + 1  # 리스트와 정수(int) 연산 불가
l1 > 1  # 조건 전달 불가
    #TypeError: can only concatenate list (not "int") to list
    #TypeError: '>' not supported between instances of 'list' and 'int'


리스트 확장

[1,2,3] + [10,20,30]
# [1, 2, 3, 10, 20, 30]


원소 추가

l1 +[5]
# [10, 2, 3, 4, 5]

l1.append(6)
l1
# [10, 2, 3, 4, 6]


문자열 더하고 곱하기

'a' + 'b'
'ab'
'a'*3
'aaa'



튜플(상수) 수정

t1
t1[0] = 10
# TypeError: 'tuple' object does not support item assignment

따라서 튜플은 list로 변경한 후, 수정하고, 다시 튜플로 바꾸면 된다. 

5) 삭제

del(l1[0]) #첫번째 원소 삭제
l1

del(l1)
l1 #리스트 l1삭제



리스트 내 모든 원소 삭제

l2 = [] #l2를 빈칸으로 재 define 하면서 리스트 원소를 삭제
l2

#리스트 요소 제거 remove

remove(x)는 리스트에서 나오는 첫번 째로 나오는 x를 삭제하는 함수

>>> a = [1, 2, 3, 1, 2, 3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2, 3]

#리스트 요소 끄집어내기 pop

pop()은 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다.

pop(x)는 리스트의 x번째 요소를 돌려주고 그 요소는 삭제한다. 

 

>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]

>>> a = [1,2,3]
>>> a.pop(1)
2
>>> a
[1, 3]


#리스트에 요소 삽입 insert

inser(a,b)는 리스트의 a번째 위치에 b를 삽입하는 함수.

>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a
[4, 1, 2, 3]

#리스트 확장 extend

extend(x)에서 x에는 리스트만 올 수 있고, 원래의 a 리스트에 x리스트를 더하게 된다

>>> a = [1,2,3]
>>> a.extend([4,5])
>>> a
[1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]

a.extend([4,5])는 a += [4,5]와 동일하다. 


# 함수 (function)와 매서드 (method)
# method : 함수의 일부
# 인수 전달 방식이 다름

sum([1,2,3]) # 함수 : 인수 전달이 모두 관호 안에서 진행
6

 

import numpy as np
a1 = np.array([1,2,3])
a1.sum()
6


# 메서드
# - 객체(object)에서 호출 가능한 형태의 함수 (값을 객체가 가지고 있다)

반응형

'Bigdata > 파이썬_Python' 카테고리의 다른 글

06.python_str_method  (0) 2021.12.20
05.python_numpy  (0) 2021.12.15
04.python_def_lambda_map  (0) 2021.12.15
03.python_conditional_statements_loop  (0) 2021.12.15
02.python_02_함수와 메서드  (0) 2021.12.15
Comments