2017-10-05 81 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

相關問題