| import gradio as gr |
| import sys |
| from io import StringIO |
|
|
| def run_python_code(user_code): |
| |
| old_stdout = sys.stdout |
| redirected_output = sys.stdout = StringIO() |
| |
| try: |
| |
| exec(user_code) |
| sys.stdout = old_stdout |
| result = redirected_output.getvalue() |
| return result if result else "Kod çalıştı ama bir çıktı (print) üretmedi." |
| except Exception as e: |
| sys.stdout = old_stdout |
| return f"❌ Hata: {str(e)}" |
|
|
| |
| with gr.Blocks(theme=gr.themes.Soft()) as demo: |
| gr.Markdown("# 🚀 Codeia: Geleceğin Yazılımcı Akademisi") |
| gr.Markdown("Kıraaal, hoş geldin! Bugün kodlamanın temellerini söküyoruz.") |
| |
| with gr.Tabs(): |
| |
| with gr.TabItem("Ders 1: Değişkenler"): |
| with gr.Row(): |
| with gr.Column(scale=1): |
| gr.Markdown(""" |
| ### 📝 Değişken Nedir? |
| Değişkenler, veri saklamak için kullandığımız kutular gibidir. |
| Python'da bir kutu oluşturmak çok kolaydır: |
| `isim = "Talha"` |
| |
| **Görev:** Aşağıdaki alana kendi ismini bir değişkene ata ve ekrana yazdır! |
| """) |
| |
| with gr.Column(scale=1): |
| code_input = gr.Code(label="Python Kodunu Yaz", language="python", lines=10) |
| output_text = gr.Textbox(label="Çalıştırma Sonucu", interactive=False) |
| run_btn = gr.Button("Kodu Test Et", variant="primary") |
| |
| run_btn.click(fn=run_python_code, inputs=code_input, outputs=output_text) |
|
|
| |
| with gr.TabItem("Ders 2: Sayılarla İşlemler"): |
| gr.Markdown("Buraya da ikinci dersin içeriğini geleceğiz moruk.") |
|
|
| demo.launch() |