- FACTS :
- ✅ [오전] 파이썬300제 11~20
- ✅ [오전] 파이썬 코드카타 1문
- ✅ [오전] 베이직반 복습 정리
- [ ] [오후] 머신러닝 심화 강의 2주차
- [ ] [오후] 베이직반 복습
- 🔺 [오후] 머신러닝 개인과제 1~4번 -> 1,2번 완료
- FEELINGS : 파이썬으로 치이고,, 머신러닝으로 치이는 하루하루를 보내는 중이다. 튜터님들은 안심시켜주시려고 "어렵지만 괜찮아요!! 할 수 있어요!!" 라고 해주시지만 밥아저씨가 "참 쉽죠?"하는 느낌~ 파이썬은 알다가도 모르겠고 머신러닝은 그냥 모르겠다.
그래도 파이썬은 확실히 베이직반을 들어서 그런지 점점 익숙해지는 기분이다. (실력과는 별개로ㅎ) 정말 많이 해볼 수록 느는건 어쩔 수 없는것 같다. 멘붕에 늪에 빠지지 말고 꾸준히 반복, 반복, 반복!
- FINDINGS :
[파이썬] print() 함수의 두가지 옵션: sep, end
[파이썬] 딕셔너리 형태 {key : value} 일 때, df.values로 딕셔너리 안에 있는 value 값들만 추출 가능.
파이썬 300제
009 print 줄바꿈
다음 코드를 수정하여 줄바꿈이 없이 출력하세요. (힌트: end='') print 함수는 두 번 사용합니다. 세미콜론 (;)은 한줄에 여러 개의 명령을 작성하기 위해 사용합니다.
print("first");print("second")
#출력:
first
second
print("first", end='');print("second")
#출력: firstsecond
print() 함수의 옵션:
- sep=" "
출력할 값들 사이에 삽입할 문자를 지정. 기본값은 공백(" ")이며, 원하는 다른 문자를 넣어 출력 형식을 변경가능.
- end=" "
함수가 출력된 후 추가할 문자를 지정. 기본값은 개행 문자(\n). 원하는 문자나 공백을 넣을 수 있다.
알고리즘 코드카타
#오류코드
def solution(t, p):
answer = 0
number = []
for i in range(len(t)-len(p)+1): # t의 길이에서 p의 길이를 빼고 +1한 만큼 반복 -> t에서 p와 같은 길이의 문자열 추출
number.append(t[i:len(p)+i]) # number에 i~(p길이+i)인 인덱스 만큼 추가
# 부분 문자열들이 p보다 작은지 판단
for i in number: #number의 개수만큼 반복
if number[i] <= p:
answer += 1
return answer
solution('3141592', '271')
❗️오류 : TypeError: list indices must be integers or slices, not str
if numbers[i] <= p
-> 리스트의 인덱스에는 문자열이 올 수 없음
i 에는 number의 각 항목이 순서대로 하나씩 들어가므로, int(i)가 int(p)보다 작으면으로 판단.
for i in number에서 이미 number의 항목들이 하나씩 들어가게 조건을 줬으므로 if 문에서는 numbers가 아니라 i로 쓰면 됨
(예시) number= ['314', '141', '415', '159', '592'] , p = 271 라고 한다면
for i in number:
if int(i) <= int(p):
(반복문)
if int(314) <= int(271)
if int(141) <= int(271)
if int(415) <= int(271)
if int(159) <= int(271)
if int(592) <= int(271)
#정답코드
def solution(t, p):
answer = 0
number = []
for i in range(len(t)-len(p)+1):
number.append(t[i:len(p)+i])
for i in number:
if int(i) <= int(p):
answer += 1
return answer
solution('3141592', '271')
파이썬 베이직반 복습
문제 2 - 학생 성적 관리 시스템
- 다음 요구사항에 맞게 3개의 함수를 작성하세요.
- 학생들의 이름과 성적을 딕셔너리에 저장하고, 출력하는 함수를 작성하세요. (add_student(grades, name, score))
- 성적 평균을 반환하는 함수를 작성하세요. (calculate_average(grades))
- 최고 점수 학생을 반환하는 프로그램 작성하세요. (find_top_students(grades))
- 출력결과를 참고하여, 같은 양식으로 출력되도록 함수를 작성하세요.
- 힌트: 딕셔너리 자료형에서 max와 min값 구하는 방법에 대해 필요한 경우, 아래 링크를 참고하세요. https://note.nkmk.me/en/python-dict-value-max-min/
# 중간과정
student = {'grade': 0, 'name' : 0, 'score' : 0}
def add_student(grades, name, score):
student['name'] = name
student['score'] = score
print(f"Added {name} with score {score}.")
grades = {}
add_student(grades, "Alice", 85)
add_student(grades, "Bob", 92)
add_student(grades, "Charlie", 78)
✔️ 나는 새로운 student라는 딕셔너리를 만들어줬기 때문에 skeleton code와 연동되지 않음
-> skeleton code에 있는 grades = {}만 사용해서 수정
#수정 코드
def add_student(grades, name, score):
grades[name] = score #grade의 key값 name에 score을 value로 넣는다.
print(f"Added {name} with score {score}.")
def calculate_average(grades):
return sum(grades.values())/len(grades) #.values()로 grade의 value값들만 추출
def find_top_student(grades):
top_student = max(grades.values()) #.values()로 grade의 value값들 중에서 최댓값
top_score = max(grades, key=grades.get) #key=grades.get로 grade의 Key값들 중에서 최댓값
print(f"Top student: {top_student} with score {top_score}")
# Example usage
grades = {}
add_student(grades, "Alice", 85)
add_student(grades, "Bob", 92)
add_student(grades, "Charlie", 78)
print(f"Average score: {calculate_average(grades):.2f}")
# top_student, top_score = find_top_student(grades)
find_top_student(grades)
❗️ 마지막 출력에서 top_student, top_score = find_top_student(grades)가 제대로 작동하지 않음
✔️top_student와 top_score을 따로 지정하는게 아니라 딕셔너리의 key:value값을 이용하여 지정
#정답 코드
def add_student(grades, name, score):
grades[name] = score #grade의 key값 name에 score을 value로 넣는다.
print(f"Added {name} with score {score}.")
def calculate_average(grades):
return sum(grades.values())/len(grades) #.values()로 grade의 value값들만 추출
def find_top_student(grades):
top_student = max(grades, key=grades.get) #grades.get로 점수를 가져와서 max 값을 가진 학생의 이름을 반환
return top_student, grades[top_student] #가장 높은 점수의 학생의 이름(top_student)과 해당 학생의 점수(grades[top_student])를 반환
# Example usage
grades = {}
add_student(grades, "Alice", 85)
add_student(grades, "Bob", 92)
add_student(grades, "Charlie", 78)
print(f"Average score: {calculate_average(grades):.2f}")
top_student, top_score = find_top_student(grades)
print(f"Top student: {top_student} with score {top_score}")
'내일배움캠프 > TIL' 카테고리의 다른 글
[TIL]250123_추천 받은 통계학 개념서, 파이썬_format(),strip() (0) | 2025.01.23 |
---|---|
[TIL]250122_머신러닝 개인과제3-4번,아티클스터디 (0) | 2025.01.22 |
[TIL]250120_파이썬 베이직반 복습_수정중... (0) | 2025.01.20 |
[TIL]250117_QCC4회차, 개인과제 복습 (0) | 2025.01.17 |
[TIL]250116_파이썬 베이직 4회차 복습, 개인과제 문제6 (0) | 2025.01.16 |