2016-10-05 86 views
-1

我是python的新手,並試圖找出如何獲得基數的某個時間的指數,例如。 5 ,不使用指數運算符**。Python:計算基數的指數

爲此,我試圖實現for循環的使用,但事情是我無法弄清楚如何實現這個循環。

這就是我到目前爲止。

base = int(input("ENTER NUMBER: ")) 
exponent = int(input("ENTER EXPONENT: ")) 

for item_name in things_with_item: 
    if exponent == 0: 
     print("something") 
    elif exponent > 0: 
     print("something") 
    else: 
     print("ERROR. TRY AGAIN") 

什麼我堅持是我應該用什麼變量來代替「ITEM_NAME」和「things_with_items」,以及如何計算5 像5 * 5 * 5 * 5.我的答案需要爲計算5 做一個變量還是循環會爲我做這些?

我真的不知道從哪裏開始,如果你們可以給我提供一些提示,那將是美好的。

謝謝

+1

你或許應該有一個基本的Python教程開始。 –

+0

@ juanpa.arrivillaga我做了一個使用while循環,但現在我無法弄清楚如何將它應用於for循環 – JANEDPES

回答

2

range(x)可以用來運行一個循環x倍(甚至不注重迭代的值)。如果從1開始,則乘以baseexponent次,這就是那裏的天真指數。

0

試試這個代碼:

base = int(input("ENTER NUMBER: ")) 
exponent = int(input("ENTER EXPONENT: ")) 
no = base * base 
for item_name in range(exponent): 
    if exponent == 0: 
     print(1) 
    elif exponent > 0: 
     no += base * exponent * base * item_name 
     if no == base ** exponent: 
      print(no) 
    else: 
     print("ERROR. TRY AGAIN") 
+0

是否有任何其他方式來重寫「如果沒有==基地**指數」沒有**? – JANEDPES

+0

@JANEDPES如果你有另一個問題,然後問另一個問題。 – Goyo

+0

@Goyo這是我對這個問題的原始問題。你在說什麼 – JANEDPES

0

嘗試

base = float(input('Enter Num:')) 
    exponent = int(input('Enter Exponent:') #what if I want non integer exponent 
    answer = 1 
    if exponent != 0: #if the exponent is 0 the answer is 1 
     for in range(abs(exponent)): 
      answer*=base 
     if exponent < 0: 
      answer = 1/answer 
    print('Answer:', answer) 

5 ** 4可能是最簡單的方法。只有指數是整數時,指數纔會乘以倍數。我們可以使用對數 ,例如a^b相當於exp(b * log a) 現在代碼很簡單。

import math 
    base = 5 
    exponent = 4 
    print(math.exp(exponent*math.log(base))) 

624.9999999999998就是答案