본문 바로가기

Programming

[Python][문법] 기초 - 2. 변수 타입

반응형
#!/usr/bin/env python
# coding: utf-8

# # 1. 파이썬 데이터 타입 및 변수

# ### 1.1 변수 및 대입
# - variable
# - structure
# - class

# ### 1.2 데이터 타입 종류

# <center>타 입|<center>설 명|<center>예
# :---|:---|:---
# int|정수형 데이터|100
# float|소숫점을 포함한 실수|10.25
# bool|참/거짓|True
# str|문자열|'LG Electronics'
# list|리스트, 순서가 있는 배열, 수정/추가/삭제가 가능한 자료 구조|[1, 2, 3, 'a', 'b']
# tuple|튜플, 순서가 있는 배열, 수정/추가/삭제가 불가능한 자료 구조|(1, 2, 3, 'a', 'b')
# dict|사전, {key: value}로 구성되어있는 자료 구조|{'Math': 99, 'English': 88, 'Korean': 78}
# set|집합, {key}로 구성되어있는 자료 구조|{'a', 'b', 'c'}
#
# <참고> None Type

# ### 1.3 정수(int) 타입
# - 10진수
# - 2진수
# - 8진수
# - 16진수

# In[1]:


# 10진수
a = 365


# In[2]:


# 2진수
b = 0b101101101


# In[3]:


# 8진수
c = 0o555


# In[5]:


# 16진수
d = 0x16d


# In[ ]:





# ### 1.4 실수(float) 타입

# In[ ]:


fa = 3.14


# In[ ]:


fb = 3.1415e2


# In[ ]:





# ### 1.5 불린(boolean) 타입

# In[ ]:


ba = True


# In[ ]:


bb = False


# In[ ]:


ba and bb


# In[ ]:





# ### 1.6 문자열(str) 타입

# In[ ]:


# 문자열 생성
sa = 'Hello World'
sb = 'one way of writing a string'


# In[ ]:


sc = "another way"


# In[ ]:


sd = '''
This is a longer string that
spans multiple lines
'''


# In[ ]:


print(sd)


# In[ ]:


# 문자열 카운트
sd.count('\n')


# In[ ]:


# 문자열 수정
a = 'this is a string'
a[10] = 'f'    # 문자열 수정 불가
b = a.replace('string', 'longer string')
b


# In[ ]:


# type 변경
a = 5.6
s = str(a)
print(s)


# In[ ]:


# Escape 문자
# \n \t \\ \' \" etc
s = '12\\34'
print(s)

se = r'this\has\no\special\characters'
print(se)


# In[ ]:


# 문자열 연산
a = 'this is the first half '
b = 'and this is the second half'
a + b


# In[ ]:


# 문자열 연산
a = '='
a * 50


# In[ ]:


# Slicing
a = "20010331Rainy"
print(a[:8])
print(a[8:])


# In[ ]:


# 문자열 format
template = '{0:.2f} {1:s} are worth US${2:d}'


# In[ ]:


template.format(4.5560, 'Argentine Pesos', 1)


# In[ ]:


# 문자열 합치기
",".join('abcd')
",".join(['a','b','c','d'])


# In[ ]:


# 문자열 나누기
a = "a:b:c:d"
a.split(':')


# In[ ]:


# Strip
a = " hi "
a.rstrip()
a.lstrip()
a.strip()


# In[ ]:


# upper(), lower()
a = " Hi "
print(a.upper())
print(a.lower())


# #### 자주 사용하는 문자열 메소드

# <center>메소드|<center>설 명
# :---|:---
# 문자열.startswith(prefix)|문자열이 prefix로 시작하는지 검사하여 True/False 반환
# 문자열.endswith(suffix)|문자열이 suffix로 끝나는지 검사하여 True/False 반환
# 문자열.format(value)|문자열의 특정 값을 value로 치환한다.
# 문자열.replace(old, new)|s에 있는 old를 new로 바꾼다.
# 문자열.split(sep)|sep를 구분자로 하여 문자열을 분할한다.
# 문자열.strip(chars)|앞이나 뒤에 나오는 공백이나 chars로 지정된 문자들을 제거한다.

# ### <참고>
# - ASCII CODE
# - UNICODE

# - utf-8
# - cp949

# In[ ]:





# ### 1.7 리스트(list) 타입

# In[ ]:


# 리스트 생성
a = list()
a = []
b = [1, 2, 3, 4, 5]
c = ['aaa', 'bbb', 'ccc']
d = [1, 2, 'aaa', 'bbb']
e = [1, 2, ['aaa', 'bbb']]


# In[9]:


# 인덱싱 & 슬라이싱
a = [1,2,3,4,5,['a','b','c','d'],7,8,9]


# In[10]:


a[0]


# In[11]:


a[-1]


# In[13]:


a[0:4:2]


# In[15]:


a[5]


# In[16]:


a[5][2]


# In[14]:


# pointer
b = a[5]
b[0] = 'k'


# In[ ]:


a


# In[ ]:


from copy import deepcopy
c = deepcopy(a[5])
c[1] = 'm'
c


# In[ ]:


a


# In[ ]:


1 in a


# In[ ]:


1 not in a


# In[ ]:


# function
len(a)
sum(b)
max(b)
min(b)

del(a[0])

# method
a.append(10)
a.sort()
a.reverse()
a.remove(1)
a.count()


# In[ ]:


# extend()
b = [1,2,3]
b.extend([4,5])
b


# **<참고> 함수의 인자로 자주 활용되는 리스트**

# In[ ]:





# ### 1.8 튜플(tuple) 타입

# In[17]:


# 튜플의 생성
a = tuple()
a = ()
b = (1,)    # 마지막에 콤마 필요
c = (1, 2, 3)
d = 1, 2, 3 # packing & unpacking
e = (1, 2, ('ab', 'cd'), 3, 4)


# **튜플은 수정 및 변경 불가**

# In[19]:


c[0] = 9


# In[20]:


del c[1]


# In[21]:


# packing & unpacking
x,y,z = (1,2,3)
print(x,y,z)


# In[22]:


def f_a():
    return (4,5,6)


# In[23]:


a,b,c = f_a()
print(a,b,c)


# In[24]:


x = 1
y = 2

print('Before: ', x, y)

x, y = y, x

print('After : ', x, y)


# In[ ]:





# ### 1.9 사전(dict) 타입

# In[25]:


# 사전의 생성
d = {1:'Hello World', 'class':'python', 'pi':3.14, 'lst':[1,2,3]}


# In[26]:


d[1]
d['class']
d['pi']
d['lst']


# In[ ]:


# 순차적인 Index 접근 불가
# dict 순서는 hash 순서
d[0]


# In[ ]:


d.get('x','default value')


# In[ ]:


# 사전 추가 & 삭제
d['add'] = 'add value'
del d['class']


# In[ ]:


d


# In[ ]:


# 수정 가능한 변수는 key 로 사용 불가
dd = {[1,2,3]:'value'}


# In[ ]:


# keys(), values(), items()
d.keys()
d.values()
d.items()


# In[ ]:


for k in d.keys():
    print('key: ', k )


# In[ ]:


'pi' in d


# In[ ]:


d.clear()


# ### 1.10 집합(set) 타입

# In[27]:


# 집합의 생성
s = set([1,2,3,4])

x = {2,3,2,3,4,5,1}
y = {3,4,5,6,7}


# In[ ]:


x


# In[28]:


x | y    # 합집합


# In[29]:


x & y    # 교집합


# In[30]:


x - y    # 차집합


# In[31]:


x ^ y    # 대칭 차집합


# In[ ]:


x.add(10)
x


# In[ ]:


x.update([11,12,13])
x


# In[ ]:


x.remove(13)
x


# In[ ]:





# ### 1.11 None 타입

# In[32]:


a = None
a is None
b = 5
b is not None


# In[33]:


def add_multiply(a, b, c=None):
    result = a + b

    if c is not None:
        result = result * c

    return result


# In[34]:


add_multiply(1,2)


# In[ ]:





# ### 1.12 타입 변환

# In[ ]:


a = 1


# In[35]:


type(a)


# In[36]:


isinstance(a, int)


# In[ ]:


float(1)


# In[ ]:


int(3.14)


# In[ ]:


str(3.14)


# In[ ]:


float('3.14')


# In[ ]:


float('Hello World')


# In[ ]:


tuple([1,2,3])


# In[ ]:


list((1,2,3))


# In[ ]:





# ### 1.13 변수 할당

# In[38]:


a = [1,2,3]
b = [1,2,3]
c = a
d = a[:]    # Numpy, Pandas 에서는 View를 제공(메모리의 효율적 사용)


# In[ ]:


a is c


# In[ ]:


a is b


# In[ ]:


a is d


# In[ ]:


a == b


# In[39]:


id(a)
id(b)
id(c)
id(d)


# In[ ]:





# ### 1.14 변수 활용

# In[40]:


students = [
               {'num':'1','name':'김철수','kor':90,'eng':80,'math':85,'total':0,'avg':0.0,'order':0 },
               {'num':'2','name':'박제동','kor':90,'eng':85,'math':90,'total':0,'avg':0.0,'order':0 },
               {'num':'3','name':'홍길동','kor':80,'eng':80,'math':80,'total':0,'avg':0.0,'order':0 }
           ]


# In[ ]:


students[0]


# In[ ]:


students[1]['kor']


# In[ ]:





# ---

# In[ ]:


# end of file


# In[ ]:





반응형
LIST