본문 바로가기

TIL/나 보려고 만든 거

파이썬 핸드북(숫자형, 문자열, 리스트, 튜플, 딕셔너리, 집합, 불리안)

https://nmdkims-organization.gitbook.io/python-hand-book/

 

숫자형, 문자열, 리스트, 튜플, 딕셔너리, 집합, 불리안

 

 

숫자형
# 정수형 <class 'int'>
integer = 100

print(type(integer))

# 실수형 <class 'float'>
float = 3.14

print(type(float))

x = 2
y = 4

 

사칙연산
x = 2
y = 4

print(x+y) # 6

print(x-y) # -2

print(x*y) # 8

print(x/y) # 0.5

print(x**y) # 제곱 16

# 나눗셈 몫, 나머지
print(x//y) # 0

print(x%y) # 2

 

문자열
# <class 'str'>
string = "Hi"
print(type(string))

print("Hello world")

print('백문이불여일견 백견이불여일타')

print("123")

# 문자열 안에서 따옴표, 쌍따옴표 사용 
print("문자열은 문자, 단어들의 '집합'입니다.")
# 문자열은 문자, 단어들의 '집합'입니다.

print('문자열은 문자, 단어들의 "집합"입니다.')
# 문자열은 문자, 단어들의 "집합"입니다.

# 이스케이프 문자 \\
print("\\'이스케이프\\"")
# '이스케이프"

print("\\'이스케이프\\"\\\\")
# '이스케이프"\\

print("백문이불여일견\\n백견이불여일타")
# 줄바꿈
# 백문이불여일견
# 백견이불여일타

print(r"백문이불여일견\\n백견이불여일타")
# 이스케이프 문자 무시
# "백문이불여일견\\n백견이불여일타"

 

문자열 연산
hi = "안녕"

more_politely = "하세요"

print(hi + more_politely) # 안녕하세요

print(hi*10) # 안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕

# 문자열의 길이
print(len(hi)) # 2

# 문자열의 인덱싱과 슬라이싱
print(hi[0]) # 안
print(hi[-1]) # 녕
print(more_politely[:2]) # 하세
print(more_politely[2]) # 요

# 문자열 바꾸기
# 문자열.replace(타겟문자, 바꿀문자)
print(more_politely.replace("하세요", "요세하")) # 요세하

# 문자열 포멧팅
age = 10

print("%s%s, 저는 누구누구입니다" %(hi, more_politely))

print("%s%s, 저는 누구누구입니다. %d살이에요" %(hi, more_politely, age))

# format 함수를 이용한 포멧팅
print("{0}{1}, 저는 누구누구입니다".format(hi, more_politely))

# f-string
print(f"{hi}{more_politely}, 저는 누구누구입니다.")

# 소수점 표현 f-string
pi = 3.1415926535

# f"{실수:몇번째자리까지}" 
print(f"{pi:0.2f}") # 소수점 3번째 자리에서 반올림됩니다. 3.14
print(f"{pi:0.3f}") # 소수점 4번째 자리에서 반올림됩니다. 3.142

# 문자열 관련 함수들
string = "aabbaeda"

# 개수 세기
print(string.count("a")) # 4

# 위치 찾기
print(string.find("e")) # 5
print(string.find("b")) # 찾는 문자가 여러개라면 가장 첫번째자리를 반환합니다. 2
print(string.find("z")) # -1 존재하지 않으면 -1을 반환합니다.

# index라는 함수도 위치를 찾는데 사용되나
# 차이로는 존재하지 않을시 에러를 발생시킵니다.
print(string.index("z")) # ValueError: substring not found

# 문자열 삽입 
print(".".join(string)) # 각각 문자 사이에 "."을 삽입 a.a.b.b.a.e.d.a

# 대문자 소문자 변환
print(string.upper()) # AABBAEDA
print("AABBAEDA".lower()) # aabbaeda

# 공백 지우기
blank_string = "    blank string   "

# 오른쪽 공백 지우기
print(blank_string.rstrip()) # "   blank string"
# 왼쪽 공백 지우기
print(blank_string.lstrip()) # "blank string   "
# 양쪽 공백 지우기
print(blank_string.strip()) # "blank string"

# 문자열 나누기
split_string = "this : split string"

# split(기준으로나눌문자)
# split() 공백을 기준으로 나누겠다.
# split(":") : 을 기준으로 나누겠다
print(split_string.split()) # ['this', ':', 'split', 'string']
print(split_string.split(":")) # ['this ', ' split string']

 

리스트
string_list = ["a", "b", "c", "d"]
number_list = [1, 2, 3, 4]

# 인덱싱
print(string_list[0]) # a
print(number_list[2]) # 3

# 슬라이싱
print(string_list[:2]) # ['a', 'b']
print(number_list[1:3]) # [2, 3]

# 더하기
print(string_list + number_list) # ['a', 'b', 'c', 'd', 1, 2, 3, 4]

# 반복하기
print(number_list * 2) # [1, 2, 3, 4, 1, 2, 3, 4]

# 길이 구하기
print(len(number_list)) # 4

# 값 수정하기
number_list[1] = 5
print(number_list) # [1, 5, 3, 4]

# 요소 삭제하기
del number_list[1]
print(number_list) # [1, 3, 4]

# 요소 추가
number_list.append(0)
print(number_list) # [1, 3, 4, 0]

# 리스트 정렬
number_list.sort()
print(number_list) # [0, 1, 3, 4]

# 리스트 뒤집기
number_list.reverse()
print(number_list) # [4, 3, 1, 0]

# 리스트 인덱스 반환
# index(x) x값이 있으면 x의 인덱스값 반환
# 없으면 에러가 발생합니다.
print(number_list.index(3)) # 1

# 리스트 요소삽입
# insert(a, b) a번째에 b를 넣어라
number_list.insert(0, 10)
print(number_list) # [10, 4, 3, 1, 0]

# 리스트 요소제거
# remove(x) 첫번째로 나오는 x를 제거해라
number_list.remove(10)
print(number_list) # [4, 3, 1, 0]

# 리스트 요소 꺼내기
# pop() 제일 마지막 요소를 꺼냄
print(number_list.pop()) # 0
print(number_list) # [4, 3, 1]

# 리스트 요소 개수 세기
# count(x) 리스트 안에 x가 몇개인가
print(number_list.count(3)) # 1

# 리스트 확장
# extend(list)
number_list.extend([5,6,7])
print(number_list) # [4, 3, 1, 5, 6, 7]

 

튜플
base_tuple = (1,2,3,4)

plus_tuple = (5, 6)

print(base_tuple[2]) # 3
print(base_tuple[1:]) # (2,3,4)
print(base_tuple + plus_tuple) # (1,2,3,4,5,6)
print(base_tuple * 2) # (1,2,3,4,1,2,3,4)
print(len(base_tuple)) # 4

 

딕셔너리
dictionary = {
    "이름": "누구",
    "나이": "10살",
    "성별": "남"
    }

print(dictionary["이름"]) # 누구

# ket value 추가, 삭제
dictionary["생일"] = "03-02" 
print(dictionary) # {'이름': '누구', '나이': '10살', '성별': '남', '생일': '03-02'}

del dictionary["성별"]
print(dictionary) # {'이름': '누구', '나이': '10살', '생일': '03-02'}

# 이미 존재하는 key에 value를 할당하면 값이 업데이트 됩니다.
# 중복키를 허용하지 않습니다.
dictionary["이름"] = "최양임"
print(dictionary) # {'이름': '최양임', '나이': '10살', '생일': '03-02'}

# 딕셔너리 관련 함수

# key 값만 모아 dict_key 객체를 리턴합니다.
print(dictionary.keys()) # dict_keys(['이름', '나이', '생일'])

# value 값만모아 dict_values 객체를 돌려줍니다
print(dictionary.values()) # dict_values(['최양임', '10살', '03-02'])

# key ,value 쌍을 튜플로 묶어 dict_items 객체로 돌려줍니다
print(dictionary.items()) # dict_items([('이름', '최양임'), ('나이', '10살'), ('생일', '03-02')])

# key 값으로 value값을 가져옵니다
# dictionary["생일"] 과 같은 결과를 리턴하지만
# 차이로는 dictionary["생일"] 키가 없을때 에러를 발생시킵니다
# .get() 없을시 None을 반환합니다.
print(dictionary.get("생일")) # 03-02

# "이름" 이라는 ket 가 딕셔너리 안에있는지 학인
print("이름" in dictionary) # True

# 딕셔너리 비우기
print(dictionary.clear()) # None**

 

 

집합
set1 = set([1,2,3,4,5,6])
set2 = set([3,4,5,6,7,8])

# 집합 연산

# 교집합
print(set1 & set2) # {3, 4, 5, 6}

# 합집합
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8}

# 차집합
print(set1 - set2) # {1, 2}

# 요소 추가
set1.add(7)
print(set1) # {1, 2, 3, 4, 5, 6, 7}

# 요소 여러개 추가
set1.update([8,9,10])
print(set1) # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

# 특정 요소 제거
set1.remove(10)
print(set1) # {1, 2, 3, 4, 5, 6, 7, 8, 9}

# 중복제거
dup = [1,1,1,2,2,3,3,3,3,4,4,4,]
print(set(dup)) # {1, 2, 3, 4}

 

불리안
a = True
b = False

# <class 'bool'>
print(type(a))
print(type(b))

# 조건문의 리턴값으로도 사용됩니다.
print(10 == 10) # True
print(10 > 1) # True
print(10 < 1) # False

'TIL > 나 보려고 만든 거' 카테고리의 다른 글

순열, 조합 공식  (0) 2024.03.09
class 부모와 자식  (1) 2024.02.25