안녕하세요. 우당탕탕 개발일지 입니다. 학교 과제로 나온 파이썬 이중 리스트 관련한 문제를 포스트 하려고 합니다.
언어는 python이고 Visual Stubio Code를 사용했습니다.
▶문제
이중 리스트를 이용하여 회원의 성명, 신장, 체중 관리 프로그램 작성(함수 사용)
- 회원 정보 입력 기능 (이중 리스트 사용)
- 회원정보 검색 기능
- 정렬 기능(회원명, 신장, 체중)
- 찾기 기능(최고, 최저, (이상, 이하) 신장 또는 체중을 가진 회원 정보 검색)
- 회원 정보(회원명, 신장, 체중) 추가 및 삭제 기능
▶해결과정
▷리스트 생성
member_list=[]
▷회원 정보 입력 기능
#입력 기능
def data_input():
end_Q=''
while end_Q!='y':
name=input("회원님의 이름을 입력해주세요:")
weight=int(input("회원님의 몸무게를 입력하세요.: "))
member_list.append([name,weight])
end_Q=input("입력을 끝낼까요?(y/n):")
data_input()#함수 호출
▷회원 정보 삭제 기능
#삭제 기능(인덱스로 삭제)
def data_del():
del_Q=''
del_Q=input("삭제 하고 싶은 데이터가 있으신가요?(y/n):")
while del_Q!='n':
print(member_list)
member_del=int(input("삭제하고 싶은 회원님이 몇번째에 있는지를 입력해주세요:"))
if member_del>0 and member_del <=len(member_list):
member_list.pop(member_del-1) #pop()
print(member_list)
else:
print("잘못된 입력입니다.")
del_Q=input("삭제 하고 싶은 데이터가 있으신가요?(y/n):")
data_del() #함수 호출
▷회원 정보 추가 기능
#추가 기능
def data_add():
add_Q=input("추가 하고 싶은 데이터가 있으신가요?(y/n):")
while add_Q!='n':
name1=input("회원님의 이름을 입력해주세요:")
weight1=int(input("회원님의 몸무게를 입력하세요.: "))
member_list.append([name1,weight1])
add_Q=input("추가 하고 싶은 데이터가 있으신가요?(y/n):")
print(member_list)
data_add() #함수 호출
▷회원 정보 정렬 기능
#sort 안쓰고 버블정렬
def data_bubble_sort():
member_len=len(member_list)
for x in range(member_len):
for y in range(0, member_len - 1):
if member_list[y][1] > member_list[y + 1][1]:
temp = member_list[y]
member_list[y] = member_list[y + 1]
member_list[y + 1] = temp
print('몸무가 작은 순서로 정렬',member_list)
data_bubble_sort() #함수호출
▷회원 정보 최대,최소 찾기 기능
#최대,최저 몸무게 출력
def max_min_out():
data_bubble_sort()
last_index=len(member_list)-1
print("최대 몸무게 회원 정보:", member_list[last_index])
print("최저 몸무게 회원 정보:", member_list[0])
max_min_out() #함수호출
▷회원 정보 검색 기능
#특정 몸무게 출력(인덱스 이용)
def data_some():
s_out=input("특정인만 출력하고 싶으십니까?(y/n):")
if s_out=='y':
print(member_list)
s_who_index = input("출력하고 싶은 회원님이 몇번째에 있는지 모두 입력해 주세요(공백 구분): ").split() #split()
for i in s_who_index:
s_who= int(i-1)
if s_who >=0 and s_who < len(member_list):
print("회원의 정보:", member_list[s_who])
else:
print("회원 정보가 존재하지 않습니다.")
else:
print(member_list)
data_some() #함수호출
전체코드
member_list=[]
#입력 기능
def data_input():
end_Q=''
while end_Q!='y':
name=input("회원님의 이름을 입력해주세요:")
weight=int(input("회원님의 몸무게를 입력하세요.: "))
member_list.append([name,weight])
end_Q=input("입력을 끝낼까요?(y/n):")
#삭제 기능(인덱스로 삭제)
def data_del():
del_Q=''
del_Q=input("삭제 하고 싶은 데이터가 있으신가요?(y/n):")
while del_Q!='n':
print(member_list)
member_del=int(input("삭제하고 싶은 회원님이 몇번째에 있는지를 입력해주세요:"))
if member_del>0 and member_del <=len(member_list):
member_list.pop(member_del-1) #pop()
print(member_list)
else:
print("잘못된 입력입니다.")
del_Q=input("삭제 하고 싶은 데이터가 있으신가요?(y/n):")
#추가 기능
def data_add():
add_Q=input("추가 하고 싶은 데이터가 있으신가요?(y/n):")
while add_Q!='n':
name1=input("회원님의 이름을 입력해주세요:")
weight1=int(input("회원님의 몸무게를 입력하세요.: "))
member_list.append([name1,weight1])
add_Q=input("추가 하고 싶은 데이터가 있으신가요?(y/n):")
print(member_list)
#sort함수 안쓰고 버블정렬_오름차순 정렬
def data_bubble_sort():
member_len=len(member_list)
for x in range(member_len):
for y in range(0, member_len - 1):
if member_list[y][1] > member_list[y + 1][1]:
temp = member_list[y]
member_list[y] = member_list[y + 1]
member_list[y + 1] = temp
print('몸무가 작은 순서로 정렬',member_list)
#최대,최저 몸무게 출력
def max_min_out():
data_bubble_sort()
last_index=len(member_list)-1
print("최대 몸무게 회원 정보:", member_list[last_index]) #정렬한 뒤 맨 마지막 인덱스==최대
print("최저 몸무게 회원 정보:", member_list[0]) #정렬한 뒤 처음 인덱스 ==최소
#특정 몸무게 출력(인덱스 이용)
def data_some():
s_out=input("특정인만 출력하고 싶으십니까?(y/n):")
if s_out=='y':
print(member_list)
s_who_index = input("출력하고 싶은 회원님이 몇번째에 있는지 모두 입력해 주세요(공백 구분): ").split() #split()
for i in s_who_index:
s_who= int(i-1)
if s_who >=0 and s_who < len(member_list):
print("회원의 정보:", member_list[s_who])
else:
print("회원 정보가 존재하지 않습니다.")
else:
print(member_list)
data_input()
data_add()
data_del()
data_bubble_sort()
data_some()
max_min_out()
728x90
'[프로그래밍 언어] > python' 카테고리의 다른 글
[python] 순차 탐색 알고리즘, 이진 탐색 알고리즘 (0) | 2024.09.29 |
---|---|
따라하며 배우는 파이썬과 데이터 과학(개정판)_ch9 Lab, 도전문제 문제풀이 (0) | 2024.05.09 |
따라하며 배우는 파이썬과 데이터 과학(개정판)_ch5 문제풀이 (1) | 2024.05.01 |
따라하며 배우는 파이썬과 데이터 과학(개정판)_ch4 문제풀이 (0) | 2024.04.27 |
따라하며 배우는 파이썬과 데이터 과학(개정판)_ch3 문제풀이 (0) | 2024.03.20 |