In meinem Programm gibt Benutzer eine Zahl (input_n) ein, die durchlaufen wird:
0 + 1 + 2 + ... + n = n * (n +1)/2 Axiom..join() Elemente einer benutzerdefinierten Liste mit Bereich in Python
My gewünschten Ausgang für ein Eingang_n < = 10 (in diesem Fall: 5)
My gewünschten Ausgang für ein Eingang_n> 10 (in diesem Fall: 999)
[0, 1, 2, 3, 4, 5, ... , 995 , 996, 997, 998, 999]
0 + 1 + 2 + 3 + 4 + 5 + ... + 995 + 996 + 997 + 998 + 999 = 499500
999*(999+1)/2 = 499500
I Ich dachte, ich könnte zwei Bereichsfunktionen mit einer "+ ... +" - Zeichenfolge zwischen ihnen in einer Druckanweisung verwenden. Aber was ich eingeben muss unsinnig sein, da ich einen Syntaxfehler erhalten:
SyntaxError: Generator expression must be parenthesized if not sole argument
Was bedeutet, dass Fehler entdeckt? Ich verstehe, dass der betreffende Ausdruck in Klammern gesetzt werden muss. Ich versuchte den Fehler mit meiner Anfängerlogik zu korrigieren, aber meine Versuche scheiterten.
Hier ist mein Code:
input_n = int(input("Choisissez un nombre : "))
input_list = list()
for i in range(0,input_n+1):
input_list.append(i)
if input_n <= 10:
print ("+".join(str(i) for i in input_list) + " = ", sum(input_list))
print (str(input_n)+'*'+'('+str(input_n)+'+1)/2 = ', int(input_n*(input_n+1)/2))
elif input_n > 10:
print("+".join(str(i) for i in range(5)) + " + ... +" + "+".join(str(i) for i in range(input_n-5,input_n+1), sum(input_list)))
print (str(input_n)+'*'+'('+str(input_n)+'+1)/2 = ', int(input_n*(input_n+1)/2))
Für noobs wie ich: ich schon Antworten in diesem topic für frühere aufgetretenen Probleme bekam, sollten Sie auf jeden Fall die Antworten gegeben überprüfen.
Können Sie mit einem leeren String beginnen, bei jeder Iteration verketten und dann das Endergebnis drucken ? – Pedro
Ich verstehe nicht, warum Sie 'print schreiben ('+'. Join (...) + '=', sum (...))' anstelle von 'print ('+'. Join (...), '=', Summe (...)) '. Entweder verketten Sie zuerst die Zeichenkette und übergeben das Endergebnis an 'print' oder Sie benutzen' print's mehrere Argumente. Das Mischen der beiden macht keinen Sinn, besonders in diesem Fall. – Bakuriu
Danke. Das werde ich mir auf jeden Fall merken. Alle Formatierungen, entweder richtig oder zirkusähnlich, sind für mich ebenso neu. Ich bin bereit, etwas Ordnung in meine Programmierung zu bekommen, sobald ich die Grundlagen besser verstanden habe. – randomhopeful