1. 코드카타
2. 개인 학습 시간
3. 파이썬 기초탄탄
4. 아티클 스터디
.
.
.
강의 듣기가 급한지라 오늘은 5,6번 두 문제만 풀었다.
5번 문제는 어제 분명히 어려워 보였는데 오늘 다시보니까 후딱 풀림..뭐지?
다시보니 쉬웠던 5번 문제 답
def solution(num1, num2):
if num1==num2:
answer = 1
else:
answer = -1
return answer
생긴건 리스트랑 비슷하지만 얘는 불변이다~
그래서 데이터를 보호하고 싶을 때 시용함!
소괄호를 사용하지만 괄호가 없어도 됨
인덱스랑 슬라이싱은 리스트랑 같은 내용
만약에 튜플 안에 같은 내용이 2개 있다?
그러면 앞에꺼 인덱스 위치로 출력해줌
1,2,3,1,2,3
3 어딨어? -- 인덱스 2에 있어!
튜플은 기본적으로 불변.
그치만 튜플끼리 합치거나 내용을 반복하는 건 가능함
그리고 튜플->리스트, 리스트->튜플로 변환은 가능하기 때문에 튜플을 리스트로 바꾼 후 수정을 하고 다시 튜플로 변환하는 것도 가능함
.
{키:벨류} 가 기본 형태
키는 절대 중복안됨!
딕셔너리는 뭔가 엑셀같음
그래서 pandas에서 표로 만들기도 되게 유용하다~
복붙해서 넣기
get이랑 인덱싱은 별반 차이가 없음. 근데 왜 만들었어!!!!! -> 지피티한테 물어보기
데이터를 매칭해ㅐ서 잘 관리하고 싶을 때 딕셔너리를 사용~
파이썬의 근육,,,조건문과 반복문
모르면 암것도 못한다는 거구나
프로그램의 흐름을 제어할 수 있다
if, elif, else
if 첫번째 조건
elif(선택) 두번째 조건(if에서 걸러진 애들이 옴)
else 위에 두 조건 모두 불충족하는 나머지들
들여쓰기 꼭 명심하기(공백간격는 중요한게 아님. 간격통일이 중요한 거)
이걸 제대로 안하면 인벤테이션 오류가 생기는 거
그리고 조건 뒤에 : 꼭 적기. 자꾸 빠자먹드라
x = 10
if x > 5:
print("첫 번째 블록 시작")
if x < 15:
print("두 번째 블록 시작")
else:
print("첫 번째 블록 끝")
이런 경우에는 첫번째 if의 조건을 만족한 경우에만! 안에 if 조건에 대해서 실행해볼 수 있는 거임
예시로 이해 해보자면
x = 10 --> 두 번째 블록 시작
x = 15 --> 첫 번째 블록 시작
x = 5 --> 첫 번째 블록 끝
.
!= 같지 않음 (이거 좀 특히허네~)
not이랑 비슷한 느낌쓰

그래서 지피티한테 비교 부탁해봄
근데 사실 뭔말인지 정확히는 모르겠음...ㅎㅎ;;
.
x = 10
result = "양의 짝수" if x > 0 and x % 2 == 0 else "음수 또는 0"
print(result)
사전 교육 때 배운 기억이 번뜩 남
이 축약버전을 '삼항연산자'라고 함
기본 형태는 아래와 같음
(참일 때 값) if (조건) else (거짓일 때 값) --- 괄호가 3개 => 항이 3개 => 그래서 삼항연산자!
.
말 그대로 코드를 반복해야 할 때 사용하는 친구.
크게 for문과 while문이 있음
for 변수 in 반복할_데이터:
코드_블록
얘가 더 직관적이라 그런지 while문 보다 많이 쓰인다
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
이러면 과일 이름이 한줄씩 나옴
apple
banana
cherry
문자열에서도 가능함
for letter in "hello":
print(letter)
h
e
l
l
o
range()가 뭔데?
내가 원하는 만큼 숫자를 나열해주는 친구. 연속된 정수를 생성해준다~
range(start, stop, step) -- 이게 기본형
start랑 step은 생략이 가능하며, 생략시 기본값은 start=0, step=1이다~
for i in range(5):
print(i, end=' ')
이렇게 하면, 숫자가 0부터 4까지 5개가 나옴
range(5)라고 쓰면 4까지 나오는게 킹받아서 아래와 같이 작성하기도 함
for i in range(4+1):
이러면 4라는 표현이 들어가니까 좀 더 직관적으로 파악이 가능하다~
리스트의 슬라이싱 - 값을 가져올 때
range() 함수 - 값을 생성할 떄
딕셔너리까지도 반복이 가능하다
근데 중요한 점. 딕셔너리는 키-벨류로 되어 있기 때문에 변수 지정할 때도 키랑 벨류 둘다 해줘야 한다~
person = {"name": "John", "age": 30, "city": "New York"}
for key, value in person.items():
print(key, " : ", value)
요런 것도 됨
sentence = "Hello World"
result = ""
for char in sentence:
if char != "o": --- 'o'가 아닌 것만
result += char --- 누적하거라
print(result)
조건문과 반복문을 복합적으로 활용하여 구구단 출력
for i in range(2, 10):
print(f"{i}단:")
for j in range(1, 10):
print(i, "x", j, " = ", i * j)
이거는 별 찍어내는 코드
직각 삼각형 만들기
size = 5
for i in range(size): --- 별을 몇줄 만들 것이냐
for j in range(i + 1): --- 별을 몇개 만들 것이냐
print("*", end="")
print()
일케하면 역삼각형도 만들 수 있다~
size = 5
for i in range(size, 0, -1):
for j in range(i):
print("*", end="")
print()
결측치가 있는 경우, 반복문을 통해 제거할 수 있음
data = [10, 20, None, 30, 40, None, 50]
cleaned_data = []
for d in data:
if d is not None: 결측치가 아닌 것만
cleaned_data.append(d) 담아주쎼용
print(cleaned_data)
조건을 만족하는 데이터 찾기
data = [10, 20, 30, 40, 50]
threshold = 25
for d in data:
if d > threshold: --- 임계값보다 높은 것만 뽑아서
print("Value greater than", threshold, "found:", d) -- 이렇게 입력해주쇼
모델의 정확도를 평가하는 코드
true_values = [1, 0, 1, 0, 1]
predicted_values = [0, 0, 1, 0, 1]
correct_predictions = 0
for true, pred in zip(true_values, predicted_values): -- 첨보는 함수 zip
if true == pred:
correct_predictions += 1
accuracy = correct_predictions / len(true_values)
print("Accuracy:", accuracy)
zip() 이 뭔데!!

