2014-09-22 40 views
0

我學習巨蟒-3現在蔭試圖實現階乘函數我寫道:的Python 3因子

fact = 1 
a = input('Enter number for factorial operation: ') 

for b in range (1, a+1, 1): 
    fact = fact * b 

print ("Sum is ", fact) 

它說:

for b in range (1, a+1, 1): 
TypeError: Can't convert 'int' object to str implicitly 
+0

可能會感興趣:http://stackoverflow.com/a/25111524/ 198633 – inspectorG4dget 2014-09-22 21:23:51

回答

3

發生這種情況,因爲input回報你一個str,不一個int,這就是你所追求的。您可以通過鑄造strint如下解決這個問題:

a = int(input('Enter number for factorial operation: ')) 

看看這個:

In [68]: a = input('Enter number for factorial operation: ') 
Enter number for factorial operation: 5 

In [69]: a 
Out[69]: '5' 

In [70]: type(a) 
Out[70]: str 

In [71]: isinstance(a, str) 
Out[71]: True 

In [72]: isinstance(a, int) 
Out[72]: False 

In [73]: a = int(input('Enter number for factorial operation: ')) 
Enter number for factorial operation: 5 

In [74]: a 
Out[74]: 5 

In [75]: type(a) 
Out[75]: int 

In [76]: isinstance(a, str) 
Out[76]: False 

In [77]: isinstance(a, int) 
Out[77]: True