Long Int literal - Ungültige Syntax?
Das von mir verwendete Python-Lehrbuch ist etwas veraltet, aber ich habe beschlossen, es weiterhin mit der neuesten Version von Python zu verwenden, um das Debuggen zu üben. Manchmal gibt es ein paar Dinge im Buchcode, von denen ich erfahre, dass sie sich in der aktualisierten Version von Python geändert haben, und ich bin mir nicht sicher, ob dies eine davon ist.
Während ein Programm so repariert wird, dass es längere Fakultätswerte ausgeben kann, wird ein langes int verwendet, um das Problem zu lösen. Der ursprüngliche Code lautet wie folgt:
#factorial.py
# Program to compute the factorial of a number
# Illustrates for loop with an accumulator
def main():
n = input("Please enter a whole number: ")
fact = 1
for factor in range(int(n), 0, -1):
fact = fact * factor
print("The factorial of ", n, " is ", fact)
main()
Die long int-Version lautet wie folgt:
#factorial.py
# Program to compute the factorial of a number
# Illustrates for loop with an accumulator
def main():
n = input("Please enter a whole number: ")
fact = 1L
for factor in range(int(n), 0, -1):
fact = fact * factor
print("The factorial of ", n, " is ", fact)
main()
Das Ausführen der langen int-Version des Programms in der Python-Shell erzeugt jedoch den folgenden Fehler:
>>> import factorial2
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
import factorial2
File "C:\Python34\factorial2.py", line 7
fact = 1L
^
SyntaxError: invalid syntax