입문자가 익히기 좋은 언어라고 소개 받았으며 깊게 공부하다 보면 이렇게 어려운게 없다는 파이썬.
아직까진 입문단계이며 너무 좋다.
변수 선언
변수명 = 값
(조금전 공부했던 자바스크립트와 다르게 간결하다)
a//b #나누기
a%b #나머지
a**b #제곱
a==b #비교같다
a!=b #비교같지않다
문자열 길이를 알아야 할 때는 len()함수를 사용한다.
그외에도 특정 자료형 뒤에 .메소드(내장함수)명을 사용할 수 있다.
문자열[숫자:숫자]로 표현하면 해당 인덱스칸의 값들을 가져올 수 있다.
리스트와 딕셔너리형이 있으며 리스트는 순서가 있기에 인덱싱이 가능하나 딕셔너리는 순서가 없기때문에 인덱싱이 불가능하다(오류발생)
리스트와 딕셔너리를 같이 쓰는 자료도 있음
변수명 = [{
...
...
...
}] 이런식으로 만들 수 있다.
조건문
age = 30
if age > 19:
print('성인')
elsf:
print('학생')
자바와 비슷한 조건문이지만 콜론:이 사용되며 들여쓰기를 해야 작동한다.
elif는 추가 조건을 넣기위해 사용.
반복문
for a in arr:
print(a)
반복문은 마침을 꼭 해줘야 하는데 그렇지 않으면 무한히 반복하기 때문이다.
함수만들기
def 함수명():
코드
이런식으로 함수를 생성하여 사용할 수 있다.
튜플(tuple)
튜플은 리스트와 비슷하지만 불변인 자료형이며 ()괄호로 표시한다.
리스트와 비슷하니 순서가 존재하며 인덱싱이 가능하다.
아래와 같이, 딕셔너리 대신 리스트와 튜플로 딕셔너리 '비슷하게' 만들어 사용해야 할 때 많이 쓰인다.
a_dict = [('bob','24'),('john','29'),('smith','30')]
집합(set)
말그대로 집합을 구현하는 방법이며 중복제거가 가능하다.
변수명_set = set(변수명)
print(a & b) # 교집합
print(a | b) # 합집합
print(a - b) # 차집합
f-string
변수로 더 직관적인 문자열 만들기
(자바스크립트와 유사함)
print(name+'는 '+ score +'점 입니다')
=> print(f'{name}은 {score}점입니다')
try - except문
에러가 있을 수 있는 환경에서 사용한다.
많은 반복문을 수행하다가 한곳에 에러가 나면 멈추게 되는데 이를 이어나게가 만들어 주는 문법
그러나 너무 자주 사용하거나 남용하면 안좋을 수 있다고 한다.
파일 나누기
함수.py 파일에는 함수를 만들어 두고
메인.py 파일에 from 함수.py import *
함수명()
이렇게 쓰면 한페이지에 많이 안담고 각각 나눠 담아둘수있다.
임포트마지막에 * 은 전부다 라는뜻이며 여러 함수중 하나만 가져올수도 있다.
파이썬 조건문 한줄함축
age = 20
if age > 19:
print('성인')
else:
print('청소년')
=>
age = 20
result = '성인' if age > 19 else '청소년'
이렇게 줄여쓸 수 있으며 유일한 삼항연사자 조건식이다.
파이썬 반복문 한줄함축
list = [1, 3, 5]
list_a = []
for a in list:
list_a.append(a*2)
print(list_a)
=>
list = [1, 3, 5]
list_a = [a*2 for a in list]
print(list_a)
조건문은 이런식으로 함축하여 사용한다.
map, filter, lambda식
이부분은 솔직히 이해가 잘안가는 부분이었으며 일단 보기만 하였다.
#1차
def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
print(list(result))
#2차_한줄함축
def check_adult(person):
return '성인' if person['age'] > 20 else '청소년'
result = map(check_adult, people)
print(list(result))
#3차 map.lambda
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))
#filter - 리스트의 모든 원소 중 특별한 것만 뽑기
result = filter(lambda x: x['age'] > 20, people)
print(list(result))
입력값의 개수를 지정하지 않고 모두 받는방법
def call_names(*args):
for name in args:
print(f'{name}야 밥먹어라~')
call_names('철수','영수','희재')
#이렇게 여러 개의 인수를 하나의 매개변수로 받을 때 관례적으로 `args`라는 이름을 사용합니다. arguments라는 뜻이에요!
파이썬 문법이 보기는 쉬우나 생각보다 어려운 단어들도 있었으며, 자바스크립트와 같이보니 헷갈렸다.
다만 다시 시작하라고 하면 파이썬을 좀더 빠르게 익힐거 같은 느낌이 있다.
나중에 조금 더 공부해서 코딩테스트를 풀게 된다면 주로 파이썬으로 한다고 하니 틈틈히 익혀둬야 겠다.