파이선 코드카타:

def solution(angle):
if angle > 0 and angle < 90:
return 1
elif angle == 90:
return 2
elif angel > 90 and angle < 180:
return 3
else angle == 180:
return 4
print(solution) 이렇게 했는데
SyntaxError: invalid syntax 가 났음.
다 맞는 것 같아서 고민을 해봤는데 모르겠음.-> 자세히 보면 오타가 나있음.
def solution(angle):
if angle > 0 and angle < 90:
return 1
elif angle == 90:
return 2
elif angel > 90 and angle < 180:
return 3
else angle == 180:
return 4
print(solution)
1. angle인데 angel이라고 순서를 바꿔서 써버림. --근데 나는 종종 영어타자 칠 때 이런 스펠링 순서
실수가 종종 나는듯하다. 스펠링 작성하는 것 주의해야겠다. 한글은 오탈자가 있으면 바로 알아차리는데
영어는 오탈자가 나도 바로 눈에 안들어온다는게 조금,, 더 주의해야 할 부분인것 같다.
2. else문 뒤에는 조건을 쓰지 않는다고 한다.
sql에서의 case when 문을 생각해보면, 거기서도 else 뒤에는 조건말고 결과값을 적었던 것 같다.
(요즘 파이선만 했더니 sql,, 할 시간이 없다. 그것도 복습하고 공부해야하는데,, )
def solution(angle):
if angle > 0 and angle < 90:
return 1
elif angle == 90:
return 2
elif angle > 90 and angle < 180:
return 3
else:
return 4
print(solution)
이렇게 적어주었다. 그랬더니 잘 작동됨. 나는 틀린게 저 마지막 줄의 출력값인가 싶었다.
그래서 함수를 print안에 넣어주는게 잘못된건가.. 사실 처음에는 answer = 0 이란 변수가
선언되어있어서 마지막에 return answer를 써줬었다. 나는 그 마지막줄에만 신경을 써서
위의 조건문이 잘못되었다는 것은 몰랐다.
하지만 두둥- 저 마지막의 print(soultion)은 쓰지 않아도 잘 작동이 된다. 음.. 그,,
코드카타 문제풀이 환경이라서 그런듯.

다음문제:

나의 첫 풀이: 에러 엔딩

모르겠어서 일단 pass,,이것만 붙잡고 시간 다 갈 것 같아서 일단은 파이선 세션을 복습하고 나중에 다시 풀어보겠다. - 그래도 오늘 파이선 코드카타 3문제 품!(이 문제 제외)
어제 수준별 세션 복습:
조건문과 반복문-
zip()함수: 이터러블(반복 가능한)한 객체가 두개 이상일 때, 인덱스 순서대로 묶어주는 함수이다.
상위 집합, 부분집합:

.items(): 키, 벨류 값 다 가져오는 것. -그렇다면 아마도 딕셔너리에서 사용가능할 것 같다.
collection 라이브러리의 counter함수를 가져온다면 이렇게 작성해야 한다.
->from collection import counter
❗⭐💡문제풀이에 시간 많이 쓰기
문제:

sec = int(input('초를 입력하세요'))
sec_1 = sec // 60
min = sec // 60
hour = sec // 60
print(f"초를 입력하세요: {sec}")
print(f"{sec}초는 {hour}:{min}:{sec} (시:분:초) 입니다.")
일단 여기까지는 생각해냈다. 근데 저 hour,min,sec_1함수를 어케해야할지 모르겠다.. 여기서 막혀버림,,
일단 포맷팅할 때 01:01:01처럼 출력할려면 저 변수에다가:02를 해주어야 한다. ex){hour:02}:{min:02} 이런식으로. {hours:02}에서 숫자 2는 최소한 2자리로 맞춰주라는 소리이다. 그리고 앞의 0은: 만약 자릿수가 2보다 작으면=1자리수이면-> 앞에 0을 붙이라는 소리임. 그리고 만약에 자릿수가 2 이상이면 ->그대로 출력한다. 만약 :03이 되면 최소한 세자리수로 맞춰주고 앞에는 0이 들어간다는 소리이다(만약 자릿수가 모자란다면)
그리고 예시 실행 결과에 맞춰야 하니까 포맷팅프린트 맨밑에줄에 sec:,를 추가해준다.{sec:,}이렇게.
1시간은 3600초이다.
divmode라는 함수로 몫과 나머지 한꺼번에 구할 수 있음.
hour, minute = divmode(sec, 3600) 이렇게 구할 수 있음.


처음 작성한 코드. 분명 :2f를 설정해주었는데, 출력값을 보았을 때 내가 기대한 대로 나오지 않는다.
의미를 정리해보자면,
:->지금부터 포맷하겠다는 것, .2->소수점 아래 2자리까지 출력, f->실수(float)로 출력. 만약 전체자리수 및 소수점 둘 다 맘대로 포맷팅 하고 싶다면 :02.2f 이렇게도 쓸 수 있다. 이것을 해석해보자면-> '전체자리의 최소값은 두자리수로 출력해주고, 만약 한자리수만 있다면 앞에 0을 붙여줘. 그리고 소숫점 밑 2자리까지 출력해주고 이것은 실수로 출력해줘.' 라는 뜻이다.

답과 동일하게 나옴.
베이직 라이브 세션
lambda 함수: 한 줄로 표현되는 간단한 표현식이다.
작성 방법=> lambda 매개변수 : 표현식
add = lambda x, y : x + y
print(add(3,5))
->출력 8
함수의 이름이 없어도 된다. 굳이 변수를 지정해서 거기다 값 담아주지 않아도 그냥 사용할 수 있음.
진짜 너무 피곤해서,,, 오늘은 여기까지.. 내일 추가로 더 정리해놓겠다..
확실히 방해요소들 제거하고 몰입할 수 있도록 계획한대로 하니까 공부를 더 실속있게 한 것 같다. 확실히. 아 진짜 고생했다.. 잠깐 저녁시간에 산책하고 왔는데 좀 추웠던 듯,, 감기걸리면 절대 안됨.. 비타민 c 먹고 빨리자야지.. 고생했다...나자신..!!
고생하셨서요 🤓🤩