Почему я не могу разделить 1 с помощью float в Python 3

#python

#python

Вопрос:

задача leetcode

Я практиковал Python3 в leetcode. Я должен создать функцию питания, в которой я не использую «**». Когда показатель степени (n) положительный, мой код работает, но когда он отрицательный, он не работает. Когда он отрицательный, я пытаюсь разделить 1 на результат, но он действует так, как будто результат всегда равен 1. В этом случае вместо деления 1/4 похоже, что оно делает 1/1. Знает ли any1, в чем проблема?

Комментарии:

1. Попробуйте вернуть float(1 / res).

Ответ №1:

Ваша проблема в том, что когда n < 0 у вас есть

 for i in range(n):
 

Это должно быть:

 for i in range(-n):
 

Пересмотренный код

 def my_pow(x, n):
    res = 1
    if n > 0:
        for i in range(n):
            res = res*x
        return res
    if n < 0:
        for i in range(-n):
            res = res*x
        return 1/res
    return res