import sys
input = sys.stdin.readline().rstrip()
n = int(input())
sum = 1
def factorial(i) :
if i < 2 :
return 1
return i * factorial(i-1)
print(factorial(n))
와 같이 간단한 팩토리얼 코드를 구현했는데 TypeError: 'str' object is not callable 에러가 발생했다. 구글링을 해봤더니 대부분 코랩을 초기화 하던가 새페이지를 파서 문제를 해결했는데 나는 문제가 좀 다른 듯 했다.
chatGPT한테 물어보니 코드에서 input이라는 이름을 변수로 사용했기 때문에 에러 발생했다고 한다. 기존에 사용하는 input( ) 함수에 sys.stdin.readline().rstrip()이라는 구문으로 input 함수를 덮어써서, 이후 input()을 호출하려고 할 때 str 객체가 호출 가능하지 않다는 에러가 발생했다고 한다.
따라서 input 대신 user_input을 사용하여 input() 내장 함수를 덮어쓰지 않도록 수정함으로서 에러를 해결했다.
< 수정 및 오류 해결 코드 >
import sys
input_user = sys.stdin.readline().rstrip()
n = int(input_user)
sum = 1
def factorial(i) :
if i < 2 :
return 1
return i * factorial(i-1)
print(factorial(n))
'문제 해결' 카테고리의 다른 글
[문제해결] intellij-spring-maven 에서 swagger UI 실행하기 오류 해결 (0) | 2025.04.03 |
---|---|
[문제 해결] Conda ssl 오류 (0) | 2023.04.17 |