무한반복 -- 그래서 얘를 제어할 수 있는 장치가 필요함
while문 멈춰버리기
- 조건을 집어넣어서 얼마 그걸 만족하면 혹은 불만족하면 멈춰라 하던가
(불리안의 특징을 이용한 것)
.- 사용자의 입력으로 멈추던가
(특정 단어를 사용해서 while user_input != 'quit': 이런 식으로 활용)
.- break를 통해 강제로 빠져나오던가
다른 제어문
pass -> 아무것도 하지말고 그냥 계속해~
continue -> 계속 실행해~
그럼 둘이 무슨 차이냐?
pass는 아랫줄로 넘어가는 거고
continue는 다시 반복문을 수행하기 위해 위로 넘어가는 거임
이런 반복문을 활용하면 팩토리얼 같은 것도 간단히 계산할 수 있음
.
강의 마지막 퀴즈에서 틀린 문제
Q. 1부터 10까지의 정수 중에서 홀수만을 포함하는 리스트를 생성하는 파이썬 코드를 작성해보세요.
내가 썼던 답
for i in range(1, 10+1)
if i % 2 ==1:
print(i)
틀린 이유는 리스트를 생성하라했는데 문제 제대로 안 읽고 출력만 했음 ㅡㅡ
여기서 리스트를 만들기 위해선 먼저 빈 리스트를 하나 선언해줘야 하고,
반복문을 통해 나온 결과를 리스트 안에 넣어줘야 한다~
그래서 올바른 답안은 아래와 같다
odd_numbers = []
for i in range(1, 10+1):
if i % 2 == 1:
odd_numbers.append(i)
.
.
강의내용 정리

오늘은 패드에 필기를 해봤다..!
손으로 쓰니까 좀 더 자유롭고 잠도 안온다는 장점이 있지만
코드 정리 어렵다는 개큰 단점도 있다....
손필기 할거면 코드는 따로 타이핑 해야할 듯
문제는 낼 풀어보기.....
.
.
데이터 분석가가 되어보니 중요한 것
인사이트: 조직의 더 좋은 의사결정을 위해선 무엇보다 조직의 원활한 데이터 흐름이 기반이 되어야 하고, 조직 전체가 데이터에 대한 이해가 있다면 더 구체적이고 체계적인 분석과 목표를 통해 성공적인 의사결정을 할 수 있다
.
.
.
오늘의 소감
오늘 라이브 강의에서 들었던 내용 중, 사전교육에서 배웠던 게 있는 것 같아서 다시 강의 자료를 열어봤는데, 어라 그냥 여태까지 내용이 다 배웠던 거네?
근데 왜 처음보는 것 같았지...? ㅋㅋㅋㅋ큐ㅜ
여태까지 배운 내용의 간단.ver가 정리되어 있으니 나중에 다시 한번 훑어봐야겠다..
새롭게 알게된 점 & 어려웠던 점
아티클 읽으면서 데이터 분석가에게 나아가서는 조직에게 중요한 요소들에 대해서 알 수 있었고, PA랑 zip() 함수 같이 처음 보는 내용에 대해서도 찾아보았다.
어려운 점은 시간이 너무 부족하다....ㅠㅜ
필요이상으로 필기에 신경쓰나 싶은 생각이 들기도 하는데, 담 강의부터는 강의자료에 필기하고 거기서 핵심 내용에 대해서만 TIL에 몇줄 남겨야겠다
내일의 목표
면접 끝나는대로 수업 참가하기
파이썬 기초탄탄 문제 풀기
사전교육 자료 다시 보기