CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Python, besoin de vous programme de débutant

_imFish
_imFish
Niveau 10
09 novembre 2017 à 23:50:47

Bonsoir
Pour faire bref j'ai un problème avec mon code python
J'ai beau chercher je ne trouve pas ou ca foire
Je débute sur python, un peu d'aide ne serait pas de refus, je vous laisse avec le code qui a pour but de calculer les solutions d'une polynome du second degré grace à delta

def delta():
import math

a=input('A=')
b=input('B=')
c=input('C=')

a=float(a)
b=float(b)
c=float(c)

delta=(b*b)-(4*a*c)
x1=round((-b+math.sqrt(delta))/(2*a),3)
x2=round((-b-math.sqrt(delta))/(2*a),3)
'
print(d,"est le discriminant")

if d <0:
print("l'équation n'a pas de solution, le discriminant est inferieur à 0")

if d > 0:
print("l'équation a 2 solutions x1 =",x1,"x2 =",x2)

if d==0:
print("l'équation a pour solution", -b/2*a)

merci bonne soirée

aAardvark
aAardvark
Niveau 75
10 novembre 2017 à 00:20:17

Y a pas mal de chose qui cloche dans ton code... Il faut absolument que tu lises les erreurs affichées par le débugger et respecter avec rigueur la syntaxe imposé par le langage(je tiens par contre à dire que je ne suis pas un expert de Python du tout)

Pour commencer, le prochaine fois utilise les balises qui permette de conserver les espaces et l'indentation. C'est important pour la lisibilité, et pour Python c'est encore plus crucial car le code dépend de l'indentation... Avant tout, ici : <code>def delta():

tu souhaites vraiment créer une fonction delta ou juste lancer un script qui demande et calcul le discriminant ? L'intérêt d'une fonction est de factoriser ton code. Après tu peux faire comme tu le veux, mais pour lancer le script une fois je n'en vois pas "l'utilité", sauf éventuellement si tu demandes les entrées A, B, et C dans une boucle principale et ensuite tu les envois en argument à la fonction delta

ensuite

import math

se met en général au tout début d'un script. Après en Python je sais pas trop ce qu'il en est, mais on va respecter les conventions et le but est plus d'indiquer à l’interpréteur qu'il aura besoin de cette bibliothèque pour le script que de lancer l'import en plein milieu du cœur de ton code :hap:

Ensuite j'ai l'impression que tu as deux variable d et delta pour la même chose dans ton code.

Ensuite un apostrophe de trop à cette ligne
x2=round((-b-math.sqrt(delta))/(2*a),3)'

De plus, tu calcules les solutions x1 et x2 sans savoir si elles existent, et tu effectues alors parfois la racine d'un nombre négatif, ce qui aboutira forcément à une erreur.

Enfin, pour la forme, puisque tu affiches le résultat directement dans le cas d==0 sans le stocker dans une variable, tu peux faire de même pour le cas d > 0, ou vice versa.

Exemple d'un script fonctionnel chez moi :

import math

#def delta(): #inutile pour le moment ?

a=input('A=')
b=input('B=')
c=input('C=')

a=float(a)
b=float(b)
c=float(c)

d=(b*b)-(4*a*c)
print(d, " est le discriminant")

if d <0:
	print("l'équation n'a pas de solution, le discriminant est inferieur à 0")
elif d > 0:
	print("l'équation a 2 solutions x1 =", round((-b+math.sqrt(d))/(2*a),3),"x2 =", round((-b-math.sqrt(d))/(2*a),3))
else:
	print("l'équation a pour solution", -b/2*a)
Message édité le 10 novembre 2017 à 00:24:25 par aAardvark
_imFish
_imFish
Niveau 10
10 novembre 2017 à 18:20:38

Salut

Merci pour tes conseils
Effectivement définir le code en tant que fonction est pas vraiment utile mais bon peu je me suis dit peu importe
Pour import math je savais pas, je note
L'apostrophe est de trop en effet, c'est une erreur de ma part lorsque j'ai mis le code en gras
"d" est est en fait delta j'ai oublié de le remplacer...
Je ne m'étais pas rendu compte qu'avec mon code je calculais x1 et x2 dans tout les cas, ce qui me menait à une erreur de maths oue

Je pense avoir saisi mes fautes, merci encore pour ton aide :)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment