2017-10-05 61 views
0

我使用Python 3.6.2在Windows 64位,我有一个错误:引发TypeError ....Python的类型错误:必须海峡,不是int

A = 0 
    ns = input('Input start:') 
    nf = input('Input finish:') 
    steps = input('Input steps:') 
    for i in range(steps + 1): 
     d_n = (nf-ns)/steps 
     n = ns + i * d_n 
     f_n = n*n 
     A = A + f_n * d_n 

    next 


    print('Area is: ', A) 

而这里的错误....

Traceback (most recent call last): 
     File "C:/Users/UNO/Documents/Python 3.6/Curve_Area2.py", line 5, in 
    <module> 
     for i in range(steps + 1): 
    TypeError: must be str, not int 

而且我想这个结果....

Input start:3 
Input finish:5 
Input steps:100000 
Area is: 32.66700666679996 

我不知道如何解决这个问题...请帮助!!!!

+1

什么是“下一个”,它在我的系统上工作正常。 –

+0

我的意思是这个!!!!!!!! – sjkim104

+0

'input()'返回一个字符串。将其转换为int()' – hop

回答

0

在这里,你在找什么:

A = 0 
ns = int(input('Input start:')) 
nf = int(input('Input finish:')) 
steps = int(input('Input steps:')) 
start=[] 
finish=[] 

for i in range(steps + 1): 
    d_n = (nf - ns)/steps 

    n = ns + i * d_n 
    f_n = n * n 
    A = A + f_n * d_n 




print('Area is : {} \n Start at {} \n Finish at {} \n steps {}'.format(A,ns,nf,steps)) 

输入:

Input start:3 
Input finish:5 
Input steps:1000 

输出:

Area is : 32.70066799999998 
Start at 3 
Finish at 5 
steps 1000 
+0

这是.....这是......精彩!!!!! – sjkim104

2

编辑:对不起。使用int(input())来解决问题。输入函数给出str。

ns = str(input('Input start:') 
+0

谢谢!它固定!!!!!!!!!!!!! – sjkim104

0

输入函数返回Python 3的字符串。因此,你需要的NS,NF的值和步骤转换为整数。
这些线路更改

ns = input('Input start:') 
nf = input('Input finish:') 
steps = input('Input steps:') 

ns = int(input('Input start:')) 
nf = int(input('Input finish:')) 
steps = int(input('Input steps:')) 
+0

对不起.... @N M很快......但这是正确的答案! – sjkim104

相关问题