본문 바로가기
Algorithm/자료구조, 알고리즘

[코딩 + 알고리즘 완주반] 3일차. 데이터타입, 숫자형, 문자형 및 연산자, 리스트, 튜플

by newnu 2021. 3. 17.
반응형

# 파이썬 데이터 타입 종류

Boolean

Numbers

string

bytes

lists

tuples

sets

dictionaries

# 데이터 타입

v_str1 = "Niceman"
v_bool = True
V_str2 = "?Goodboy"
v_float = 10.3
v_int = 7
v_dict = {
    "name" : "Kim",
    "age" : 25
}
v_list = [3,5,7]
v_tuple = 3,5,7
v_set = {7,8,9}

print(type(v_tuple))
print(type(v_set))
print(type(v_float))

# 숫자형 및 연산자

+ : 더하기

- : 빼기

* : 곱하기

/ : 나누기

// : 몫

% : 나머지

** : 지수

단항연산자 += -= *= /=

i1 = 39
i2 = 939
big_int1 = 9999999999999999999999999999999999999999999999999
big_int2 = 7777777777777777777777777777777777777777777777777
f1 = 1.234
f2 = 3.784
f3 = .5
f4 = 10.

print(i1*i2)
print(big_int1 * big_int2)
print(f1**f2)
print(f3 + i2)

result = f3+i2
print(result,type(result))

a = 5.
b = 4
c= 10

print(type(a),type(b))
result2 = a+b # 실수로 자동 형변환
print(result2)

# 형변환
# int, float, complex(복소수)
print(int(result2))
print(float(c))
print(complex(3))
print(int(True))
print(int(False))
print(int("3"))
print(bool(2))
print(complex(False))

# 단항 연산자 +=,-=, *=, /=
y = 100
y +=100  # y = y+100
print(y)

# 수치 연산 함수
print(abs(-7)) # 절대값
n,m = 10,20
n1,m1 =  divmod(100,8) # 각각 몫, 나머지 할당
print(n1,m1)

import math
print(math.ceil(5.1)) # 올림
print(math.floor(10.8)) # 내림

# 문자형 관련 연산자

문자열 생성, 길이

이스케이프 문자

문자열 연산

문자열 형 변환

문자열 함수

문자열 슬라이싱

#문자열, 문자열 연산, 슬라이싱

str1 = "I am Boy"
str2 = 'Niceman'
str3 = ''
str4 = str()

print(len(str1), len(str2),len(str3),len(str4))

escape_str1 = "Do you have a \"big collection\""
print(escape_str1)
escape_str2 = "Tab\tTab\tTab"
print(escape_str2)

#Raw String
raw_s1 = r'C:\programs\Test\Bin'
print(raw_s1)
raw_s2 = r"\\a\\a"
print(raw_s2)

#멀티라인
multi = \
"""
문자열

멀티라인

테스트
"""
print(multi)

# 문자열 연산
str_o1 = '*'
str_o2 = 'abc'
str_o3 = "def"
str_o4 = "Niceman"

print(str_o1*10)
print(str_o2 + str_o3)
print('a' in str_o4)
print('a' not in str_o4)

# 문자열 형 변환
print(str(77))
print(str(10.4))

# 문자열 함수

# a = 'niceman'
# b = 'orange'

# print(a.islower())
# print(a.endswith('e'))
# print(b.endswith('e'))
# print(a.capitalize())
# print(a.replace('nice','good'))
# print(list(reversed(b)))

#문자열 슬라이싱

a = 'niceman'
b = 'orange'

print(a[0:3])
print(a[0:len(a)])
print(a[:])
print(b[0:4:2])
print(b[1:-2])
print(b[::-1])

 

# List , Tuple

리스트 튜플 특징

인덱싱

슬라이싱

삽입, 삭제, 함수 사용

#각각 변수로 설정하는 건 비효율적 ---> 리스트
# ex) 이름, 수학점수, 영어점수 ,...
name1 = 'Lee'
name2 = 'Park'

#리스트 (순서O 중복 O ,수정 O , 삭제 O )

#선언
a=[]
b = list()
c = [1,2,3,4]
d= [10,100,'Pen','Banana','Orange']
e = [10,100,['Pen','Banana','Orange']]

#인덱싱
print(d[3])
print(d[-2]) # 뒤부터
print(d[0]+d[1])
print(e[2][1])
print(e[-1][-2])

#슬라이싱
print(d[0:2])
print(e[2][1:3])

#연산
print(c+d)
print(c*3)
print(str(c[0])+'hi') # 숫자형, 문자형 덧셈 불가능 -> 형변환

# 리스트 수정, 삭제
c[0]=77
print(c)

c[1:2] = [100,1000,10000] # 리스트 수정 가능
print(c)
c[1] = ['a','b','c']
print(c)

del c[1]
del c[-1]

# 리스트 함수
y = [5,2,3,1,4]
y.append(6)
y.sort()
y.reverse()
y.insert(2,7) # 2번 인덱스에 7 삽입

# 삭제 - del, remove, pop
y.remove(2) # 값 2 삭제
y.pop()

ex = [88,77]
y.extend(ex) # 리스트의 원소로 이어붙이기
print(y)

# 튜플 (순서 O, 중복 O, 수정 X, 삭제 X)
a = ()
b=(1,)
c = (1,2,3,4)
d = (10,100,('a','b','c'))

#del c[2] #불가능
print(c[3])
print(d[2][1])

print(d[2:])
print(d[2][0:2])

print(c+d)
print(d*3)

#튜플 함수
z = (5,2,1,3,4,1)
print(z)
print(3 in z)
print(z.index(3)) # 값 3의 인덱스
print(z.count(1)) # 튜플에 1이 몇개 있는지 count
반응형