Невозможно вернуть правильный результат функции

1

Я просто новичок в изучении кода без каких-либо предварительных знаний.

Я написал простой код ниже, чтобы применить мои знания об определении функций и цикл for для работы. Этот код, предположительно, позволит пользователю получить любую цифру для мощности на основе их ввода. Однако, как вы увидите ниже, я всегда получаю результат 0.

Я честно не знаю, где я ошибся, и мне сказали, что мой код не самый читаемый. Таким образом, я хотел бы обратиться за помощью в разъяснении мне, что с ним не так, и как сделать это лучше.

Большое спасибо, ребята!

def to_power(base, power):
    result = 1
    for base in range(power):
        result = result * base
    return int(result)


print(to_power(int(input("Enter Base Number: ")), int(input("Enter Power: "))))

Введите базовый номер: 4
Введите мощность: 4
0
Процесс завершен с кодом выхода 0

Теги:
python-3.x

2 ответа

1
Лучший ответ

Вы были близки. Это рабочая версия вашего кода.

Проблема с вашим кодом:

  • range(power) будет генерировать значения, начиная с 0 до power-1. Вы использовали base чтобы перебирать эти значения, и поскольку вы использовали result = result * base, вы умножались на 0, поэтому вы получаете 0

Решение:

  • Вам нужно просто перебрать цикл для количества power и размножить base для этого количества (power). Так как индекс цикла не используется здесь, я использовал _ in for _ in range(power):

def to_power(base, power): 
    result = 1 
    for _ in range(power): 
        result = result * base 
    return int(result)

print(to_power(int(input("Enter Base Number: ")), int(input("Enter Power: "))))

# Enter Base Number: 4
# Enter Power: 4
# 256
  • 0
    Спасибо большое за помощь! Я все еще не уверен в обосновании индекса цикла. Пожалуйста, поправьте меня, если я ошибаюсь, но почему _ , который кажется неопределенным, сможет предотвратить переход результата к 0. Кроме того, не является ли индекс цикла положением какого-либо значения в строке а список? И наконец, почему мои входные данные для base переводятся в 0, когда мои входные данные! = 0?
  • 0
    Я извиняюсь за свои многочисленные вопросы, так как я очень новичок и действительно хотел бы понять логику кодов и функций. Я искренне благодарен вам за помощь, ребята
Показать ещё 5 комментариев
0

выглядит так, как вы хотите:

def to_power(base, power):
   result = 1
   for i in range(power):
     result = result * base
return int(result)

Пример:

to_power(4,4)
Out[5]: 256

Ещё вопросы

Сообщество Overcoder
Наверх
Меню