Ssa!
2022-09-23 금요일 회고록 본문
처음에로 타임어택이라는 것을 해봤다. 너무 긴장이되서 잘 할 수 있을지 고민이 많이 됐다. 장고에 대한 타임어택이 아니라 파이썬 기초문법에 대한 타임어택을 한다고 해서 더 긴장이 되었다. 제대로 내가 복습을 안한 부분이 있었는지 급하게 찾아보고 공부를 다시 했다. 오후 5시부터 6시까지 진행됐던 타임어택 진행 중에 어려운 부분은 있었지만 시간내로 제출을 했다. 그치만 자세히 보니 문제를 제대로 이해하지 못해서 틀린부분도 몇 군데 있었다.
첫 문제에서 어떤 오류라고 물었는데 해결방안을 제시해버렸다. namerror라고 적었어야 했다.
#1. 전역변수와 지역변수 구분하기
# 아래 코드에서 a, b 변수가 지역변수인지 / 전역변수인지 구분하고, 코드 실행 없이 결과를 예상해서 적어주세요
# a = 10 #전역변수
# def test1():
# b = 20 #지역변수
# def test2():
# print(a)
# print(b)
# test1()
# test2()
# # 실행이 잘 될까요? 안됩니다.
# # 실행이 되지 않는다면 어떤 에러가 발생할까요? b라는 변수가 test1의 함수 지역변수로 설정이 되어있기에 test2에서는 전역변수 a만 가능하기에
# # test2의 b값을 추가해줘야합니다.
두번째 문제에서 imutable에 tuple을 넣어버렸다. 같은 mutable에 tuple을 넣었어야 했는데 실수를 해버렸다 ㅠ
# 2. mutable과 immutable 구분하기
# mutable에 해당하는 자료형과 immutable에 해당하는 자료형을 적어주세요
# mutable
# list
# dictionary
# immutable
# number
# string
# tuple
세 번째 문제에서 급하게 푼다고 문제를 제대로 읽지못해서 리스트 축약식 하나만 넣어버렸다 ㅋㅋ 리스트축약식과 filter/map의 사용법을 정확하게 숙지하고 있었는데 시간에 조급한 나머지 for문과 if문을 써버렸다. . .생각할 시간도 없이 코드에 손이 먼저 가서 그런 결과를 낳았던 것 같다.
# 3. filter/map 혹은 리스트 축약식 활용해서 리스트 다뤄보기
# 아래 문제를 filter와 map 함수 혹은 리스트 축약식을 활용해 풀어주세요
# 1. 1부터 10000까지의 숫자를 `numbers` 변수에 할당해주세요
# 2. 1부터 10000까지 숫자 중, 짝수에 해당하는 숫자만 `even_numbers` 변수에 할당해주세요
# 3. 1부터 10000까지의 숫자 중, 3의 배수이며 15의 배수가 아닌 숫자에 10을 곱하여 `some_numbers` 에 할당해주세요
def get_even_numbers(numbers):
result = []
for i in numbers:
if i % 2 ==0:
result.append(i)
return result
def get_some_numbers(numbers):
result = []
for i in numbers:
if i % 3 == 0:
if i % 15 != 0:
n = i*10
result.append(n)
return result
def main():
numbers = [i for i in range(1, 10001)] # 1 ~ 10000
even_numbers = get_even_numbers(numbers)
some_numbers = get_some_numbers(numbers)
print(even_numbers) # [2, 4, 6, ...]
print(some_numbers) # [30, 60, 90, 120, 180, ...]
main()
네 번쨰 문제는 그나마 한개로 표현할 수 있어 문제 조건에 맞게 적었다. 그치만 sum함수를 쓰면 보기 더 좋을 것이라는 것을 알고 있었지만 리스트와 딕셔너리에 대한 이해가 부족해서 인지 리스트에 있는 딕셔너리들을 리스트로 바꾸지 못하고 하나씩 다 더해버렸다 sum이라는 것은 생각하고 있었는데.... 파이썬 이해도가 아직 부족한 것 같다.
# 4. lambda를 활용해서 정렬해보기
# 아래 사용자들을 수학, 과학, 영어, 사회 점수의 총 합을 기준으로 총 합이 가장 높은 사람이 첫 번째에 오도록 정렬해주세요
from pprint import pprint
users = [
{"name": "Ronald", "age": 30, "math_score": 93, "science_score": 65, "english_score": 93, "social_score": 92},
{"name": "Amelia", "age": 24, "math_score": 88, "science_score": 52, "english_score": 78, "social_score": 91},
{"name": "Nathaniel", "age": 28, "math_score": 48, "science_score": 40, "english_score": 49, "social_score": 91},
{"name": "Sally", "age": 29, "math_score": 100, "science_score": 69, "english_score": 67, "social_score": 82},
{"name": "Alexander", "age": 30, "math_score": 69, "science_score": 52, "english_score": 98, "social_score": 44},
{"name": "Madge", "age": 22, "math_score": 52, "science_score": 63, "english_score": 54, "social_score": 47},
{"name": "Trevor", "age": 23, "math_score": 89, "science_score": 88, "english_score": 69, "social_score": 93},
{"name": "Andre", "age": 23, "math_score": 50, "science_score": 56, "english_score": 99, "social_score": 54},
{"name": "Rodney", "age": 16, "math_score": 66, "science_score": 55, "english_score": 58, "social_score": 43},
{"name": "Raymond", "age": 26, "math_score": 49, "science_score": 55, "english_score": 95, "social_score": 82},
{"name": "Scott", "age": 15, "math_score": 85, "science_score": 92, "english_score": 56, "social_score": 85},
{"name": "Jeanette", "age": 28, "math_score": 48, "science_score": 65, "english_score": 77, "social_score": 94},
{"name": "Sallie", "age": 25, "math_score": 42, "science_score": 72, "english_score": 95, "social_score": 44},
{"name": "Richard", "age": 21, "math_score": 71, "science_score": 95, "english_score": 61, "social_score": 59},
{"name": "Callie", "age": 15, "math_score": 98, "science_score": 50, "english_score": 100, "social_score": 74},
]
# # some code
users = sorted(users , key= lambda x: x['math_score'] + x['science_score'] + x['english_score'] + x['social_score'], reverse=True)
pprint(users, width=300, sort_dicts=False)
# """
# [{'name': 'Ronald', 'age': 30, 'math_score': 93, 'science_score': 65, 'english_score': 93, 'social_score': 92},
# {'name': 'Trevor', 'age': 23, 'math_score': 89, 'science_score': 88, 'english_score': 69, 'social_score': 93},
# {'name': 'Callie', 'age': 15, 'math_score': 98, 'science_score': 50, 'english_score': 100, 'social_score': 74},
# {'name': 'Sally', 'age': 29, 'math_score': 100, 'science_score': 69, 'english_score': 67, 'social_score': 82},
# {'name': 'Scott', 'age': 15, 'math_score': 85, 'science_score': 92, 'english_score': 56, 'social_score': 85},
# {'name': 'Amelia', 'age': 24, 'math_score': 88, 'science_score': 52, 'english_score': 78, 'social_score': 91},
# {'name': 'Richard', 'age': 21, 'math_score': 71, 'science_score': 95, 'english_score': 61, 'social_score': 59},
# {'name': 'Jeanette', 'age': 28, 'math_score': 48, 'science_score': 65, 'english_score': 77, 'social_score': 94},
# {'name': 'Raymond', 'age': 26, 'math_score': 49, 'science_score': 55, 'english_score': 95, 'social_score': 82},
# {'name': 'Alexander', 'age': 30, 'math_score': 69, 'science_score': 52, 'english_score': 98, 'social_score': 44},
# {'name': 'Andre', 'age': 23, 'math_score': 50, 'science_score': 56, 'english_score': 99, 'social_score': 54},
# {'name': 'Sallie', 'age': 25, 'math_score': 42, 'science_score': 72, 'english_score': 95, 'social_score': 44},
# {'name': 'Nathaniel', 'age': 28, 'math_score': 48, 'science_score': 40, 'english_score': 49, 'social_score': 91},
# {'name': 'Rodney', 'age': 16, 'math_score': 66, 'science_score': 55, 'english_score': 58, 'social_score': 43},
# {'name': 'Madge', 'age': 22, 'math_score': 52, 'science_score': 63, 'english_score': 54, 'social_score': 47}]
# """
30분 내로 풀었지만 조급한 대로 푼다고 문제 이해도 못하고 키보드에 손이 먼저 올라가버렸다 참 나도 어리석은 것 같다. 그래도 타임어택이라는 것을 해서 파이썬 문제를 복습하는 계기가 된 것같아 좋았다!
'스파르타 내일배움캠프 > TIL' 카테고리의 다른 글
| 2022-09-27 화요일 회고록 (0) | 2022.09.28 |
|---|---|
| 2022-09-26 월요일 회고록 (0) | 2022.09.27 |
| 2022-09-22 목요일 회고록 (0) | 2022.09.23 |
| 2022-09-21 수요일 회고록 (0) | 2022.09.22 |
| 2022-09-20 화요일 회고록 (0) | 2022.09.21 |