Long Int literal - Sintaxe inválida?
O livro de tutoriais do Python que estou usando está um pouco desatualizado, mas decidi continuar usando-o com a versão mais recente do Python para praticar a depuração. Às vezes, algumas coisas no código do livro que eu aprendi foram alteradas no Python atualizado, e não tenho certeza se esse é um deles.
Ao fixar um programa para que ele possa imprimir valores fatoriais mais longos, ele usa um int longo para resolver o problema. O código original é o seguinte:
#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()
A versão int longa é a seguinte:
#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()
Mas a execução da versão int longa do programa no shell Python gera o seguinte erro:
>>> 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