from typing import List, Optional
class CoffeeMachine:
def __init__(self):
self.coffee_types: List[str] = []
def load_coffee_types(self) -> None:
num_types = int(input().strip())
self.coffee_types = [input().strip() for _ in range(num_types)]
def select_coffee(self) -> Optional[str]:
try:
selection = int(input().strip())
return self.coffee_types[selection - 1]
except (ValueError, IndexError):
return None
def run(self) -> None:
self.load_coffee_types()
selected_coffee = self.select_coffee()
if selected_coffee:
print(selected_coffee)
else:
print("Неверный ввод")
print("Хорошего дня")
if __name__ == "__main__":
CoffeeMachine().run()
и реализация в графическом виде
import tkinter as tk
from tkinter import messagebox, simpledialog
from typing import List
class CoffeeMachineGUI:
def __init__(self, master: tk.Tk):
self.master = master
self.master.title("Кофейный аппарат")
self.coffee_types: List[str] = []
self.setup_ui()
def setup_ui(self) -> None:
self.frame = tk.Frame(self.master, padx=20, pady=20)
self.frame.pack()
self.label = tk.Label(
self.frame, text="Выберите тип кофе:", font=("Arial", 14))
self.label.pack(pady=10)
self.coffee_listbox = tk.Listbox(
self.frame, font=("Arial", 12), width=30, height=10)
self.coffee_listbox.pack(pady=10)
self.select_button = tk.Button(
self.frame, text="Выбрать", command=self.select_coffee, font=("Arial", 12))
self.select_button.pack(pady=10)
def load_coffee_types(self) -> None:
num_types = simpledialog.askinteger(
"Ввод", "Введите количество типов кофе:", parent=self.master, minvalue=1)
if num_types is None:
self.master.quit()
return
for i in range(num_types):
coffee_type = simpledialog.askstring("Ввод", f"Введите название кофе {
i+1}:", parent=self.master)
if coffee_type:
self.coffee_types.append(coffee_type)
self.coffee_listbox.insert(tk.END, coffee_type)
if not self.coffee_types:
messagebox.showerror("Ошибка", "Не введено ни одного типа кофе.")
self.master.quit()
def select_coffee(self) -> None:
selection = self.coffee_listbox.curselection()
if selection:
selected_coffee = self.coffee_types[selection[0]]
messagebox.showinfo("Выбор кофе", f"Вы выбрали: {selected_coffee}")
else:
messagebox.showerror("Ошибка", "Неверный ввод")
messagebox.showinfo("Завершение", "Хорошего дня!")
self.master.quit()
def main():
root = tk.Tk()
app = CoffeeMachineGUI(root)
app.load_coffee_types()
root.mainloop()
if __name__ == "__main__":
main()
На следующих строках перечислены виды кофе
На последней строке нужно считать пользовательский ввод - это число предоставляет соответствующий вид кофе
Если число указано вне обозначенного диапазона, то программа должна вывести сообщение Неверный ввод
Независимо от результата программа должна вывести на экран сообщение Хорошего дня
Я написал такой код: В строчке elif len(cofeiki)==kakoi_cofeiok:
Я хочу сделать так чтобы когда пользователь вводил как на примере: А вывод был: