Как мне перейти и завершить одну подфункцию, а затем вернуться к «функции меню», из которой я пришел?(Python) - PullRequest
0 голосов
/ 26 мая 2018

В идеале, я бы хотел, чтобы в процессе «Добавить фильм» был какой-то шаг, который подтверждает, что это целое число на год, и как только он будет принят, чтобы вернуться к главному меню после успешного добавления фильма....

(Я не собираюсь спрашивать, или как бы мне хотелось, чтобы данные пользовательского ввода сохранялись в файле, из которого нужно извлечь, поэтому я не делаю новую запись каждый развремя, ха-ха)

Вот что у меня есть ... и опять же, это мое усилие, возможно, после 4 часов 27-часового курса.

Я надеюсь, что вы, ребята, можете понятьто, что я пытаюсь сделать ... но это просто не "правильно" после функции "добавить фильм" ... вы должны увидеть, о чем я говорю.

import sys
import random
import os

movies = []

def menu():
    print("Welcome to 'The Movie Program!!'")
    print("(A)dd movie to your list")
    print("(L)ist movies you've added")
    print("(S)earch for movies in your list")
    user_input = str(input("Which function would you like to do?:\n\n""Selection: ").capitalize())
    while user_input != 'Q':
        if user_input == 'A':
            add_movies()
        elif user_input == 'L':
            show_movies()
        elif user_input == 'A':
            search_movies()
        else:
            print("\n\n--Unknown command--Please try again.\n")
            menu()

            #user_input = str(input("\nWhich function would you like to do?:\n"
            #                   "(A)dd movie to your list\n"
            #                   "(L)ist movies you've added\n"
            #                   "(S)earch for movies in your list\n\n""Selection: ").capitalize())


def add_movies():
    name = (input('What is the title of the movie?: ').title())
    director = str(input("Who was the director of this movie?: ").title())
    while True:
        try:
            year = int(input("What was the release year?: "))
            return year
            break
        except ValueError:
            print("Only numbers, please.")
        year = False

        #return year

        #if year < 0:
        #    print("Sorry,your response must not be negative.")
        #    continue
        #else:
        #    return year

    movies.append({
        "name": name,
        "director": director,
        "year": year
    })


def show_movies():
    movies[::3]
    for c, value in enumerate(movies, 1):
        print(c, value)
    for movie in movies:
        print(f"Name: {movie['name']}")
        print(f"Director: {movie['director']}")
        print(f"Release Year: {movie['year']}\n")
'''Not done yet
def search_movies():
    movies
    print("This is where you'd see a list of movies in your database")

'''
menu()

1 Ответ

0 голосов
/ 26 мая 2018

положить

user_input = str(input("Which function would you like to do?:\n\n""Selection: ").capitalize())

внутри цикла while и дать значение user_input перед циклом.

примерно так:

print("Welcome to 'The Movie Program!!'")
print("(A)dd movie to your list")
print("(L)ist movies you've added")
print("(S)earch for movies in your list")
user_input=str(input("Which function would you like to do?:\n\n""Selection: ").capitalize())
while user_input != 'Q':
    if user_input == 'A':
        add_movies()
    elif user_input == 'L':
        show_movies()
    elif user_input == 'A':
        search_movies()
    else:
        print("\n\n--Unknown command--Please try again.\n")
        print("Welcome to 'The Movie Program!!'")
        print("(A)dd movie to your list")
        print("(L)ist movies you've added")
        print("(S)earch for movies in your list")
    user_input = str(input("Which function would you like to do?:\n\n""Selection: ").capitalize())

Также вы должны создавать фильмы как переменныеи вернуть значение для функции или сделать ее глобальной переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...