for crime in ['강간', '강도', '살인', '절도', '폭력']:
pvt2[f'{crime} 검거율'] = pvt2[f'{crime}(발생)'] / pvt2[f'{crime}(검거)'] * 100
이렇게 해서 넣어주었어요 (파일 이름 : pvt2)
crime이라는 이름의 리스트를 만들어주었구요
f{} 이렇게 써서 편하게 쓸 수 있어요!
이걸 포매팅이라고 하거든요! 종류가 다양한데,
포매팅은 내일 공부할 겁니다 😎
결과물 아 ~ 주 예뻐서 맘에 들어용 ㅎㅎㅎ
오후 ( 14 : 00 ~ 18 : 00 )
정신없이 찾아보고 물어보고
팀원 분들이랑 소통도 하니까 점심 시간이더라구요
그래서 후다닥 밥 챙겨 먹고,
매니저 님께 git hub 꿀팁 얘기도 듣고 난 후에
남은 문제들 풀어보았습니다!
<Quiz 6_필요없는 column을 del을 써서 삭제하기>
삭제 해봅시다 😎
# Quiz 6_del 사용해서 필요없는 컬럼 삭제하기
for delete_columns in ['강간(검거)','강도(검거)','살인(검거)','절도(검거)','폭력(검거)','소계(발생)','소계(검거)']:
if delete_columns in pvt2:
del pvt2[f'{delete_columns}']
print(pvt2)
앞서 컬럼을 한 번에 생성했듯이
삭제도 같은 방식으로 해보았어요
되네요..?
됐다고 나오니까 오히려 불안했어요,, 👀
그래서 확인 받으러 튜터 님께 갔죠?
# Quiz 6_del 사용해서 필요없는 컬럼 삭제하기
for delete_columns in ['강간(검거)','강도(검거)','살인(검거)','절도(검거)','폭력(검거)','소계(발생)','소계(검거)']:
if delete_columns in pvt2:
del pvt2[delete_columns]
print(pvt2)
word = "Python"
print(f"단어 '{word}'의 길이는 {len(word)}입니다.")
함수 len()이 들어가서도 작동이 가능해요!
대신 {len()} 구조로 들어가야 하네요!
단어 'Python'의 길이는 6입니다.
6. 할당하기 (=)
x = "배"
y = "민경"
print(f"{x=}, {y=}") # 변수명과 값 출력
오,, ㅋㅋㅋㅋㅋㅋㅋㅋ
재밌네요! 되게 유용하네요
다양하게 많이 쓰이니까, 신기한 거 같아요
한 번 더 파일명을 언급하지 않아도 된다는 것도 너무 좋구요!
<Quiz 7_ rename>
드디어 마지막 문제입니다!!
rename을 해볼게요!
이번에도 for문으로 해결할 겁니다!
# Quiz 7. rename하기
# 1트
for rename_columns in {'강간(발생)':'강간','강도(발생)':'강도','살인(발생)':'살인','절도(발생)':'절도','폭력(발생)':'폭력'}:
if rename_columns in pvt2:
pvt2.rename(rename_columns)
될 줄 알았는데 안 되더라구요
# 오류 내용
TypeError: Index(...) must be called with a collection of some kind, '강간(발생)' was passed
#딕셔너리 여러 개 합치기
# 문제 5: 두 개의 딕셔너리가 주어졌을 때, 두 딕셔너리를 합친 새로운 딕셔너리를 만들어 출력하세요. (중급)
# 출력 예시 : {'name': '최준호', 'score': 75, 'age': 24, 'major': '영문학'}
student1 = {
'name': '최준호',
'score': 75
}
student2 = {
'age': 24,
'major': '영문학'
}
#딕셔너리에서 특정 키가 존재하는지 확인
# 문제 6: 주어진 딕셔너리에서 name 키가 존재하는지 확인하고, 존재하면 "키가 존재합니다"를 출력하고,
# 존재하지 않으면 "키가 없습니다"를 출력하세요. (중급)
# 출력 예시 : 키가 존재합니다
student = {'name': '이하늘','age': 28}
#1트
for i in student6:
if student6 == 'name':
print("키가 있습니다")
else:
print("키가 없습니다")
키가 없습니다
키가 없습니다
??????
왜 print()가 두 번이 되는지도 궁금하고
print(type(student6) 했을 때
dict로 나와서 그런 걸까요? 적용이 안 되네요..? 🧐
이 고민을 하면서 30분이나 걸린 문제입니다..
물론 튜터 님과 매니저 님께 자문을 구하였지만,
돌아와서 다시 혼자 생각을 해보니까
비슷한 문제가 생겼을 때,
스스로 해내진 못 할 거 같더라구요 🥲
그래서
혼자 다시 생각해보았습니다
제가 간과했던 개념이, for은 순차적으로 순회 검사를 한다는 거였어요
그래서 결과값이 두 번이나 나왔던 거고,
#2트
if i == 'name':
print("키가 있습니다")
else:
print("키가 없습니다")
if문 뒤에 적었던 student6는 dict의 타입이기 때문에
== 뒤에 오는 'name'과는 타입이 안 맞아서 오류가 났더라구요
그래서 if 뒤에 i를 적어주고 다시 돌려보았습니다.
Traceback (most recent call last):
File "/Users/baeminkyung/Desktop/딕셔너리 문제.py", line 63, in <module>
if i == 'name':
^
NameError: name 'i' is not defined. Did you mean: 'id'?
오류를 돌려받았습니다 ㅎ
생각해보니까 ㅋㅋㅋㅋㅋ i라는 거는 for을 위해서 만든 애기 때문에
지워주거나 student6로 바꿔줘야 했는데 말이죠 ㅋㅋㅋㅋ,,
# 3트
if student6 :
print("키가 존재합니다")
else:
print("키가 없습니다")
if student6.get('name'):
print("키가 존재합니다")
else:
print("키가 없습니다")
키가 존재합니다
전 저 자신에게 무궁무진한 박수와 칭찬을 해주고 싶어요
문제 풀다가 막혀서 혼자 처음엔 낑낑거리다가
자문을 구하러 여기저기 돌아다니고,
힌트를 받아서 혼자 생각하고 해낸 게 짜릿했습니다
어쨌든 해냈다는 거고? 도파민도 팡팡 터지네요 🤪
<문제 7 . 중첩된 딕셔너리>
#중첩된 딕셔너리
# 문제 7: 다음과 같은 중첩된 딕셔너리에서 address 값을 출력하는 프로그램을 작성하세요. (고급)
# 출력 예시 : 서울시 강남구
person = {
'name': '김하나',
'contact': {
'email': 'hana@naver.com',
'phone': '010-1234-5678'
},
'address': '서울시 강남구'
}
Parameter : Description keyname : Required. The keyname of the item you want to return the value from value : Optional. A value to return if the specified key does not exist. Default value None
#딕셔너리 값에 리스트 포함하기
# 문제 8: 주어진 student_scores 딕셔너리에서 각 학생의 점수를 평균을 구하여 출력하세요. (고급)
# 출력 예시
#홍길동의 평균 점수: 87.67
#이영희의 평균 점수: 85.00
#김철수의 평균 점수: 92.33
student_scores = {
'홍길동': [85, 90, 88],
'이영희': [78, 82, 95],
'김철수': [92, 94, 91]
}
홍 = student_scores.get('홍길동')
이 = student_scores.get('이영희')
김 = student_scores.get('김철수')
# 1트
print(avg("홍길동의 평균 점수:" "홍","이영희의 평균 점수:" "이",
"김철수의 평균 점수:" "김"))
Traceback (most recent call last):
File "/Users/baeminkyung/Desktop/딕셔너리 문제.py", line 118, in <module>
print(avg("홍길동의 평균 점수:" "홍","이영희의 평균 점수:" "이",
^^^
NameError: name 'avg' is not defined
?????? 아니 Python에 avg()가 없어요?????
SQL에만 있는 거예요??????
# 2트
평균 = sum(student_scores) / len(student_scores)
print("평균")
Traceback (most recent call last):
File "/Users/baeminkyung/Desktop/딕셔너리 문제.py", line 122, in <module>
평균 = sum(student_scores) / len(student_scores)
~~~^^^^^^^^^^^^^^^^
TypeError: unsupported operand type(s) for +: 'int' and 'str'
baeminkyung@baemingyeong-ui-MacBookAir Desktop %
'타입이 달라서 안 되는구나,,'
미치겠어요
와,, 머리가 안 굴러 가요 ㅠㅠㅠ
계속 머리를 굴리다가 점심 시간이 되어서 잠시 멈추었습니다..
오후 (14 : 00 ~ 18 : 00)
점심시간이 지난 후,
내일은 팀별로 발표가 있기 때문에 팀 회의가 조금 길어졌어요
16시부터 18시까지 회의를 하게 되어서
16시 전까지 발표장표를 각자 만들어 오기로 했거든요!
제일 마음에 드는 부분입니다
내일 제가 발표하기 때문에 파일을 계속 돌아보면서
모의 발표 연습도 해보았습니다
시간 정말 금방 가네요 😭
저녁 (19 : 15 ~ 21 : 00)
#딕셔너리 값에 리스트 포함하기
# 문제 8: 주어진 student_scores 딕셔너리에서 각 학생의 점수를 평균을 구하여 출력하세요. (고급)
# 출력 예시
#홍길동의 평균 점수: 87.67
#이영희의 평균 점수: 85.00
#김철수의 평균 점수: 92.33
student_scores = {
'홍길동': [85, 90, 88],
'이영희': [78, 82, 95],
'김철수': [92, 94, 91]
}
저녁이 되어서는
오전에 풀다가 멈춘 8번 문제를 다시 보았습니다.
# 3트 - 튜터 님과 함께
for k in student_scores.keys():
print(k)
total = 0
for v in student_scores.values():
# print(v)
total += v
print(total)
print(len(v))
# print(sum(v)) / len(v) -> for문 안이 아니라 밖에서 print() 돌려서 타입이 다름
안녕하세요! 오늘은 문제를 더 많이 풀어보면서 제 코딩 실력을 확인하고, 증진하려고 해요!
하루종일 문제를 풀어댈 거랍니다 😋
오전(09 : 00 ~ 13 : 00)
오늘은 튜터 님께 어제 받은 6가지 문제를 풀어보았어요!
개념 강의는 많이 들었지만,
막상 문제를 풀려고 하니까 막막하더라구요..??
코드를 전혀 짜내질 못 했습니다 👀
그래서
이전에 공부하면서 손으로 적어두었던
노트와 python 자료들을 하나하나 다시 읽으면서 해보았어요
#1 숙제 Hello World를 5번 출력
#1 Hello World를 5번 출력
a = 5
print(type(a))
while a > 0:
print("Hello World")
a -= 1
#결과값
<class 'int'>
Hello World
Hello World
Hello World
Hello World
Hello World
a = 5라고 입력한 이유가
총 5번을 반복하려고 했기 때문에 넣었구요
혹시 타입이 뭘로 나오는지도 궁금해서 해봤습니다
정수로 표시되는 Int()로 나오더라구요!
그리고
조건식이 거짓이 되면 계산이 종료되는 while을 작성 후
범위값이 없으면 무한동력으로 돌아가기 때문에
a > 0:으로 범위값 설정해주고
제가 원하는 print("Hello World")를 입력해주었습니다
마지막으로
a 값이 점점 줄어들기 위하여
a -= 1이라는 조건을 넣어서 완성하였습니다!
#4 숙제 Hello World 4번 출력
b = [1,2,3,4]
print(type(b))
for i in b:
print("Hello World")
if b != [1,2,3,4]:
break
#결괏값
<class 'list'>
Hello World
Hello World
Hello World
Hello World
앞서 동일안 문제이지만 이번엔 다르게 풀어보았습니다
for을 사용하여 풀어보았는데요!
for은 리스트, 튜플, 문자열을 받아서 하기 때문에
b = [1,2,3,4]로 설정하였습니다! 총 4개를 출력할 거니까요
b가 list로 잘 들어갔는지 type()으로 확인해주고
for i in b:
출력하려는 print("Hello World")을 입력 후
for은 순차적으로 계속 순회하기 때문에 break를 써서 멈춰주었습니다.
멈추기 위하여 조건식을 붙여줬구요
if b != [1,2,3,4]:
break으로요!
list에 4개의 값이 있기 때문에 결괏값에도 Hello World가 4개 출력되었습니다!
너무 재밌네요!
#5 숙제 numbers = [1, 2, 3, 4, 5] 순회를 돌아 numbers 요소 출력
#5 순회를 돌아 numbers 요소 출력
numbers = [1,2,3,4,5]
for i in numbers:
print(i)
#결괏값
1
2
3
4
5
"순회"라는 단어에 힌트를 얻어서 for문으로 완성하였습니다
for문은 리스트, 튜플, 문자열 타입을 순차적으로 순회하죠?
그래서 for문 양식대로 입력하여 원하는 결괏값을 도출하였습니다.
#6 숙제 1부터 4까지 합 계산
e = [1,2,3,4]
print(sum(e))
#결괏값
10
[]이 괄호를 사용하면 그 값은 리스트가 되잖아요?
튜플()로 입력하려다가 값이 바뀔수도 있기 때문에
[]괄호를 써서 입력하였습니다
그 뒤로는 print(sum(e))를 작성하여 결괏값을 도출하였습니다.
#2 숙제 1부터 44까지 짝수만 출력
#2 1부터 44까지 짝수만 출력
c = 1
while c <45:
if c %2 == 0:
print(c)
c += 1
#결괏값
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
c로 시작 숫자를 알려주고
While c > 45:라는 범위값을 설정한 후
if c%2 ==0: 이면 짝수죠? 그래서 조건식을 붙였습니다
print(c)를 해준 뒤
c 값이 +=1 씩 증가할 거라고 조건식도 넣어주었습니다
그리하여 1 ~ 44까지의 범위 중 짝수들만 도출하였습니다!
#3 숙제 1부터 44까지 짝수는 *4, 홀수는 그냥 출력
#3 1부터 44까지 짝수는 * 4, 홀수는 그냥 출력 (모르겠음)
f = 1
while f <45:
if f %2 == 0:
if f %2 != 0: