2022. 9. 15. 00:01ㆍ스파르타코딩클럽[AI트랙 3기]/TIL
22.09.14
신기하다. 이제서야 지난날 배웠던 파이썬의 구조들이 살짝씩 눈에 익기 시작한다. 근데 아직 덜익어서 문제를 풀 수 없음... 오늘 내준 과제도 어렵다!!!!!왜 나만 어렵냐고!! 내가 뭘모르는지 아직도 몰라서 물어볼 수 도 없다. 그래도 오늘 용기내서 창호튜터님께 질문하러갔다. 까먹을 수도 있으니 지금 써놓자. sort 사용법에 관한건데 pprint 하는 곳에 sort를 아예 같이 넣어주는 실수를 범했다. 차근차근 알아가는거지~ 낼은 더 열심히 해야지.. 아그리고 백준 기본수학 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 웃음밖에 안나오더라.. 언터쳐블... 난 누구인가.. 어디로 가는가...
ㅁ파이썬(이창호 튜터님)
과제 3번 문제
-객체지향이라는 말을 많이 듣게 됨.
class를 사용하되 class에서 데이터를 설정하는 거랑, 데이터를 보여주는 것을 따로 설정해주는 것. > set/get
def set.profile(self, profile):
self.profile = profile
init을 굳이 넣은 이유는 프로그래밍하다가 예상치 못한 문제 직면시 해결됨
set, get 없이 풀기
-try exception
try:
pritnt(num)
except:
print(‘에러가 발생합니다.’)
if문을 try로 대체 가능. 그러나 좋은 구문은 아님. 어떤 에러가 났는지 확인이 안되기 때문.
그래서 try문쓸때는 error코드별로 어떤 메시지가 나올지 정해주기도 함.
try :
except ValueError:
except ZeroDivisionError:
except Exception as e :
print(f“예상하지 못한 에러가 발생했습니다. error : {e}”)
pass도 사용 가능. continue는 다음 반복문으로 넘기는것이고 pass는 코드가 있든 없든 똑같음.
-stacktrace
알고리즘할때는 몰라도 되지만, 큰프로젝트나 장고같은 프라임워크 사용시 필요.
어디서 에러 발생했는지 타고 들어가는 것.
*2교시
-축약식
a = [x for x in range(10)]
print(a)
복잡한 코드를 축약식으로 사용하면 안 하는 것만 못하다. 오히려 가독성이 떨어짐. 그래서 많은 양의 내용이 들어가면 그냥 반복문 쓰는 것이 좋음.
ㅇfor 문
for i in range(5):
print(i)
ㅇ리스트 축약식
numbers = [x for x in range(5)]
print(numbers)
numbers = [x * 2 for x in range(5)] , print(numbers) > [0,2,4,6,8] 나옴.
numbers = [2 for x in range(5)] , print(numbers) > [2,2,2,2,2] 나옴. (x대신에 _가능)
따로 리스트 필요 없이 이미 x in range(5) 하면 0,1,2,3,4가 담김.
-리스트 축약식 안쓰고 for 문
average_age = sum([x[1] for x in people]) / len(people)
-input도 가능
count = int(input())
user_inputs = [input() for x in range(count)]
print(user_inputs)
-import는 약속 맨위에 쓰는 것. 그리고 사용할 것 보다 위에 있어야 사용 가능.
*3교시
-lambda : 익명함수, 단독으로는 잘 안쓰임.(map, filter, sort랑 같이 쓰임)
lambda x, y : x+y (x,y를 더해준다)
-map 함수
user_input = list(map(int,input().split()))
map은 두 개의 인자를 받음, 함수와 리스트(튜플 같은 반복할 수 있는 자료형) 맵안에서는 자료형의 요소를 돌면서 함수를 실행 시켜줌.
*궁금한 것은 공식문서 찾아보기
map은 list축약식으로 대체 가능 (같은 것임.)
double_numbers = list(map(lambda x : x*2, numbers))
double_numbers = [x*2 for x in numbers]
-filter: 걸러주는 것
짝수만 담기even_numbers = [x for x in numbers if x%2 == 0]
짝수만 x2해서 담기 even_numbers = [2*x for x in numbers if x%2 == 0]
-나이가 30살 이상인 사람
people = [x for x in people if x[1]>= 30]
print(people) 하면 30살 이상만 남김.
-sort : list를 정렬
numbers = []
numbers.sort 하면 순서대로. numbers.sort(reverse=True)하면 역순으로
복잡한 자료에서는 사람, 나이 자료에서 people.sort(key=lambda x: x[1])하면 key에서 정렬 기준이 결정됨.
ㅁ파이썬 과제
https://pocachips.tistory.com/34
'스파르타코딩클럽[AI트랙 3기] > TIL' 카테고리의 다른 글
| [내일배움단 ai트랙 3기] TIL 220916 (0) | 2022.09.17 |
|---|---|
| [내일배움단 ai 트랙 3기]파이썬 문법(6) (1) | 2022.09.15 |
| [내일배움단 ai트랙 3기]웹개발 종합반(복습) (0) | 2022.09.14 |
| [내일배움단 ai트랙 3기]파이썬 문법(4) (0) | 2022.09.14 |
| [내일배움단 ai트랙 3기]깃 강의(3) (0) | 2022.09.12 |