반응형
파이썬을 이용한 프로그래밍에 흥미가 생겨, AI를 활용해 개인적으로 구현해보고 싶다고 생각이 드는 프로그램을 직접 만들어보고자 한다.
그 첫 프로그램은 과거에 학교에서 선생님들이 학생들 자리를 바꾸는데 사용하시던 프로그램이 생각나, 이를 파이썬을 이용해 구현해보고자 한다.
우선 첫 단계로, 프로그램의 작동 방식을 정해볼 것이다.
내가 생각한 프로그램의 작동 방식은 지정된 이름의 txt 파일에 학생들 이름을 기록해 놓으면, 프로그램이 그 txt 파일로부터 이름을 읽어들이고, 무작위로 자리를 배정하도록 할 것이다.
위에서 정한 프로그램의 작동 방식을 바탕으로, 프로그램의 기초 작동 로직을 만들어보자.
대략적으로 만들어 본 자리배치 프로그램의 기초 작동 로직은 아래와 같다.
import random
def load_students(filename="students.txt"):
students = []
try:
with open(filename, 'r', encoding='utf-8') as file:
for line in file:
students.append(line.strip())
if not students:
print(f"경고: '{filename}' 파일이 비어있거나 학생 이름이 없습니다.")
return students
except FileNotFoundError:
print(f"오류: '{filename}' 파일을 찾을 수 없습니다. 파일 이름과 경로를 확인해주세요.")
return None
def assign_seats(students):
if not students:
return []
random.shuffle(students)
return students
def print_seating_chart(seated_students):
print("\n 무작위 자리 배치 결과 ")
print("--------------------------")
for i, student in enumerate(seated_students):
print(f"자리 {i+1}: {student}")
print("--------------------------")
첫 번째 함수는 파일을 읽어들이는 함수이다.
def load_students(filename="students.txt"):
students = []
try:
with open(filename, 'r', encoding='utf-8') as file:
for line in file:
students.append(line.strip())
if not students:
print(f"경고: '{filename}' 파일이 비어있거나 학생 이름이 없습니다.")
return students
except FileNotFoundError:
print(f"오류: '{filename}' 파일을 찾을 수 없습니다. 파일 이름과 경로를 확인해주세요.")
return None
파이썬 실행 프로그램과 같은 폴더에 students.txt라는 이름의 텍스트 파일에 한 줄에 한 명씩 이름을 기입하여 저장해놓으면, 이 함수가 한 줄씩 읽어들이고 리스트에 저장해주는 것이다.
두 번째 함수는 위의 함수에서 저장된 리스트 내부 요소들의 순서를 무작위로 뒤섞는 함수이다.
def assign_seats(students):
if not students:
return []
random.shuffle(students)
return students
마지막 세 번째 함수는 무작위로 배치된 학생 명단을 받아서 i번째 자리에 어떤 학생이 배치되었는지를 쭉 출력하는 함수이다.
def print_seating_chart(seated_students):
print("\n 무작위 자리 배치 결과 ")
print("--------------------------")
for i, student in enumerate(seated_students):
print(f"자리 {i+1}: {student}")
print("--------------------------")
반응형
'파이썬 > 개인 작업' 카테고리의 다른 글
파이썬 프로그래밍 - 랜덤 자리 배치 프로그램 만들기 (完) (0) | 2025.05.15 |
---|---|
파이썬 프로그래밍 - 랜덤 자리 배치 프로그램 만들기 (2) (0) | 2025.05.11 |