728x90
반응형
1.
fruits_dic = {'사과': 0, '배': 0, '수박': 0, '귤': 0, '포도': 0}
while True:
userlist = input("사과, 배, 수박, 귤, 포도 가격을 공백으로 구분하여 입력: ").split()
count = 0
print("--------- 오늘의 과일 가격 -------------")
for x in fruits_dic.keys():
fruits_dic[x] = userlist[count]
print(f"{x:2s}: ", fruits_dic[x],"원")
count += 1
f"{}" 포매팅이 확실히 편하긴 한데 이게 한글이라서 포매팅이 잘 안되긴 한다 그리고 몰랐는데 딕셔너리도 순서가 있었구나
2.
fruits_dic = {'사과': 0, '배': 0, '수박': 0, '귤': 0, '포도': 0}
userlist = input("사과, 배, 수박, 귤, 포도 가격을 공백으로 구분하여 입력: ").split()
count = 0
print("--------- 오늘의 과일 가격 -------------")
for x in fruits_dic.keys():
fruits_dic[x] = userlist[count]
print(f"{x:2s}: ", fruits_dic[x],"원")
count += 1
user = input("구매를 원하는 과일의 이름을 입력하시오 : ")
if user in fruits_dic.keys():
print("오늘의 수박 가격은", fruits_dic[user],"원 입니다.")
else:
print("잘못 입력하셨습니다.")
3.
student_tup = (("211101", "최성훈", "010-1234-4500"), ("211102", "김은지", "010-2230-6540"), ("211103", "이세은", "010-1234-4500"))
student_dic = {}
for i in range(len(student_tup)):
alist = []
alist.append(student_tup[i][1])
alist.append(student_tup[i][2])
student_dic[student_tup[i][0]] = alist
print("학생의 정보 목록")
print(student_dic)
user = input("학번을 입력하시오 :")
print("이름 :", student_dic[user][0])
print("연락처 :", student_dic[user][1])
items는 키:값 쌍을 튜플로 반환함
(4)
student_tup = (("211101", "최성훈", "010-1234-4500"), ("211102", "김은지", "010-2230-6540"), ("211103", "이세은", "010-1234-4500"))
student_dic = {}
sum = 0
for i in range(len(student_tup)):
alist = []
alist.append(student_tup[i][1])
alist.append(student_tup[i][2])
if i == 0:
alist.append(4.3)
elif i == 1:
alist.append(3.9)
else:
alist.append(4.25)
student_dic[student_tup[i][0]] = alist
for i in student_dic.keys():
sum += student_dic[i][2]
print("전체 학점의 평균:", f"{sum/len(student_dic):2.2f}")
부동소수점 오차 때문에 4.149999995 뭐 이딴식으로 나와서 round 나 format으로 2자리, 2번째 자리에서 반올림을 지정해줘야 함
4.
(1)
lst = [10, 30, 40, 50 ,30, 20, 20, 20, 10, 30]
nodup = []
for x in lst:
if lst.count(x) == 1:
nodup.append(x)
print("중복이 없는 원소 :", nodup)
count를 통해서 리스트에 x 원소가 몇개가 있는지 알 수 있음 미친 파이썬
(2)
lst = [10, 30, 40, 50 ,30, 20, 20, 20, 10, 30]
lset = set(lst)
print("전체 원소 :", sorted(lset))
sorted는 파이썬 내장 함수 였다
(3)
lst = [10, 30, 40, 50 ,30, 30, 20, 20, 20, 10, 30]
lset = set(lst)
for x in sorted(lset):
if lst.count(x) == 1:
continue
else:
print(x, ":", lst.count(x), "회")
위 두 예제를 합쳤는데 중복되게 나오면 안되므로 찾는 x원소는 집합에서 찾는다
5.
dic = {}
print("사전 프로그램 시작... 종료는 q를 입력")
while True:
user = input("$ ")
command = user[:1]
if command == "<":
alist = user[1:].split(":")
if len(alist) < 2:
print("제대로 입력해주세요 키:값 꼴")
else:
dic[alist[0].strip()] = alist[1].strip()
elif command == ">":
a = user[1:].strip()
if a in dic:
print(dic[a])
else:
print(f"{a}는(은) 사전에 없습니다")
elif command == "v":
print("영어 사전에 있는 단어와 뜻을 출력합니다.")
for x in dic.keys():
print(x, ":", dic[x])
elif command == "q":
break;
else:
print("<, >, v, q 중에서 입력해주세요")
print("프로그램을 종료합니다.")
다시 그냥 처음부터 다 짰는데 전보다 훨씬 깔끔하게 그리고 정답과 비슷하게 코드를 짰다 그러나 사전에 입력한 단어가 없는 경우를 까먹었다 또 f 포매팅도 완벽히 사용해서 좋았음
6.
dic = {}
dic2 = {}
count = 0
student_tuple = [('211101', '강이안', '010-123-1111'), ('211102', '박동민', '010-123-2222'), ('211103', '김수정', '010-123-3333')]
for x in student_tuple:
dic[x[0]] = x[1]
dic2[x[0]] = x[2]
while True:
user = input("학번을 입력하세요: ")
print(user,"학생은", f"{dic[user]}이며, 전화번호는", f"{dic2[user]}입니다.")
일단 짜긴 짰는데 이게 원하는 건진 모르겠다 (학번:이름) 딕셔너리를 이용하여 전화번호 까지 출력되게 하라니
728x90
반응형
'코딩의 기록' 카테고리의 다른 글
따라하며 배우는 파이썬과 데이터과학 9장 심화문제 (0) | 2025.02.15 |
---|---|
따라하며 배우는 파이썬과 데이터과학 -9. 텍스트를 처리해보자- (0) | 2025.02.13 |
따라하며 배우는 파이썬과 데이터과학 -8. 연관된 데이터를 딕셔너리로 짝을 짓자 (1) | 2025.01.31 |
유클리드 호제법 (+ 유클리드의 소수의 무한성 증명) (1) | 2025.01.30 |
따라하며 배우는 파이썬과 데이터과학 7장 심화문제 (0) | 2025.01.20 |