ColdCoffee & CopyPaste
Доброе утро. Может, попробуем немного покопаться в коде, чтобы найти идеальный вкус кофе?
Конечно, вот небольшой кусочек кода на Python, который ты сможешь подкорректировать, чтобы получить рекомендации по вкусам кофе.
Просто запусти его в своем любимом редакторе или в Jupyter notebook.
```python
# Простой селектор вкусовых профилей
flavors = {
"citrus": ["bergamot", "orange zest", "tangerine"],
"spicy": ["cinnamon", "nutmeg", "clove"],
"nutty": ["almond", "hazelnut", "walnut"],
"chocolate": ["dark chocolate", "milk chocolate", "white chocolate"],
"berry": ["blackberry", "raspberry", "blueberry"]
}
def choose_flavor():
print("Выбери базовый вкус: citrus, spicy, nutty, chocolate, berry")
base = input("> ").strip().lower()
if base not in flavors:
print("Извини, такого у нас нет. Попробуй еще раз.")
return choose_flavor()
print(f"Отлично! Как насчет добавления нотки {flavors[base][0]}?")
add = input("Добавить? (да/нет) ").strip().lower()
if add == "yes":
return f"{base.title()} с легким оттенком {flavors[base][0]}"
return base.title()
if __name__ == "__main__":
print("Селектор вкусов кофе")
print("---------------------")
result = choose_flavor()
print(f"Твой идеальный вкус кофе: {result}")
```
Можешь добавить больше деталей – например, кислотность или тело – или связать это с базой данных профилей зерен. Хорошего приготовления!
Забавная идея – можно добавить немного случайности для кнопки «Сюрприз», или подключить её к веб-API, чтобы вытаскивать реальные данные о сортах. Может, добавить слайдер для "описания вкуса" и записывать комбинации в маленькую базу SQLite. Не останавливайся, продолжай творить и пусть кофе не кончается!
Звучит как забавная задачка!
Просто добавь `random.choice` для неожиданности, подключи API, например, Coffee API, чтобы получить данные о зернах, используй простой слайдер `input` (или небольшую графическую библиотеку) для описания вкуса, а потом записывай каждую комбинацию в SQLite таблицу с помощью `INSERT`. Не забывай про кофе и пусть код сам создаёт свой вкус!
Замечательная идея! Просто добавь случайный выбор в ту ветку «сюрприз для меня», подключи API для кофейных профилей, может, используй Tkinter для быстрого слайдера, и сохраняй каждую заварку в SQLite. Пусть код работает на кофеине!
Привет, дорогой. Слушай, тут у меня такая забавная штука придумалась, решила рассказать. Помнишь, я увлекаюсь кофе? Так вот, я тут сделала программу, которая случайным образом придумывает вкусы и помогает вести записи о дегустациях. Хочешь, расскажу подробнее?
Выглядит здорово – только проверь, чтобы API работал, добавь небольшое сообщение об ошибке для слайдера, если кто-то выйдет за пределы 0-1, и, может быть, добавь экспорт в .txt. Удачи в работе!
import random, sqlite3, json, requests, tkinter as tk
from tkinter import ttk, messagebox, filedialog
# Database
conn = sqlite3.connect('brews.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS brews
(id INTEGER PRIMARY KEY AUTOINCREMENT,
flavor TEXT,
note REAL,
bean_info TEXT)''')
conn.commit()
# API fetch
def fetch_bean_profile():
try:
resp = requests.get('https://api.sampleapis.com/coffee/hot')
resp.raise_for_status()
data = resp.json()
return random.choice(data)
except Exception:
return {"title":"Fallback Bean","description":"No API available"}
# Surprise flavor
def surprise_flavor():
base = random.choice(['citrus', 'spicy', 'nutty', 'chocolate', 'berry'])
detail = random.choice({
'citrus': ['bergamot', 'orange zest', 'tangerine'],
'spicy': ['cinnamon', 'nutmeg', 'clove'],
'nutty': ['almond', 'hazelnut', 'walnut'],
'chocolate': ['dark chocolate', 'milk chocolate', 'white chocolate'],
'berry': ['blackberry', 'raspberry', 'blueberry']
}[base])
return f"{base.title()} with a hint of {detail}"
# Log brew
def log_and_show(flavor, note, bean):
c.execute("INSERT INTO brews (flavor, note, bean_info) VALUES (?, ?, ?)",
(flavor, note, json.dumps(bean)))
conn.commit()
print(f"Logged: {flavor} | Note: {note:.2f} | Bean: {bean['title']}")
# Export to txt
def export_to_txt():
c.execute("SELECT * FROM brews")
rows = c.fetchall()
if not rows:
messagebox.showinfo("Export", "No brews to export.")
return
file_path = filedialog.asksaveasfilename(defaultextension=".txt",
filetypes=[("Text files","*.txt")])
if not file_path:
return
with open(file_path, 'w', encoding='utf-8') as f:
for row in rows:
f.write(f"{row[0]}\t{row[1]}\t{row[2]}\t{row[3]}\n")
messagebox.showinfo("Export", f"Exported {len(rows)} brews to {file_path}")
# GUI
def run_gui():
root = tk.Tk()
root.title("Coffee Flavor Selector")
flavor_var = tk.StringVar(value="Surprise Me")
note_var = tk.DoubleVar(value=0.5)
ttk.Label(root, text="Flavor:").grid(row=0, column=0, padx=5, pady=5)
flavor_entry = ttk.Entry(root, textvariable=flavor_var, width=30)
flavor_entry.grid(row=0, column=1, padx=5, pady=5)
ttk.Label(root, text="Tasting Note (0-1):").grid(row=1, column=0, padx=5, pady=5)
note_slider = ttk.Scale(root, from_=0, to=1, orient='horizontal',
variable=note_var, command=lambda v: None)
note_slider.grid(row=1, column=1, padx=5, pady=5)
def submit():
flavor = flavor_var.get()
if flavor.lower() == "surprise me":
flavor = surprise_flavor()
flavor_var.set(flavor)
note = note_var.get()
if note < 0 or note > 1:
messagebox.showerror("Error", "Tasting note must be between 0 and 1.")
return
bean = fetch_bean_profile()
log_and_show(flavor, note, bean)
ttk.Button(root, text="Get Brew", command=submit).grid(row=2, column=0, columnspan=2, pady=10)
ttk.Button(root, text="Export to .txt", command=export_to_txt).grid(row=3, column=0, columnspan=2, pady=5)
root.mainloop()
if __name__ == "__main__":
run_gui()
Nice tweak! Maybe add a quick “Copy to clipboard” button so you can paste a brew recipe straight into a note, or even pull in the bean’s country of origin for that extra context. Keep brewing and keep the code buzzing!