알고리즘/자료구조와 알고리즘

[Python] 내 마음대로 정리하는 파이썬

정석이 2022. 3. 6. 20:12

 

출력하기

 

 

1. 여러줄로 걸쳐서 출력하기

word = """
안녕하세요
블
로
그
주
인
"""

print(word)

 

안녕하세요

 

 

2. print('1') print('2') 하면

1

2

이렇게 출력되는데

1 2

이렇게 붙여서 출력하기

 

print('1', end = ' ')
print('2')
print('3')

 

1 2

3

 

 

print('1','2','3', sep='@')

1@2@3

 

 

 

 

3. 이스케이프 문자열 사용하기

'김철수' 입니다. 라고 출력하려면? --> \'  \' 사용하기

 

#1
hi = "'김철수' 입니다."
print(hi)

#2
print("\'김철수\' 입니다.")

 

'김철수' 입니다.

'김철수' 입니다.

 

 

 

4. 변수 출력하기 3가지

 

 

year = 2022
month = 3
day = 1
print('{0}년 {1}월 {2}일 입니다.'.format(year, month, day))


# {:.2f}를 사용하면 소숫점 2째 자리까지 출력할 수 있음 + 반올림
print('{:.2f}'.format(0.15946))

2022년 3월 1일 입니다.

0.16

 

 

 

name = 'Jon'
age = 30

print(f'그의 이름은 {name}입니다.\n나이는 {age} 입니다.')

그의 이름은 Jon입니다.

나이는 30 입니다.

 

 

 

# %s,d,c,f and .3f(소숫점) 을 쓰고 뒤에 %(튜플형식) 으로 붙여줌
print("my name is %s" %('Jon'))

my name is Jon

 

 

 


 

문자열

 

인덱싱 : list[0]

슬라이싱 : list[0:2] --> 0~1까지

 

 

1.  문자열 거꾸로 출력하기

 

문자열[::-1]

 

 

 

 

split() : 쪼개기

join() : 합치기

replace() : 바꾸기

startswith(), endswith() : 맨 앞 글자, 맨 뒤 글자

 

공백 제거

strip() : 양쪽

lstrip() : 오른쪽

rstrip() : 왼쪽

 

print('-'.join(리스트)) 를 써주면 -를 기준으로 합쳐준다.

ex) print('-'.join(['010', '1234', '1234']))
출력 : 010-1234-1234

a = '12345'
print(a.replace('5', '6'))
출력 : 12346

print(a.startswith('1'))
출력 : True

print(a.endswith('0'))
출력 : False


# 공백 제거하기!!
b = '   1234'
왼쪽 공백 제거 : b.lstrip()
오른쪽 공백 제거 : b.rstrip()
양쪽 공백 제거 : b.strip()

 

 

2.  변수 입력받을 때 특정 데이터 타입으로 받기

 

# 변수 = map(데이터타입, input().split()) 띄어쓰기로 저장
# 아래는 튜플로 저장됨
# 몇개 받아서 변수에 저장하려면 
# a,b,c = map(int, input().split()) 이런식으로 바로 넣어주면 된다.

a = map(int, input().split())

# 리스트로 저장하려면
a = list(map(int, input().split()))

 

 

 

3. 10진수 -> 16진수 -> 8진수

 

# 10진수 -> 16진수

a = int(input())
print('%x', %a)

# 16진수 -> 8진수
n = int(a, 16) # 16진수로 저장
print('%o', %n)

 

 

4. 영문자 <-> 10진수 유니코드 값

 

# 영문자 -> 10진수 유니코드 : ord()
n = ord(input())
print(n)

# 10진수 -> 유니코드 : chr()
n = int(input())
print(chr(n))

# a 다음문자 b를 출력하는 것처럼 다음 문자 출력
a = ord(input()) # 10진수로 받음
print(chr(a + 1)) # 유니코드 다음 문자 출력

 

 

 

5. float 몫, int 몫 구하기, float 값 소수 몇째자리까지 출력하기

# float 몫
a / b

# int 몫
a // b

# float로 나온 값 소수 3째 자리까지만 출력하기 (반올림)
print(format(a / b, ".3f"))

 

 

 

6. 객체 비교하기 : a is b 사용. 

** -5 ~ 256 사이의 값은 a is b = True 가 나오는데 그게 아니라면 다른 객체이므로 False가 나온다. **

 

 

 


 

