Je suis très nouveau dans Python mais très intéressé par l'apprentissage. Pour un cours uni Python, je dois créer un programme qui convertit une température en degrés Celsius ou Fahrenheit, et affiche la conversion à la première décimale. Mon problème réside dans mes lignes d'impression.
Comme vous pouvez le voir dans mon code, j'ai essayé d'utiliser la fonction round () lors de la concaténation. Bien que j'aie tenté de convertir le serait float en str (), lorsque j'exécute mon programme, je reçois l'erreur suivante.
pour la ligne suivante
et de même pour la ligne d'impression dans mon bloc elif. Toute aide pour comprendre et résoudre le problème serait grandement appréciée.
temp=float(input("Enter a temperature value to convert: "))
unit=str(input("Convert to Fahrenheit or Celsius? Enter f or c: "))
if unit=="c" or unit == "C":
degC=(temp)
temp=(1.8*temp)+32
print (round(str(temp), 1) + " degrees fahrenheit = " + str(degC) + " degrees Celsius. ")
elif unit=="f" or unit == "F":
degF=(temp)
temp=(temp-32)/1.8
print (round(str(temp), 1)+ " degrees celsius = " + str(degF) + " degrees Fahrenheit. ")
else:
print("you did not enter an f or c. Goodbye ")
Mes résultats doivent être arrondis à la première décimale.
3 Réponses :
Ne convertissez pas temp en chaîne. Gardez-le comme un flottant pour round . Transformez la résultante après round en une str pour la concaténation
str(round(temp, 1))
Si je laisse temp comme un flottant, je ne peux pas concaténer avec les instructions de chaîne suivantes
Vos opérations sont dans le mauvais ordre. Arrondir d'abord, puis convertir en chaîne:
print (str(round(temp), 1)+ " degrees celsius = " ...
À moins qu'il ne s'agisse d'un devoir en classe pour utiliser la fonction ronde, je ne pense pas que la fonction ronde soit nécessaire.
print ("%.1f degrees Celsius = %.1f degrees Fahrenheit" % (temp, degC))