Как мне заставить программу Python выполнить себя снова? - PullRequest
1 голос
/ 15 июня 2019

Я новичок в Python и пытаюсь написать программу, которая продолжает работать с запросом новых входных данных. Я хочу создать файл так, чтобы он открывал командную строку с просьбой ввести некоторые значения. Пользователь вставляет входные данные, программа возвращает ответ и перезапускает, чтобы пользователь мог вставить новые входные данные для получения новых ответов. Это будет сделано до тех пор, пока пользователь не закроет командное окно.

Я создал код, который дает мне день недели любой даты в григорианском календаре. Я использовал «Алгоритм Судного дня» Джона Конвея, чтобы написать программу. Он отлично работает, когда я его запускаю. Я создал раздел ввода, где программа запрашивает День, Месяц и Год. Посмотри мой следующий код:

#The first part of my doomsday algorithm here (this is to large to simple paste here).
#The last part is creating the last function, that will evaluate everything

def semana(d,m,a):

#definition of the function "semana". 
#I'm Brazilian and this is the portuguese word for "week". 
#Then I insert the input strings here:

x=eval(input("Dia:"))
y=eval(input("Mês:"))
z=eval(input("Ano:"))

semana(x,y,z)

Я запускаю программу из командной строки и ввожу значения для переменных x, y и z, нажимаю клавишу ввода, и программа показывает правильный ответ, но сразу после появления ответа она завершается. .

Я хочу знать, как заставить программу перезапуститься в том же окне. Я имею в виду следующее: я вставляю значения для x, y и z. Затем я нажимаю Enter, и программа показывает ответ. Затем он снова запрашивает ввод, чтобы я мог продолжать вставлять значения и получать день недели в качестве ответа.

Заранее спасибо!

1 Ответ

1 голос
/ 15 июня 2019

То, что вы ищете, это петля while. Эта управляющая структура позволяет нам выполнять набор операторов, если условие True. Если условие становится False, мы вырываемся из цикла.

# -*- encoding: utf-8 -*-

def semana():
    x=input("Dia:")
    y=input("Mes:")
    z=input("Ano:")
    print('{}/{}/{}'.format(x,y,z))

while True:
    semana()

Пример вывода

Dia:6
Mes:14
Ano:2019
6/14/2019
...