2017-10-05 3 views
0

J'utilise Python 3.6.2 sur Windows 64 bits, j'ai une erreur: A TypeError ....Python TypeError: doit être str, pas 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) 

Et voici l'erreur ....

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 

Et je veux que ce résultat ....

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

Je ne sais pas comment résoudre ce problème ... S'il vous plaît aider !!!!

+1

Qu'est-ce que 'next' là et ça marche bien sur mon système. –

+0

Je veux dire ceci !!!!!!!! – sjkim104

+0

'input()' renvoie une chaîne. convertissez-le avec 'int()' – hop

Répondre

0

Voici ce que vous cherchez:

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)) 

Entrée:

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

sortie:

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

C'est ..... C'est ...... merveilleux !!!!! – sjkim104

2

Editer: Désolé. Utilisez int (input()) pour résoudre le problème. La fonction d'entrée donne str.

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

Merci! Il a corrigé !!!!!!!!!!!!! – sjkim104

0

La fonction d'entrée retourne la chaîne en python 3. Par conséquent, vous devez convertir les valeurs de ns, nf et étapes en nombres entiers.
Changer ces lignes

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

Désolé .... @N M était rapide .... Mais c'est la bonne réponse! – sjkim104