Неверный синтаксис в обратном отсчете и факториал - PullRequest
0 голосов
/ 08 февраля 2020

Я новичок в Python и программировании в целом, и я не могу понять, что я ввожу неправильно.

Я пытаюсь создать программу "Обратный отсчет и факториал", которая позволяет Мой пользователь, чтобы ввести число, которое будет использоваться в качестве обратного отсчета или факториала в зависимости от второй записи ввода 1 или 2.

Если они выберут 1, то программа будет работать обратный отсчет num. Если они выберут 2, тогда будет выполняться факториал num.

Я считаю, что создал правильный скрипт, но каждый раз, когда я пытаюсь запустить программу в режиме IDLE, в строке 13/14 появляется всплывающее окно "Неверный синтаксис". Строка 13 - это пустая строка между двумя input строками.

Может кто-нибудь помочь мне выяснить, почему я получаю всплывающее окно с синтаксической ошибкой? Код ниже:

import math

def countdown():
    if num == 0:
        return
    print(num)
    countdown(num-1)

def factorial():
    print(math.factorial(num))

num = int(input('Please enter an integer greater than 1.\n')

userChoice = int(input('Please enter a either 1 or 2. If 1 is entered, a countdown from that number to zero is printed. If 2 is entered, the factorial of the number is printed.\n'))

if userChoice == '1':
    countdown()
elif userChoice == '2':
    factorial()

1 Ответ

1 голос
/ 14 февраля 2020

Ваша проблема лежит в этой строке:

num = int(input('Please enter an integer greater than 1.\n')
#        ^_____^                                       ____^___
#        open(2)                                       close(1)

У вас есть две открывающие скобки, но только одна закрывающая одна. Должно быть:

num = int(input('Please enter an integer greater than 1.\n'))
#                                                          _^_
#                                                          add
...