본문 바로가기
연습

파이썬 기본문법 정리

by ybs 2021. 9. 6.
반응형
# 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