본문 바로가기

공부기록/파이썬

[파이썬] 자료구조 (2) 파이썬 기본문법

파이썬에 대해 기초적인 부분은 거의 알아서 헷갈리거나 아직 모르는 부분 위주로 정리하였음.

# 소수부가 0일 때 0을 생략
a= 5.
print(a)

# 정수부가 0일 때 0을 생략
a = -.7
print(a)

#유효숫자e^(지수) = 유효숫자 X 10^(지수)
#10억의 지수 표현 방식
a = 1e9
print(a)

#752.5
a = 75.25e1
print(a)

#3.954
a = 3954e-3
print(a)

#컴퓨터는 실수를 정확히 표현하기 어려움
a = 0.3 + 0.6
print(a)

if a == 0.9:
    print(True)
else:
    print(False)

# round() (첫번째 인자 : 실수형 데이터, 두번째 인자 : 반올림하고자하는 위치 -1)
# 123.456을 소수점 셋째 자리에서 반올림
a = round(123.456, 2)
print(a)

a = 0.3 + 0.6
print(round(a, 4))
if round(a,4) == 0.9:
    print(True)
else:
    print(False)


# / (나누기 연산자 => 실수형으로 처리)
# % (나머지연산자)
# // (몫 연산자)
# ** (거듭제곱 연산자)
    
# 리스트 자료형
a = [1,2,3,4,5,6,7,8,9]
print(a)

# 인덱스 4, 즉 5번째 원소에 접근
print(a[4])
# 빈 리스트 선언 방법
a = list()
print(a)
# 빈 리스트 선언 방법
a = []
print(a)

# 크기가 N이고, 모든 값이 0인 1차원 리스트 초기화하는 법
n = 10
a = [0] * n
print(a)

a = [1,2,3,4,5,6,7,8,9]
#뒤에서 첫 번째 원소 출력
print(a[-1])

#뒤에서 세 번째 원소 출력
print(a[-3])

#네 번째 원소 값 변경
a[3] = 7
print(a)

# : (시작 인덱스 : 끝 인덱스 -1)
# a의 두번째 원소부터 네번째 원소까지
a[1:4]


# 리스트 컴프리헨션
# 0 부터 19까지의 수 중에서 홀수만 포함하는 리스트
array = [i for i in range(20) if i % 2 == 1]
print(array)

#다른 방법을 이용하면
array = []
for i in range(20):
    if i % 2 == 1:
        array.append(i)

print(array)

# 1부터 9까지의 수의 제곱 값을 포함하는 리스트
array = [i * i for i in range(1, 10)]
print(array)

# N * M 크기의 2차원 리스트 초기화
n = 3
m = 4
array = [[0]*m for _ in range(n)]
print(array)

# 언더바(_) 의 역할
# 반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 사용

summary = 0
for i in range(1,10):
    summary += i
print(summary)

for _ in range(5):
    print("Hello World")

# 특정한 크기를 가지는 2차원 리스트를 초기화할 때에는 리스트 컴프리헨션을 이용해야함

/ (나누기 연산자 => 실수형으로 처리)
% (나머지연산자)
// (몫 연산자)
** (거듭제곱 연산자)

  • 파이썬은 is 와 is not 연산자를 제공
    (이 연산자는 변수에 저장된 값(참조 객체의 주소)를 비교하기 위한 것)
    참조하는 객체의 내용을 비교하는 것이 아님.
list1 = [1,2,3]
list2 = [1,2,3]
list3 = list1
list1 == list2 # True : 참조하는 객체의 내용을 비교
list1 is list2 # False : 참조하는 객체 자체를 비교
list1 == list3 # True : 같은 객체를 참조하므로 내용도 같음
list1 is list3 # True : 같은 객체를 참조
  • in 과 not in 연산자 제공 (문자열에 어떤 문자열이 있는지를 검사)
'a' in 'banana' # True
'seed' in 'banana' # False

A = [0,1,2,3,5,8,13] # list 변수
if 3 in A: # True
while 4 in A : False
  • range() 함수 (시작값, 종료값(실제로는 그 다음값), 한번에 증가되는 값)

문자열

메소드설명

s.strip([chars]) 공백이나 선택된 문자 chars를 문자열에서 제거함
s.split([separator],[chars]) 공백이나 separator로 주어진 문자로 문자열을 분리함. 문자열의 리스트를 반환함

리스트

메소드설명

s.append(item) 항목 item을 리스트 s의 맨 뒤에 추가한다
s.extend(lst) 리스트 lst를 s에 추가한다
s.count(item) 리스트에서 항목 item의 개수를 세고 그 개수를 반환한다.
s.index(item,[시작],[종료]) 리스트에서 항목 item을 찾아 가장 작은 인덱스를 반환한다. 탐색의 시작 위치와 종료 위치를 지정할 수도 있다
s.insert(pos, item) pos 위치에 항목 item을 삽입한다
s.pop(pos) pos 위치의 항목을 s에서 꺼내고 반환한다
s.remove(item) 항목 item을 s에서 제거한다
s.reverse() 리스트 항목의 순서를 뒤집는다
s.sort([key], [reverse]) 항목을 정렬한다
  • 튜플
    리스트와 동일하지만 크기나 값을 변경할 수 없는 점
  • 딕셔너리
    키와 관련된 값으로 이루어진 항목
    {' ' : ' '}
  • 집합
    리스트와 비슷한 개념이지만 원소의 중복을 허용하지 않고 원소들 사이에 순서가 없다는 점이 특징, 선형 자료구조로 보기도 어려움
s1.union(s2) # 합집합
s1.intersection(s2) # 교집합
s1 - s2 # 차집합