TIL

손성수·2023년 3월 31일
0

핵심내용

팀 프로젝트 마감

딕셔너리의 중요성

오늘 배운 것

딕셔너리안에, 또 딕셔너리를 활용하여 if문이 많이 필요한 알고리즘을 유동적이고 간략하게
또 수정이 용이하게 만들 수 있다.

self.actions = {
            "1": {
                "verbose": "일반 공격",
                "action": self.normal_attack,
            }
        }
  • 클래스의 메소드로, 상속받은 클래스에서는 key값을 증감시켜 더 많이 구현하기 쉬우며
    key : value의 value안에 딕셔너리를 추가하여 자료 정리의 용이성과 직관적인 코드를 구현할 수 있다.

깊은 복사

for monster in monsters[::]:
            if monster.current_hp <= 0:
                monsters.remove(monster)
  • 인덱스를 참조하며 리스트의 요소를 제거한다면 오류가 발생하겠지만.
    [::]를 통한 깊은 복사를 통해 오류를 방지할 수 있다.

for문의 반복자를 사용하지 않을땐 _를 사용한다.

for _ in range(arr):

import* 을 사용하는 습관은 자칫 데이터를 낭비하는 결과를 초래할 수 있다.

바뀌지 않는값이라면, 상수값으로 설정하라.

코드의 안정성을 위해, 디폴트값을 잘 고려해야 한다.

데코레이터 메소드는, 클래스 내에서 선언하면 안된다.

오늘 접한 문제점

팀 프로젝트를 진행하며, 마감하기위해 난해한 코드를 간략화하고 축소 시키기 위해 여러 고민이 많았다.

나의 해결 방법

# dictionary형태로, q,w,e,r의 value값을 설정한다.
    key_map = {"q":1,"w":2,"e":3,"r":4}
    while True :
        #입력 받은 값을, 소문자건 대문자건, lower함수를 통해 소문자로 변경한다.
        key = keyboard.read_key().lower()
        #입력 받은 값이, 딕셔너리에 있다면 key값에 맞는 value 를 반환한다.
        if key in key_map:
            return key_map[key]
  • keyboard메소드의 키 입력 감지에 lower() 메소드를 통해 항상 소문자로 구분하도록 수정
  • dict 형태로 key값에 반환값을 받는다
profile
더 노력하겠습니다

0개의 댓글

관련 채용 정보