2017-04-26 2 views
0

Je reçois l'erreur de syntaxe: Traceback (dernier appel en dernier): Fichier "python", ligne 4, en TypeError: type (s) d'opérande non pris en charge pour ** ou pow(): « unicode » et « int »Je rencontre des problèmes pour le codage d'une calculatrice

Edit: Bon alors c'est mon nouveau code, il va réinitialiser une fois qu'il est fait pour que vous puissiez entrer un autre numéro jusqu'à ce que vous entrez dans quelque chose qui est pas un nombre

while True: 
    print 'Welcome to the "Square Root Calculator"' 
    print 
    number = float(raw_input ('Insert a number: ')) 
    answer = number ** (1./2) 
    print 
    if number: 
     print ('Square Root: ' + str(answer)) 
    else: 
     break 
    print '#=====================================================#' 
    print '|              |' 
    print '#=====================================================#' 
pass 
+2

Je ne suis pas sûr, mais qu'est-ce que deux signifie la multiplication? ** –

+2

L'exponentiation de THat en Python. – kcrisman

Répondre

0

Vous devez modifier le code dans plusieurs Places- Vous devez d'abord ajouter int autour raw_input ('Insert a number: '), sinon number est de type str. Vous devez également ajouter str autour de answer, car vous ne pouvez pas ajouter une chaîne et un nombre. Enfin, remplacez 1/2 par 1./2, comme sur python 2, 1/2 est 0. Afin de faire des lignes vides, vous pouvez ajouter \n aux endroits appropriés.

Voici la version corrigée:

print 'Welcome to the "Square Root Calculator\n' 
number = float(raw_input ('Insert a number:')) 
answer = number ** (1./2) 
if number: 
    print ('\nSquare Root: ' + str(answer)) 
+0

Donc, ajouter 'int' avant un raw_input fait en sorte que le caractère qu'ils tapent sera caractérisé comme un nombre? – Zerp

+0

Oui, spécifiquement, il serait caractérisé comme int. Vous pouvez remplacer int avec float si vous voulez autoriser les entrées flottantes. –

+0

Existe-t-il des différences entre int et float qui pourraient empêcher le code de fonctionner? – Zerp

0

raw_input renvoie une chaîne, probablement - see this question, par exemple. Essayez de faire int(number) - mais préparez-vous à ce que votre personne ne vous donne pas un nombre entier!