버그를 찾기 위해서는 결국에는 머릿속에서 이해가 되야하므로, 실타래가 꼬인것을 풀어내려고 노력해야한다.
버그 찾기 예시 1) range함수
# 버그 예시def my_function():
for i in range(1, 20):
if i == 20:
print("You got it")
my_function()
# 해결def my_function():
for i in range(1, 20+1):
if i == 20:
print("You got it")
my_function()
버그를 직접 실행해보는것이 중요하다.
버그 찾기 예시 2) 인덱스 오류
# 버그 예시 2from random import randint
dice_imgs = ["❶", "❷", "❸", "❹", "❺", "❻"]
dice_num = randint(1, 6)
print(dice_imgs[dice_num])
# 해결from random import randint
dice_imgs = ["❶", "❷", "❸", "❹", "❺", "❻"]
dice_num = randint(0,5)
print(dice_imgs[dice_num])
위 코드를 해결하기 위해서 아래 코드의 인덱스를 수정해가면서 코드를 실행.
print(dice_imgs[인덱스])
컴퓨터가 코드를 한줄 한줄 실행할때 무슨일이 일어나는지 생각해보기.
아래 코드에서 1994년도는 컴퓨터 입장에서 어떠한 조건문에도 포함되지 않았다.
# 버그 예시 3
year = int(input("What's your year of birth?"))
if year > 1980 and year < 1994:
print("You are a millenial.")
elif year > 1994:
print("You are a Gen Z.")
# 해결elif year >= 1994:
print("You are a Gen Z.")
콘솔에서 발생한 오류 구문을 검색해본다.
# Fix the Errors
age = input("How old are you?")
if age > 18:
print("You can drive at age {age}.")
# 오류 구문
IndentationError
TypeError
# 해결# Fix the Errors
age = int(input("How old are you?"))
if age > 18:
print(f"You can drive at age {age}.")
print()함수를 사용하여 중간중간 확인하는것도 좋은 방법이다.
#버그
pages = 0
word_per_page = 0
pages = int(input("Number of pages: "))
word_per_page == int(input("Number of words per page: "))
total_words = pages * word_per_page
print(total_words)
#해결
pages = 0
word_per_page = 0
pages = int(input("Number of pages: "))
word_per_page = int(input("Number of words per page: "))
total_words = pages * word_per_page
print(f"pages = {pages}")
print(f"word_per_page = {word_per_page}")
print(total_words)