본문 바로가기

TIL

[TIL 2024. 02. 28]

오늘 한 일

  • 개인과제2 오류 수정(피드백, 발견)
  • 팀원들 과제 서로 피드백해주기
  • 오후 git 특강
  • 웹개발 강의 복습
  • readme 작성
  • TIL 작성

 

오늘의 리뷰

1. range() 

  •  range() 자체가 iterable한 객체를 생성함. 그래서 for문의 iterable 자리에 range()가 올 수 있는 것임!
  • range(n) : 0이상 n미만인 수를 차례로 나열
  • range(a,b): a이상 b미만인 수를 차례로 나열
  • range(a,b,step): a이상 b미만인 수를 step간격으로 나열

 

2. 개인과제2 오류 수정 

  1. 문제상황: 게임의 재시작을 묻는 질문에 'y'로 대답하고, 게임을 재시작한 경우에도 computer_pick의 선택이 고정되는 문제를 발견함. 즉, 게임을 재시작해도 이전 게임의 computer_pick이 고정되어 있음.
  2. 문제 원인: while문 내에 computer_pick을 결정하는 random이 없어서 발생함. 즉, while문 전에 computer_pick이 가위, 바위, 보 중 하나로 결정되고, 게임이 재시작되어도 새롭게 random.choice를 하지 않음.
  3. computer_pick을 결정하는 random문을 while문 내로 이동시켜줌. //

9행이 수정된 코드임


  1. 문제상황: 사용자와 컴퓨터가 각 게임에서 무엇을 냈는지 표시하는 print문이 break시(=사용자 승리)에는 출력되지 않음. 코드 작성시 의도는 결과와 무관하게(비김, 사용자 승리, 컴퓨터 승리) 모두 해당 print문이 출력되는 것이었음.
  2. 문제 원인: break의 원리 자체가 break문이 속한 조건문이 충족되면 완전히 while문을 벗어나는 것이기 때문임. 즉, 하단의 print문으로 code flow가 이어지지 않음.
  3. 문제 해결: break가 속한 '사용자 승리' 조건문에 print문을 추가해줌. break문 위에 넣어줘야 코드가 실행됨. //

24행이 추가됨


  1. 문제상황: 게임 재시작을 묻고, 사용자가 'y'를 선택할 경우 게임이 재시작됨. 이때 앞의 승무패 count가 초기화되고, 게임의 종료될 때는 재시작 이후의 승무패만 출력됨. 코드 작성시의 의도는 처음 게임과 게임 재시작시의 모든 승무패가 게임 종료시 출력되게 하는 것임.
  2. 문제 원인: check_winner() 자체에 win_cnt, draw_cnt, lost_cnt를 초기화시키는 코드가 작성되어 있기 때문임. 이 초기화 조건을 함수 밖으로 빼고, check_winner()의 반환값을 변수에 담아서 사용하는 과정에서 승무패가 누적될 수 있게 코드 수정이 필요함.
  3. 문제 해결: 현재 코드 구조가 check_winner() 선언 => while문으로 실행임. check_winner()에서 승무패 cnt 초기화 조건을 빼서 while문 시작전으로 이동시킴. 그리고 check_winner()함수가 win_cnt, draw_cnt, lost_cnt를 매개변수의 인자로 받게 함수 자체를 수정함. 이렇게 하면 while문의 첫 시작은 win_cnt, draw_cnt, lost_cnt가 각각 0인 초기화 상태에서 시작되고, 그 다음부터는 check_winner()의 return값인 win_cnt, draw_cnt, lost_cnt를 각각 인자로 받아 변수가 재정의됨. 즉, 누적 count가 가능해짐. //

4행, 33~35행, 39행 (수정된 코드)


  1. 문제 상황: 가위바위보를 처음 입력할 때는 유효범위 검사가 잘 시행되지만, 일단 유효범위를 통과해서 가위바위보 게임이 진행되는 도중에 유효범위를 벗어나는 입력이 있는 경우에 유효한 입력이 아니라는 print와 함께 다운~(=check_winner()이 실행된 것)과 같이 출력되는 오류를 발견함. (과제1, 과제2_공통)

이런 식..

문제 해결: 개인과제2(rsp_play)에서는 continue를 유효범위 검사 조건문에 사용해서 문제 해결함. (위 code snap 참고) //

'TIL' 카테고리의 다른 글

[TIL 2024. 03. 04]  (0) 2024.03.04
[TIL 2024. 02. 29]  (0) 2024.02.29
[TIL 2024. 02. 27]  (0) 2024.02.28
[TIL 2024. 02. 26]  (0) 2024.02.27
[TIL 2024. 02. 23]  (0) 2024.02.23