2016-07-02 13 views
0
k=10 
l=1 
o=2 
F=IntegerModRing(k) 
R.<t>=F[] 
K.<x>=R.quotient(t^o-1) 
poly=((x+l)^k)-(x^k)-l 
m=poly.list() 
if(m!=0): 

    print k 

Dies gibt Ausgang 10, wie es sollteEinrückungen beeinflussen Programm in Sage

k=10 
o=2 
l=1   
F=IntegerModRing(k) 
R.<t>=F[] 
K.<x>=R.quotient(t^o-1) 
poly=((x+l)^k)-(x^k)-l 
m=poly.list() 
     if(m!=0): 
      print k 

Und das gibt überhaupt keine Ausgabe. Weiß nicht, was das Problem ist. Fast keine Erfahrung in Python, die das Problem sein könnte.

Antwort

0

Ja, das ist dein Problem. Sage ist im Grunde genommen Python, wenn es um Syntax geht (einige Extras). In Python lautet die Syntax Leerzeichen und Einrückungen. Sie werden nur nach Doppelpunkten eingerückt (für Dinge wie Schleifen, Bedingungen, Definitionen). Einige gute Plätze starten grundlegende Python zu lernen sind

1

Die 'if' Anweisung sollte nicht eingerückt werden. Im zweiten Beispiel wird es nicht ausgeführt. In Python gibt es strenge Regeln für den Einzug. Sie können nur einrücken, wenn ein neuer Codeblock gestartet wird. Die Anweisung vor der 'if' -Anweisung muss eine Schleifenanweisung, eine bedingte Anweisung oder eine Funktions-/Klassendefinition sein.