2013-10-28 94 views
0
def power(num,div): 
    incre =0 
    while(num%div == 0): 
     num = num/div 
     incre +=1 
    return incre 
test_case = int(raw_input()) 

lim = 0 

while lim < test_case: 
    power = (raw_input()) 
    x = power.split() 
    a = int(x[0]) 
    b = int(x[1]) 
    lim +=1 
print power(a,b) 

Python用於正常工作,直到我有這個錯誤。不可調用的字符串對象

+0

哪個錯誤?你能解釋更多嗎? – Ehsan

回答

9

raw_input總是返回一個字符串對象。因此,該行:

power = (raw_input()) 

使power一個字符串。此外,發生這種情況時,它會覆蓋您的功能power

當你到了這一點:

print power(a,b) 

power是一個字符串,你會得到一個錯誤的嘗試調用它,你會的功能。

要解決該問題,請重命名函數或字符串。他們都不能被命名爲power

+0

謝謝你,我早先發了電源功能,就複製它,下次使用導入 – user2688772

+0

當你給這兩個東西同名時出現問題。導入不起作用,除非函數屬於某個包,例如,在這種情況下,您可以調用myfunctions.power(a,b)。在這種情況下,名稱空間是不同的,並且沒有碰撞。 – Jblasco

+0

@ user2688772即使你將'power'導入你的名字空間,如果你用一個字符串覆蓋它,你也會得到同樣的錯誤。你需要命名電源字符串別的東西。 – SethMMorton