리스트 [ ]

 

순서 ㅇ , index가 존재함

 

 

리스트 요소 생성

 

list1 = list('hi')

print(list1)

['h', 'i']

 

 

list1 = [[1,2,3], [4,5,6], [7,8,9]]

일 때

list1[0] = [1,2,3] 이고

list1[1][2] = 6 이다.

 

 

 

리스트 수정 : list[index] = 값

리스트에 리스트 붙이기 : list1.extend(list2)

 

리스트 추가하기

list.append(뒤에 붙일 값)

list.insert(index, 붙일 값)

 

리스트 삭제하기

del list[index]  , del list[:2] 처럼 여러개 삭제 가능

list.remove(제거할 값) --> 맨 앞 값 1개만 삭제

list.pop() --> 제일 뒷 값 삭제

list.pop(index)

 

리스트 값 정렬하기

list.sort(reverse = False/True) --> 오름차순/내림차순

바로 print 하고싶다면 sorted(list, reverse = False/True)

 

리스트 요소 거꾸로

list.reverse()

reversed(list)

 

 

 

 


 

튜플 ( )

 

데이터 조작 X 이므로 읽기만 가능!

 

 

값이 하나인 튜플 생성은 t = (1,) 이렇게 ,를 넣어줘야 한다.

 

 

 

 


 

 

딕셔너리 { }

 

dict()로 표현된다. 또는 그냥 {}

 

index를 사용하지 않음. key로 모든걸 한다.

 

key값은 바꿀 수 없고 중복도 불가능. 중복된 값 입력하면 덮어쓰기 된다.

 

키 값은 리스트 X

 

 

 

데이터 조회

get(key)

 

 

key값이 있는지 조회

key_ in dict_이름 --> True / False로 출력

 

 

값 추가

dict_이름[key] = value

 

add = {'key' : 'value'}

dict_이름.update(add)

 

 

데이터 수정

dict_이름[key] = value --> 값 추가할때와 같음. 키가 없으면 추가, 있으면 수정임

 

 

데이터 삭제!

del dict_[key]

dict_.pop(key)

dict_.clear() --> 전체삭제

 

 

그 외 딕셔너리 함수

dict_.keys()

dict_.values()

dict_.items()

 

 

출력하기

 

menu = {'라면' : 2000, '스낵' : 1000}

for item in menu.items():
	print(item[0], "의 가격은", item[1])
    
# or

for item in menu.items():
	print('{0} 의 가격은 {1}'.format(item[0], item[1]))
    
# or

for item_key in menu.keys():
	print(item_key, "의 가격은", menu[item_key])

 

라면 의 가격은 2000

스낵 의 가격은 1000

 

 

 


 

SET { }

 

중복XXXXXXXX

순서 X, index X

 

 

값 추가하기

set.add(값)

 

set_add = {1,2,3}

set.update(set_add)

 

 

삭제하기

set.remove(값)

 

 

!!집합함수!!

교집합 : &, intersection()

합집합 : |, union()

차집합 : -, difference()

 

 

 


 

그 외

 

bool 값 반대로 출력하기 : not bool

정수로 입력받은 bool 값은 0만 False고 나머지는 다 true이다.

 

 

 

bool 값을 논리 연산 사용할 수 있다.

 

 

and 를 사용하면 모두 true일 때만 True, 나머지는 False이다.

 

a, b = map(int, input().split())
print(bool(a) and bool(b))

입력 : 1 1

출력 : True

 

 

 

 

or를 사용하면 하나라도 true면 True이다.

 

a, b = map(int, input().split())
print(bool(a) or bool(b))

입력 : 1 1

출력 : True

 

 

 

xor은 서로 다를 때만 true이다.

 

a,b = map(int, input().split())
a = bool(a)
b = bool(b)
print((a and (not b) or ((not a) and b)))

 

 

 

3개의 요소로 이루어지는 3항 연산은 "x if C else y" 의 형태로 작성할 수 있다.

 

C : T or F를 평가할 조건식 / 값

x : C = T일 때 사용할 값

y : F일 때 사용할 값

 

예를 들어 0 if 123 > 456 else 1

이 T이면 0을, F이면 1을 출력하므로 1이 출력된다.

 

 

a,b = map(int, input().split())
print(a if (a>=b) else b)

 

입력 : 123 456

출력 : 456