knight = input()
row = int(knight[1])
column = int(ord(knight[0])) - int(ord('a')) + 1
# ord 하나의 문자를 인자로 받고 해당 문자에 해당하는 유니코드 정수를 반환
# chr 하나의 정수를 인자로 받고 해당 정수에 해당하는 유니코드 문자를 반환
steps = [(2, -1), (2, 1), (1, 2), (-1, 2), (-2, 1), (-2, -1), (-1, -2), (1, -2)]
# 답안 예시 참조
result = 0
for step in steps:
next_row = row + step[0]
next_column = column + step[1]
if next_row >= 1 and next_row <= 8 and next_column >=1 and next_column <=8:
result += 1
print(result)
-> 조금 더 까다롭게 문제를 출제한다면 입력 문자가 열과 행이 아닌 1a와 같은 행과 열 형태로 들어왔을 때 예외 처리를 요구할 수도 있다.