본문 바로가기

알고리즘

파이썬 기본 문법 정리

if 문

money = 1000
if money >= 3000:
	print("돈없다")
elif money <=100:
	print("졸려")
else:
	print("뭐")

 

while 문

초기식
while 조건식:
     반복할 코드
     변화식
     
     
num = 1
while num < 5 :
	print(num) 
    num = num + 1 
else : print("5이상이면 종료합니다.")

 

 

for문

for 카운터변수 in range(반복횟수):
    반복해서 실행할 명령
    
range -> range(10):0,1,2,3,4,5,6,7,8,9

 

빠른 입력

 

input 은 느리다 -> sys 라이브러리의 readline()함수를 써야한다.

sys 쓸떄는 한줄 입력받고 rstrip함수를 호출해야한다

-> readline() 으로 입력받고나면 엔터가 줄바꿈기호로 입력된다 이거 없애려고 rstrip 함수 호출해주는거다.

import sys

//정수하나 입력
a = int(sys.stdin.readline().rstrip())

//map 으로 여러개 int 처리해서 한번에 받기
a,b,c = map(int, sys.stdin.readline().rstrip().split())

//리스트로 담기
list = list(map(int, sys.stdin.readline().rstrip().split()))

//공백 기준으로 분리된 여러 정수를 n번 입력 받아, 2차원 리스트에 저장하기
n = int(sys.stdin.readline().rstrip())
data = [list(map(int, sys.stdin.readline().rstrip().split())) for _ in range(n)]
# [[1, 2, 3], [4, 5, 6]]

 

-List

리스트 초기화 

//어떤 원소로 크기가 정해진 리스트 만들기
n = 0
myList = [0] * n
#결과: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

//뒤에서 첫번쨰 출력
myList[-1]
#뒤쪽 시작 색인은 -1임

//슬라이싱
myList[1:4]
#색인1~3까지 나옴 -> (원소 새개짜리 리스트 나옴) 앞쪽 포함 뒷쪽 미포함

//다양한 리스트 초기화 방법
# 1.for 문돌면서 0~9 까지 리스트 만들기
myList = [i for i in range(10)]

# 2.for문과 조건문까지 추가
myList = [i for i in range(20) if i % 2 == 1]

# 3.for 문과 i 의 연산 
myList = [i * i for i in range(1,11)]

//N*M 크기의 리스트 초기화 
myList = [[0] * m for _ in range(n)]
이거 [0,0,0,0 -> 크기가 M] N개 만든 리스트 만드는거임
#array = [[0] * m] * n 요거쓰면 안됨 주소값 같은 리스트들 만드는거임

리스트 함수들

출처:https://kingofbackend.tistory.com/90

 

//리스트 요소 찾기
index() 함수에 리스트의 없는값을 찾으면 value error 나니 그런거 이방식으로 찾으면 안된다

in을 사용하면됨

찾을꺼 in 리스트
ex) 12 in [12,90,37,44]
-> True

//요소 삭제
remove 함수 쓰면되는데 이거 없는거 찍으면 value error 남
ex)myList = [13,23,43,56]
myList.remove(11) -> 벨류 에러남

모든 요소 삭제하고싶다면 갯수 새는 함수 count() 함수로 갯수세고 for문 돌려서 없애준다

 

-dictionary

초기화

//그냥 초기화
myDic = {}

//정보갖고 초기화
myDic = {
	key:value,
    key:value
    }
    
//zip()을 이용해서 key값 리스트와 value리스트 두개로 딕셔너리 만들기
list1 = ['Korea', 'Japan']
list2 = ['Seoul', 'Tokyo']
my_dict = dict(zip(list1, list2))

//튜플이 원자인 리스트로 딕셔너리 초기화
list1 = [('Korea', 'Seoul'), ('Japan', 'Tokyo')]
my_dict = dict(list1)

출처:https://codechacha.com/ko/python-initialize-dict/

딕셔너리 함수들

//값에 접근
myDic["key"] 
-> value 나옴

//값 추가,변경
myDic["key"] = value

//두 딕셔너리 합치기
#update(함수 사용)
d1 = {"a":1, "b":2}
d2 = {"b":1, "d":2}

d1.update(d2)

[결과] d1 값이 이렇게 됨  -> {'a': 1, 'b': 1, 'd': 2}

//key값만 찾기
myDic.keys()
리스트로 키값만줌

//value만 얻기
myDic.values()
리스트로 value값들만줌

//튜플로 값들묶어서 내보내기 (리스트로 반환)
myDic.items()

//삭제:
del myDic ["key"]
#키값으로 삭제

//모두 날려버리기
myDic.clear()

//key값이 있는지 확인
"key" in  myDic
True,False 로 결과값 나옴

 

 

추가 입력 출력 및 기타 문법 참고 링크

https://dosimpact.tistory.com/47

 

알고리즘을 위한 파이썬 기본 기초 문법 정리

원래 C++ 사용하다가 python을 사용할 필요가 느껴 배우기로 함! js문법을 쓰면서 C++ 의 아쉬운점이 많았는데, (객체 다루는것 , STL 사용, 이터레이터 등등 ) js문법은 ES 최신버전을 쓰려면 babel 환경

dosimpact.tistory.com