Не удалось выяснить недопустимую синтаксическую ошибку

#python

#python

Вопрос:

Мисти любит покемонов и любит собирать карточки с покемонами. В настоящее время у нее есть карты P pokemon. Она хочет иметь определенное количество карточек на D-й день. Ее друг Эш готов помочь ей достичь этого числа. Эш будет ежедневно предоставлять ей N карт, чтобы за день до D-го дня у нее было необходимое количество карт покемонов.

Формат ввода Первая строка ввода состоит из количества тестовых примеров, T

Единственная строка каждого тестового примера состоит из трех целых чисел, разделенных пробелами, P, N и D.

Ограничения 1<= T <=100

1<= D <=100000

0 <= P, N <=100000

Формат вывода Для каждого тестового примера выведите требуемый ответ в отдельной строке.

Пример тестового примера 1

Ввод

2

5 4 6

2 2 2

Вывод

25

4

Для приведенного выше вопроса я написал следующий код

 def main():
  n=int(input())
  for i in range(n):
      li=list(int(i) for i in input().strip().split(' '))
      P=li[0]
      N=li[1]
      D=li[2]
      for i in range(D-1):
         mul=(D-1)*N
      ans=mul P
 return ans


main()
  

После компиляции я получаю следующую ошибку

 Traceback (most recent call last):

  File "CandidateCode.py", line 16, in <module>
    main()

  File "CandidateCode.py", line 5, in main

  li=list(int(i) for i in input().strip().split(' '))

  File "<string>", line 1

  5 4 6

   ^
SyntaxError: invalid syntax
  

Какой здесь недопустимый синтаксис?

Комментарии:

1. Может быть, вам следует добавить отступ кода после def main(): строки?

2. @baldr он все еще выдает ошибку

3. Если вы используете python 2, то это проблема

4. @NatthaphonHongcharoen почему?

5. @manasvi.jain смотрите мой ответ

Ответ №1:

Я полагаю, что вы используете Python 2, что является причиной проблемы.

input() В python 2 сама команда принимает не просто строку, вам нужно, чтобы она была '5 6 7' , а не 5 6 7 синтаксисом Python 3.

В python 2 вы можете

 >>> a = input()
2
  

И a будет int вместо string , как в Python 3.

Ввод 5 6 7 в python 2 похож a = 5 6 7 на и, очевидно, приведет к ошибке.

Комментарии:

1. Одно дополнительное сообщение для запрашивающего: 2 истекло несколько месяцев назад и больше не поддерживается. Эта дата была объявлена более 10 лет назад. Вы действительно хотите переключиться на Python 3 сейчас.

Ответ №2:

 def main():
    n=int(input())
    for i in range(n):
        li=list(int(i) for i in input().strip().split(' '))
        P=li[0]
        N=li[1]
        D=li[2]
        for i in range(D-1):
            mul=(D-1)*N
        ans=mul P
    return ans
main()