2017-09-14 4 views
-9

Ich weiß, dass dies mich fragt, wenn ich Anweisungen verwende. Aber wie kann ich das tun?Wurzel des quadratischen Polynoms mit Python

Schreiben Sie ein Programm qroots.py, das drei Floats a, b, c von der Befehlszeile liest und die Wurzeln des quadratischen Polynoms ax**2 + bx + c = 0 berechnet/druckt. Ihr Programm muss nur den Fall behandeln, wenn echte Wurzeln existieren, d. H. Wenn die Werte von a, b, c eine nicht-negative Diskriminante b**2 − 4ac >= 0 erzeugen.

Wenn die Diskriminante negativ ist, sollte Ihr Programm nur eine Nachricht drucken, dass keine echten Wurzeln existieren.

Hinweis: math.sqrt() ist die integrierte Funktion, die die Quadratwurzel einer Zahl zurückgibt.

Ich habe dies so weit:

import sys 
import math 

a = float(sys.argv[1]) 
b = float(sys.argv[2]) 
c = float(sys.argv[3]) 

-Terminal sollte dies tun:

qroots.py 1 -3 2

1,0 2,0

+3

Bitte lesen Sie, wie Sie in SO fragen. Dies ist keine Seite, um Hausaufgaben zu lösen. zeigen Sie, was Sie getan haben –

+1

Hinweis: https://en.wikipedia.org/wiki/Quadratic_formula –

+1

Willkommen bei StackOverflow! Haben Sie sich vor dem Stellen dieser Frage [https://stackoverflow.com/help/how-to-ask] über [how to ask] informiert? – Jerrybibo

Antwort

0

Lesen Sie zuerst die Eingabe über die Befehlszeile (Hinweis: Verwenden Sie sys.argv). Außerdem müssen Sie herausfinden, wie Sie Strings in Python-Zahlen konvertieren.

Dann überprüfen, ob b**2-4*a*c < 0. Wenn ja, dann erhöhe einen ValueError darüber, dass es keine wirklichen Wurzeln gibt.

Else lösen für die Wurzeln: roots = (b ± sqrt(b**2-4*a*c))/(2*a)

0

Verfahren wie beschrieben in meinem Kommentar und in @Joran Beasley Antwort:

import sys 
from math import sqrt 

a, b, c = sys.argv[1:] 
a = float(a) 
b = float(b) 
c = float(c) 
if b**2-4*a*c < 0: 
    print("there's no real root") 
else: 
    print((-b+sqrt(b**2-4*a*c))/(2*a), (-b-sqrt(b**2-4*a*c))/(2*a)) 

Wenn Sie möchten, können Sie auch prüfen, ob die Diskriminante Null ist und nur Drucke eine der beiden Lösungen (die in diesem Fall offensichtlich gleich sind).

Verwandte Themen