2025. 9. 9. 13:51
반응형
students=[]
sum = 0
num = int(input('학생 수 입력: '))
for i in range(num):
print(f' <<{i+1}번째 학생 정보 입력 >>')
name = input('학생 이름 입력: ')
score = int(input(f'{name} 점수 입력: '))
students.append([name,score])
sum = sum + score
for info in students:
print(f'이름: {info[0]}, 점수: {info[1]}')
print(f'학생들 점수 평균: {sum/num: .2f}')
결과)
학생 수 입력: 3
<<1번째 학생 정보 입력 >>
학생 이름 입력: 홍길동
홍길동 점수 입력: 90
<<2번째 학생 정보 입력 >>
학생 이름 입력: 마우스
마우스 점수 입력: 70
<<3번째 학생 정보 입력 >>
학생 이름 입력: 키보드
키보드 점수 입력: 80
이름: 홍길동, 점수: 90
이름: 마우스, 점수: 70
이름: 키보드, 점수: 80
학생들 점수 평균: 80.00
파이썬 소스 및 결과입니다. 소스를 아주 자세히 설명을 해주세요.
이 코드는 학생들의 이름과 점수를 입력받아 저장하고, 마지막에 입력된 모든 학생의 정보와 평균 점수를 출력하는 프로그램입니다.
1. 변수 및 리스트 초기화
Python
students=[]
sum = 0
num = int(input('학생 수 입력: '))
- students=[]: 학생들의 정보를 담을 빈 리스트를 만듭니다. 리스트는 여러 값을 순서대로 저장할 수 있는 자료구조예요. 여기서는 각 학생의 이름과 점수를 담는 리스트들을 다시 이 students 리스트 안에 넣을 겁니다.
- sum = 0: 학생들의 총점을 계산하기 위한 변수를 0으로 초기화합니다. 각 학생의 점수를 이 변수에 계속 더해나갈 거예요.
- num = int(input('학생 수 입력: ')): input() 함수를 사용해 사용자에게 '학생 수'를 입력받습니다. input() 함수는 입력받은 값을 문자열로 반환하기 때문에, int() 함수를 사용해서 정수로 바꿔주는 과정이 꼭 필요합니다. 예를 들어, 3을 입력하면 num 변수에는 정수 3이 저장됩니다.
2. 학생 정보 입력 및 저장 (반복문)
Python
for i in range(num):
print(f' <<{i+1}번째 학생 정보 입력 >>')
name = input('학생 이름 입력: ')
score = int(input(f'{name} 점수 입력: '))
students.append([name,score])
sum = sum + score
- for i in range(num):: for 반복문은 정해진 횟수만큼 코드를 반복 실행할 때 사용됩니다. range(num)은 0부터 num-1까지의 숫자를 만들어내요. 예를 들어, num이 3이면 이 코드는 i가 0, 1, 2일 때 총 3번 반복됩니다.
- print(f' <<{i+1}번째 학생 정보 입력 >>'): 현재 몇 번째 학생의 정보를 입력하는지 알려주는 문구입니다. i가 0부터 시작하기 때문에, 사용자에게는 1번째, 2번째처럼 보이도록 i+1을 사용했습니다.
- name = input('학생 이름 입력: '): 학생의 이름을 입력받아 name 변수에 저장합니다.
- score = int(input(f'{name} 점수 입력: ')): f-string을 사용해 '{name} 점수 입력: '과 같은 문구를 출력하고, 학생의 점수를 입력받아 score 변수에 저장합니다. 입력받은 점수는 정수로 변환됩니다.
- students.append([name,score]): append() 메서드를 사용해 students 리스트의 맨 끝에 [이름, 점수] 형태의 새로운 리스트를 추가합니다. 예를 들어, '홍길동'과 점수 '90'을 입력하면 students 리스트는 [['홍길동', 90]]이 됩니다. 두 번째 학생을 입력하면 [['홍길동', 90], ['마우스', 70]]이 됩니다.
- sum = sum + score: 입력받은 점수를 sum 변수에 계속 더해나갑니다. 이 과정을 통해 모든 학생의 점수를 합산하게 됩니다.
3. 학생 정보 출력 (반복문)
Python
for info in students:
print(f'이름: {info[0]}, 점수: {info[1]}')
- for info in students:: 이 반복문은 students 리스트에 들어있는 각 항목을 처음부터 끝까지 순서대로 꺼내와 info 변수에 저장합니다. students 리스트는 [['홍길동', 90], ['마우스', 70], ['키보드', 80]] 와 같이 생겼으므로, 첫 번째 반복에서는 info가 ['홍길동', 90]이 되고, 두 번째 반복에서는 ['마우스', 70]이 됩니다.
- print(f'이름: {info[0]}, 점수: {info[1]}'): info 리스트의 첫 번째 항목(인덱스 0)은 이름이고, 두 번째 항목(인덱스 1)은 점수입니다. 이 값을 f-string으로 깔끔하게 출력합니다.
4. 평균 점수 계산 및 출력
Python
print(f'학생들 점수 평균: {sum/num: .2f}')
- sum/num: sum 변수에 저장된 총점을 학생 수(num)로 나누어 평균 점수를 계산합니다.
- {sum/num: .2f}: 이 부분은 평균 점수를 f-string으로 출력하면서 소수점 둘째 자리까지 나타내도록 서식을 지정하는 방법입니다. .은 소수점, 2는 둘째 자리, f는 부동소수점(float)을 의미합니다. 만약 평균이 80처럼 정수로 나오더라도 .00이 붙어서 80.00으로 출력됩니다.
반응형
'파이썬(Python)' 카테고리의 다른 글
| 파이썬, random, while, if, 컴퓨터가 생각한 숫자 맞추기 게임 프로그램 소스 (0) | 2025.09.09 |
|---|---|
| 파이썬, 모듈의 의미는? (0) | 2025.09.09 |
| 파이썬, 삼각형 모양 별 출력 소스 (0) | 2025.09.07 |
| 파이썬, for, if, range함수, 3의 배수 제외한 숫자 합계 소스 (0) | 2025.09.07 |
| 파이썬, while문 소스, 정수 입력 덧셈 수행 소스 (0) | 2025.09.07 |
콘텐츠 내 자동삽입광고
