튜터님 기초 문제 공유 (6문제) — # 저녁 때 같이 풀기!
`#숙제1 #Hello World를 5번 출력`
`#숙제2 #1부터 44까지 짝수만 출력`
`#숙제3 #1부터 44까지 짝수는 * 4, 홀수 그냥 출력`
`#숙제4 #Hello World 4번 출력`
`#숙제5 #numbers = [1, 2, 3, 4, 5]
#순회를 돌아 numbers 요소 출력 `#숙제6 #1부터 4까지 합 계산`
Chat GPT 딕셔너리 문제 (초, 중, 고급)
문제 1
주어진 student 딕셔너리에서 학생의 이름과 점수를 출력하는 프로그램을 작성하세요. |
student = { 'name': '홍길동', 'age': 20, 'score': 85 } |
출력 예시 |
이름: 홍길동 점수: 85 |
문제 2: 딕셔너리 값 수정하기 (초급)
주어진 딕셔너리에서 score 값을 90으로 수정하고, 전체 딕셔너리를 출력하세요. |
student = { 'name': '김철수', 'age': 22, 'score': 78 } |
출력 예시 |
{'name': '김철수', 'age': 22, 'score': 90} |
문제 3: 딕셔너리 키와 값 추가하기 (중급)
student 딕셔너리에 새로운 항목 major (전공)을 추가하고 출력하는 프로그램을 작성하세요. |
student = { 'name': '이영희', 'age': 21, 'score': 92 } |
출력예시 |
{'name': '이영희', 'age': 21, 'score': 92, 'major': '컴퓨터공학'} |
문제 4: 딕셔너리에서 값 삭제하기 (중급)
주어진 딕셔너리에서 age 키를 삭제하고, 삭제된 후의 딕셔너리를 출력하세요. |
student = { 'name': '박민수', 'age': 23, 'score': 88 } |
출력 예시 |
{'name': '박민수', 'score': 88} |
문제 5: 딕셔너리 여러 개 합치기 (중급)
두 개의 딕셔너리가 주어졌을 때, 두 딕셔너리를 합친 새로운 딕셔너리를 만들어 출력하세요. |
student1 = { 'name': '최준호', 'score': 75 } student2 = { 'age': 24, 'major': '영문학' } |
출력 예시 |
{'name': '최준호', 'score': 75, 'age': 24, 'major': '영문학'} |
1. update(): 원래 딕셔너리를 변경해야 한다면 사용.
- 특징: student1에 student2의 값이 병합되며, 중복된 키는 student2의 값으로 덮어씌워짐.
2. | 연산자 또는 ** 전개 연산 : 새로운 딕셔너리를 생성하고 싶을 때 사용.
- 특징: 새로운 딕셔너리를 생성합니다. student1과 student2는 원본 그대로 유지됨.
3. 반복문 : 여러 딕셔너리를 동적으로 병합해야 할 때 유용.
문제 6: 딕셔너리에서 특정 키가 존재하는지 확인 (중급)
주어진 딕셔너리에서 name 키가 존재하는지 확인하고, 존재하면 "키가 존재합니다"를 출력하고, 존재하지 않으면 "키가 없습니다"를 출력하세요. |
student = { 'name': '이하늘', 'age': 28 } |
문제 7: 중첩된 딕셔너리 (고급)
다음과 같은 중첩된 딕셔너리에서 address 값을 출력하는 프로그램을 작성하세요. |
person = { 'name': '김하나', 'contact': { 'email': 'hana@naver.com', 'phone': '010-1234-5678' }, 'address': '서울시 강남구' } |
위 코드에서 True가 출력되는 이유는 in 연산자가 딕셔너리에서 **키(key)**의 존재 여부를 확인하기 때문입니다.
in 연산자의 동작
- 파이썬에서 딕셔너리에 대해 in 연산자를 사용하면, **딕셔너리의 키(key)**가 존재하는지 확인합니다.
- **값(value)**는 확인하지 않습니다.
왜 True가 나오나요?
- 딕셔너리 person의 키는 name, contact, address입니다.
- address는 person 딕셔너리의 키로 존재하기 때문에, **'address' in person**은 True를 반환합니다.
문제 8: 딕셔너리 값에 리스트 포함하기 (고급)
주어진 student_scores 딕셔너리에서 각 학생의 점수를 평균을 구하여 출력하세요. |
student_scores = { '홍길동': [85, 90, 88], '이영희': [78, 82, 95], '김철수': [92, 94, 91] } |
출력 예시 |
홍길동의 평균 점수: 87.67 이영희의 평균 점수: 85.00 김철수의 평균 점수: 92.33 |
student_scores = { '홍길동': [85, 90, 88], '이영희': [78, 82, 95], '김철수': [92, 94, 91] } # 각 학생의 평균 점수를 계산하고 출력 for student, scores in student_scores.items(): average = sum(scores) / len(scores) # 평균 계산 print(f"{student}의 평균 점수: {average:.2f}") |
코드 설명
- for 루프:
- student_scores.items()를 사용해 각 학생의 이름(student)과 점수 리스트(scores)를 가져옵니다.
- 평균 계산:
- sum(scores): 리스트의 합계.
- len(scores): 리스트의 길이(점수 개수).
- 평균 = 합계 ÷ 점수 개수.
- 출력 형식:
- f"{average:.2f}": 평균 점수를 소수점 둘째 자리까지 출력.
추가 설명
- 소수점 자리수:
- :.2f는 소수점 두 자리로 제한합니다.
- 다른 방법으로 평균 구하기:
- Python의 statistics 모듈을 사용해 평균을 구할 수도 있습니다:
from statistics import mean for student, scores in student_scores.items(): average = mean(scores) print(f"{student}의 평균 점수: {average:.2f}") |
위 코드를 실행하면 각 학생의 평균 점수를 정확히 계산하여 출력할 수 있습니다.
추가로 궁금한 점이 있다면 언제든 질문해주세요! 😊 그래애~~
문제 9: 딕셔너리로 학생 성적 관리하기 (고급)
주어진 students 딕셔너리에서, 점수가 80점 이상인 학생만 출력하는 프로그램을 작성하세요. |
students = { '홍길동': 85, '이영희': 78, '김철수': 92, '박민수': 65 } |
코드 설명
- for 루프:
- students.items()를 사용해 각 학생의 이름(student)과 점수(score)를 가져옵니다.
- 조건 검사:
- if score >= 80: 점수가 80점 이상인 경우만 출력.
- 출력:
- 조건에 맞는 학생의 이름과 점수를 출력.
문제 10: 딕셔너리로 학생 성적 최고/최저 찾기 (고급)
students 딕셔너리에서 성적이 가장 높은 학생과 성적이 가장 낮은 학생을 출력하세요. |
students = { '홍길동': 85, '이영희': 78, '김철수': 92, '박민수': 65 } |
정리
- max()와 min()
- 딕셔너리에서 특정 기준(점수)을 기준으로 최대/최소를 구합니다.
- students.get
- 값을 기준으로 비교하기 위해 딕셔너리의 값을 가져옵니다.
딕셔너리 활용 문제는...
내일할게요...
'오합지졸 같이풀기' 카테고리의 다른 글
20241128 같이풀기 - 딕셔너리 문제 (0) | 2024.11.28 |
---|---|
20241128 같이풀기 (튜터님 숙제) (0) | 2024.11.28 |