-
[TIL] 파이썬 기초 문법을 공부하며TIL(Today I Learned) 2022. 11. 8. 15:39
*20221108의 회고
오늘은 파이썬의 기초 문법 강의를 수강하였다. 몇달 내내 자바만 사용하다가 내배캠의 미니프로젝트를 하면서 자바스크립트와 파이썬을 사용하였는데, 프로젝트때 이미 파이썬을 이용해서 서버를 다뤘기 때문에 이번 강의에서 등장하는 파이썬만의 문법 형식이 낯설지는 않았다.
자바에 제일 익숙하기 때문에, 자바와 비교하면서 파이썬 문법을 회고해보려 한다.
파이썬에서는 변수를 선언할 때, 자료형을 명시해주지 않아도 된다. 그리고 끝에 세미콜론을 붙이지 않아도 된다. 뭔가 되게 범죄를 저지르는 듯한 느낌이였다...ㅋㅋㅋ 문자열, 정수형, 실수형 모두 자료형을 표시해주지 않고 선언하면 된다. 엄청나게 편했다.
ex) a = 3, b = '안녕하세요', c = 3.14
또한, 세미콜론 대신 문장을 구분해주는 것은 들여쓰기다. 그렇기에 들여쓰기를 무조건 잘 해줘야 한다. 자바에서는 for문 안에 내용을 {}로 묶어줬다면, 파이썬은 for문의 내용을 들여쓰기에 맞춰서 작성해주면 된다. if문이나 함수 또한 그렇다. 그리고 콜론(:)을 사용해서 구역을 구분한다.
ex) //자바 //파이썬
for (int i = 0; i < people.length; i++) { for person in people:
print(people[i]); print(person)
}
그리고 파이썬에서는 배열과 동일한 구조로 List가 구현되어 있다. 순서가 있는 자료형의 모임인데, 자바에서는 같은 배열에는 같은 자료형만을 담을 수 있었다면, 파이썬에서는 같은 리스트에 다른 자료형도 섞어서 막 그냥 넣을 수 있다. 정말 신세계... 이래서 파이썬이 쉽고 편하다고 말하는건가...? 싶었다 ㅎㅎ 딕셔너리라는 자료구조도 있는데, 자바의 map과 같은 형태이다. 파이썬에서 보통 리스트 안에 딕셔너리가 담긴 형태를 자주 쓴다고 한다.
ex) people = [ {'name': 'bob', 'age': 20, 'score':{'math':90,'science':70}},
{'name': 'carry', 'age': 38, 'score':{'math':40,'science':72}},
{'name': 'smith', 'age': 28, 'score':{'math':80,'science':90}},
{'name': 'john', 'age': 34, 'score':{'math':75,'science':100}}
]
위의 까지의 내용이 파이썬 기초문법 이였다면, 지금부터는 심화 문법이다. 이것들은 실무에서도 잘 안쓰는 경우도 있고, 쓰더라도 그 때 구글링 해서 찾아보면서 쓰면 되기 때문에 그냥 이정도가 있다 하고 알아두는 것만으로 충분하다고 한다. 그래서 간단하게 정리해보려 한다.
- 튜플(tuple) : 리스트와 비슷하지만, 한번 작성되면 수정이 불가능한 자료구조이다. ()안에 선언 ex) a = (1, 2, 3) -> 상수개념
- 집합(set) : 중복을 허용하지 않는다. ex) a_list = [1, 2, 2, 3]
a_set = set(a_list)
print(a_set) // {1, 2, 3}출력
합집합, 교집합, 차집합도 구할 수 있다. a와 b라는 집합이 있을 때, 합집합->a | b, 교집합->a&b,차집합->a-b
- f-string : 문자열 시작부분에 f를 쓰고, 문자열 중 변수이름으로 출력하고 싶은 부분에 {변수이름}을 넣어준다.
- 파일 불러오기 : 파일 제일 위에 from과 import문 사용
- 삼항 연산자
if num%2 == 0:
result = "짝수" => result = "짝수" if num % 2 == 0 else "홀수"
else:
result = "홀수"
- for문 한번에 쓰기
a_list = [1, 2, 3]
b_list = []
for a in a_list:
b_list.append(a*2) => b_list = [a*2 for a in a_list]
- map : 리스트의 모든 원소를 조작
- 람다(lambda)
- filter : 리스트의 모든 원소 중 특별한 것 만 뽑기
- 함수의 매개변수
- 매개변수에 어떤 값을 넣을 지 미리 지정 가능 ( 순서 상관 없음 )
ex) def cal(a, b): return a + b 일때, def cal(a = 3, b) 이렇게 해주면 b값만 넣어도 a=3으로 계산됨. 혹은 cal(2,5)를 실행하면 내가 넣어준 값으로 함수가 실행됨(a=2, b=5)
- 입력값의 개수를 지정하지 않고 모두 받을 수 있음 -> 매개변수에 *args 사용
- 키워드 인수를 여러개 받을 수 있음 -> **kwargs 사용
- 클래스 : 객체단위로 데이터를 관리할 때 사용함
확실히 자바보다 문법이 간결하고 편리하다는 것을 느낄 수 있었다. 익숙해지는 데 시간이 꽤 걸리겠지만, 알고리즘 자료구조 수업도 파이썬으로 진행한다고 하고, 코딩테스트 언어로는 파이썬이 유리하다고 하니 파이썬도 공부를 지속적으로 해야될 것 같다. 오늘 하루 남은 시간도 밀도있는 집중력으로 공부하자 ~! 화이팅!!
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] 알고리즘 강의를 들으며... (0) 2022.11.10 [TIL] git 과 알고리즘 공부 (0) 2022.11.09 [TIL] Java 기초 문법에 대하여 (0) 2022.11.07 [TIL] 20221104의 회고... (2) 2022.11.04 [KPT회고] NFT 미니프로젝트 - 팀과 자신을 소개하는 웹페이지 만들기 (4) 2022.11.04