반응형
# 10^9 표현을 1e9 라고 함 정수형으로 전환하기 위해 int wrap
a = int(1e9)
print(a)
# 실수
a = 0.3 + 0.6
print(a)
if a == 0.9:
print(True)
else:
print( False)
# round
b = round(123.456, 2)
print(b) # 123.456 에서 소수점 둘째자리 까지. 셋째에서 반올림
# 파이썬에서 나누기 연산의 결과는 기본적으로 실수형이다(자바는 몫만 나오는데)
# 파이썬에서 몫을 얻기 위해 '//' 연산자를 사용한다.
a = 7
b = 3
print(a/b)
print(a//b)
# 거듭제곱 연산자 '**'
print(a**b)
# 리스트 초기화. 크기가 10이고 모든값이 0인 1차원 리스트 초기화
n = 10
a = [0] * n
print(a)
# 리스트 컴프리헨션
array = [i for i in range(10) if i % 2 == 1]
print(array)
# 리스트 컴프리헨션은 2차원 리스트(배열)를 초기화할 때 효과적이다.
# 특히 N x M 크기의 2차원 리스트를 한번에 초기화한다면 아래같이.
n = 5
m = 5
# n번 반복문 돌때마다 길이가 m개인 리스트를 새롭게 초기화
array = [[0] * m for _ in range(n)]
print(array)
# 파이썬에서 쓰이는 for문 언더바:
# 반복을 수행하되 반복을 위한 변수의 값을 무시할 때(사용하는곳이 없어서 필요없을때)
for _ in range(5):
print("hi")
# list remove 메서드
a = [1,2,3,1]
# 값이 1인 데이터 삭제(한개만 삭제됌)
a.remove(1)
print(a)
# 특정 값을 가지는 원소 모두 제거하려면 집합 자료형 사용
a = [1,2,3,4,5,5,5,3]
remove_set = {3, 5}
result = [i for i in a if i not in remove_set]
print(result)
배열 index 가 필요한 for문
for i in range(len(array)):
data = array[i]
튜플, map, set
# 튜플 자료형
# 한번 선언된 값을 변경할 수 없음
# 리스트는 [] 이용하지만, 튜플은 () 사용
# 튜플은 리스트에 비해 상대적으로 공간 효율적
a = (1,2,3,4)
print(a[3])
print(a[1:3])
# 튜플 사용하면 좋은 경우
# 서로 다른 성질 데이터를 묶어서 관리할때다.
# 최단경로 알고리즘에서는 (실수형 비용, 정수형 노드번호) 형태로 튜플 자료형을 자주 사용
# 데이터의 나열을 해싱의 키 값으로 사용해야 할 때
# 튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용될 수 있음
# 사전 자료형 Map
data = dict()
data['1'] = 'ybs'
data[True] = 'aa'
print(data)
if '1' in data:
print('hi')
print(data.keys())
for key in data.keys():
print(key)
print(data.values())
data2 = {
'a': 100,
'b': 80
}
print(data2)
print(data2.keys())
print(list(data2.keys())) # 리스트형으로 변환
# 집합 자료형 Set
# 초기화 방법1
data = set([1,2,3,1,2,3])
print(data)
# 초기화 방법2
data = {1,1,2,3,4,4,5}
print(data)
특정 문자가 포함되어 있는지 확인 하는 코드
s = "hello world"
if 'e' in s:
print("o")
else:
print("x")
# string type 변환
s = "hello world6"
if str(6) in s:
print("o")
else:
print("x")
파이썬 입출력
n = int(input())
# split: 공백 기준으로 데이터 나눠
data = list(map(int, input().split()))
print(n)
print(data)
# N, K를 공백 기준으로 구분하여 입력 받기
n, k = map(int, input().split())
# 파이썬에서 사용자로부터 입력을 최대한 빠르게 받아야할 경우
# sys 라이브러리에 정의된 sys.stdin.readline() 메서드 이용
# 단, 입력 후 엔터가 줄 바꿈 기호로 입력되므로 rstrip() 메서드 함께 사용
import sys
data = sys.stdin.readline().rstrip()
print(data)
##
a = 1
b = 2
# 기본 출력 print는 줄바꿈이 기본임.
# 콤마(,) 이용해서 띄어쓰기 구분해서 출력 가능
print(a, b)
# 줄바꿈 원치 않을경우 'end' 속성 이용
print(a, end=" ")
print(b, end=" ")
print()
result = 33
print("ybs : " + str(result) + " gogo")
# 파이썬 3.6 부터 f-string 사용 가능.
print(f"ybs : {result} gogo2")
파이썬 pass 키워드 : 아무것도 처리하고 싶지 않을 때 사용. 일단 조건문 형태만 만들어놓고 구현부분 비워놓을때 컴파일 에러 안나도록
파이썬 함수
v = 1
def calc(a, b):
global v
v +=1
return a+b, a-b, a*b
print(calc(1,3))
print(v)
# 람다
print((lambda a, b: a+b)(3,6))
# 내장 함수에서 자주 사용되는 람다함수
array = [('1',1),('2',2),('3',3)]
def my_key(x):
return x[1]
print(sorted(array, key=my_key))
print(sorted(array, key=lambda x: x[1]))
# 여러개 리스트 적용
list1 = [1,2,3,4]
list2 = [5,6,7,8]
result = map(lambda a,b: a+b, list1, list2)
print(list(result))
출처 : 동빈나 유튭 https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=1
반응형
'연습' 카테고리의 다른 글
[그리디] 만들 수 없는 금액 (0) | 2021.10.03 |
---|---|
[그리디] 문자열 뒤집기 (0) | 2021.09.26 |
[그리디] 모험가 길드 (0) | 2021.09.23 |
[그리디] 큰 수의 법칙 (0) | 2021.09.13 |
[그리디] 곱하기 혹은 더하기 (0) | 2021.09.06 |