2
votes

Python - Imprimer la sortie au lieu de la formule

Je suis nouveau avec Python et n'ai aucune expérience avec les langages de programmation jusqu'à présent. Je dois faire un exercice mais je ne parviens pas à obtenir le résultat souhaité.

Je dois donner à x une valeur de 0, 1 et -1. Et y devrait avoir le résultat attendu de -1,0, 3,0 et -9,0

J'ai créé le code suivant:

x = 1
x = float(x)

var="y"
y=input("(3x**3)-(2x**2)+(3x)-1")

print("y =", y)

Mais la sortie d'impression continue d'afficher le formule réelle et n'affiche pas la valeur de résultat réelle (attendue). Y a-t-il quelqu'un qui pourrait expliquer rapidement ce qui me manque ici?


4 commentaires

Quel est le but de la ligne var = "y"? Est-ce également l'instruction d'impression que vous souhaitez modifier? Ou la sortie de la console de l'instruction "input"? (Veuillez publier le résultat que vous obtenez exactement et ce que vous attendez / voulez exactement)


Quelle est la relation entre le y et le x, calculez-vous le y en utilisant le x? ou voulez-vous simplement afficher 0,1, -1 pour le x et -1,0,3,0, -9,0 pour le y?


Vous obtenez la formule imprimée car input ("(3x ** 3) - (2x ** 2) + (3x) -1") imprime ce que vous avez passé dans la console et lit depuis le stdin . Essayez de saisir quelque chose lorsque la formule apparaît, elle devrait alors afficher y = et exactement ce que vous avez tapé.


La ligne y = (3 * x ** 3) - (2 * x ** 2) + (3 * x) -1 n'est-elle pas une solution? Taper la formule sous forme de chaîne ne me semble pas naturel.


4 Réponses :


-1
votes

Vous avez déclaré 2 variables. Le premier étant var, qui a la valeur 'y', puis vous avez déclaré var y, qui demande une entrée, lorsque vous entrez réellement quelque chose, il l'imprimera. Cela aurait dû être fait comme ceci:

x = 1
x = float(x)

input = input('Enter a value here: ')
y = ((3*x)**3)-((2*x)**2)+(3*x)-1

print("y =", y)

MODIFIER: Je ne savais pas pourquoi vous avez besoin de cette entrée, je l'ai donc laissée là.


0 commentaires

1
votes

D'accord, il y a peu de problèmes avec le code. 3x, 2x Devrait être 3 * x, 2 * x

Et puis essayez d'exécuter le code sans les guillemets qui ne traiteraient pas sous forme de chaîne.


1 commentaires

Bon point, j'avais raté le * manquant. Peut-être que vous devriez publier le code corrigé, cela pourrait aider Niels93



1
votes

Vous pouvez utiliser une formule mathématique simple comme celle-ci:

x = [0, 1, -1]

for i in x:
    print float(((3*i)**3)-((2*i)**2)+(3*i)-1)

Je ne sais pas si cela correspond à votre question car elle n'est pas claire mais elle renvoie les valeurs de la formule 3x ^ 3 - 3x ^ 2 + 3x - 1 évalué en 0 , 1 et -1 .

Meilleur


0 commentaires

1
votes

Cette solution est presque certainement inutile pour le problème particulier rencontré par OP, mais je l'inclus car elle fournit une solution générale au problème de l'impression de "valeur d'une chaîne" et non de "la chaîne littérale" qui pourrait être utile . Mettre en forme les chaînes.

x = input("Please enter a x value")
x = float(x)
print(f"y = {(3x**3)-(2x**2)+(3x)-1}")

Placer un "f" devant une chaîne signifie que tout ce qui se trouve entre "{}" dans la chaîne sera évalué, et le résultat converti en chaîne, et imprimé cette position. C'est génial.


0 commentaires