Python 3阶乘

Python 3阶乘,python,Python,我正在学习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 s

我正在学习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

之所以会发生这种情况,是因为
input
返回的是
str
,而不是
int
,这正是您所追求的。您可以通过将
str
强制转换为
int
来修复此问题,如下所示:

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

之所以会发生这种情况,是因为
input
返回的是
str
,而不是
int
,这正是您所追求的。您可以通过将
str
强制转换为
int
来修复此问题,如下所示:

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

之所以会发生这种情况,是因为
input
返回的是
str
,而不是
int
,这正是您所追求的。您可以通过将
str
强制转换为
int
来修复此问题,如下所示:

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

之所以会发生这种情况,是因为
input
返回的是
str
,而不是
int
,这正是您所追求的。您可以通过将
str
强制转换为
int
来修复此问题,如下所示:

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
可能感兴趣:可能感兴趣:可能感兴趣:可能感兴趣: