File size: 2,081 Bytes
5322751 1ce4444 5322751 1ce4444 5322751 1ce4444 5322751 1ce4444 5322751 1ce4444 5322751 1ce4444 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import gradio as gr
import sys
from io import StringIO
def run_python_code(user_code):
# Standart çıktıyı yakalamak için (print sonuçlarını görmek için)
old_stdout = sys.stdout
redirected_output = sys.stdout = StringIO()
try:
# Kullanıcının yazdığı kodu çalıştır
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)}"
# Arayüz Tasarımı
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():
# 1. SEKME: DERS 1
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)
# 2. SEKME: DERS 2 (Buraya yeni dersler ekleyebilirsin)
with gr.TabItem("Ders 2: Sayılarla İşlemler"):
gr.Markdown("Buraya da ikinci dersin içeriğini geleceğiz moruk.")
demo.launch() |