Sıkça sorulan sorular aşağıda gruplandırılmıştır. Her bir grup daha önce açılmış benzer konu başlıklarını içermektedir.
Eğer forum kullanıcıları sıkça sorulan sorular tespit ederlerse ve bu sorularla alakalı bir gruplandırma henüz yapılmamışsa, bu mesajı düzenleyerek aşağıdaki gruplar gibi yeni bir grup oluşturup, benzer soruları yeni grubun altına ekleyebilirler. Yeni bir grup eklerken buradaki ufak Python kodundan faydalanabilirsiniz:
Kodu ve kullanımını görmek için tıklayın
Kodu bir Python dosyasına yazdıktan sonra bu dosya ile aynı dizinde links.txt
adlı bir dosya oluşturun. Bu dosyasının ilk satırı konunun ismi, diğer satırları da konunun içereceği başlıkların linklerinden oluşacak. Örnek bir links.txt
dosyası:
Python socket modülü hakkında
https://forum.yazbel.com/t/socket-kaynak-onerisi/326
https://forum.yazbel.com/t/python-socket-modulu/1737
https://forum.yazbel.com/t/python3-chat-uygulamasi/504
https://forum.yazbel.com/t/network-kodlama-hakkinda-bilgiye-ihtiyacim-var-d/6484
https://forum.yazbel.com/t/python-server-client-iletisimi/6564
https://forum.yazbel.com/t/python-ile-mesajlasma-uyqulamasi-yazmak/740
https://forum.yazbel.com/t/windows-server-hakkinda-soru/6226
https://forum.yazbel.com/t/bilgisayar-sunucu-bilgisayar-iletisimini-saglama/3132
https://forum.yazbel.com/t/mesajlasma-uygulamasi/1739
https://forum.yazbel.com/t/kendi-mesaj-uygulamami-nasil-yaparim/3251
https://forum.yazbel.com/t/socket-hakkinda/4363
Bu dosyayı hazırladıktan sonra kodu çalıştırarak ekrana verilen çıktının tamamını kopyalayıp bu gönderinin sonuna ekleyebilirsiniz.
Kod:
from random import choice
from string import ascii_letters
with open("links.txt", "r", encoding = "utf-8") as f:
veri = f.read().split("\n")
veri = [i for i in veri if i]
başlık, *linkler = veri
anchor_name = "".join(choice(ascii_letters) for i in range(10))
anchor = '<h3 id="heading--{}"></h3>'.format(anchor_name)
çıktı = ['[details="{}"]'.format(başlık), "[¶](#heading--{})".format(anchor_name)]
for link in linkler:
çıktı.append('* {}'.format(link))
çıktı.append("[/details]")
print(anchor + "\n\n" + "\n".join(çıktı))
input()
Eğer sıkça sorulmuş bir soruyla ilgili bir grup olduğu halde yeni bir konu açılmışsa, bu durumu fark eden kullanıcılar, yeni konuyu ilgili grup başlığına ekleyip, açılmış olan bu yeni konuya grubun başlığını adres olarak gönderebilirler.
Soru sorarken dikkat edilmesi gerekenler
Python'a yeni başlayanlar için
- Python3 Öğrenmek İstiyorum Ama Hangi Kaynaktan Öğrenmeliyim?
- Python’a yeni başladım ilk olarak ne yazmalıyım?
- Paket öğrenmeye geçmeden önce
- Python dili öğrenmek istiyorum
- Python yazılım öğrenmeye başlamak için nasıl bir dil ?
- Python Öğrenme, Bilgilendirme, Yol haritası, Tavsiyeler
- Sabirli bir mentor arayisindayim
- Bir bakabilirmisiniz?
- Nerden başlamalıyım
- Python’da derinlemesine bilgi sahibi olmak ?
- Python yükledim ama ne yapacağımı bilmiyorum!?
- Kaynak Okurken Sıkılıyorum
- Python’a başlamak
- Python için kaynak önerisi
- Python 3 tavsiye ve öneri bekliyorum?
- Python’da gelişmek için nasıl bir yol izlenmeli ?
- Kafası karışık bir yazılımcı adayı için yol tavsiyesi
- Ne yapmalıyım yardım edin
Python: Değişkenlerimi kalıcı olarak kaydetmek istiyorum
Kivy Paketleme
PyAudio Kurulumu
Python socket modülü hakkında
- Socket ile gelen verileri değişkenlere nasıl atarım?
- Socket kaynak Önerisi
- Python socket modülü
- Python3 Chat uygulamasi
- Socket de sunucuya birden fazla client nasıl bağlarım?
- Network kodlama hakkında bilgiye ihtiyacım var :D
- Python server client iletişimi
- Python ile mesajlasma uyqulamasi yazmak
- Windows Server Hakkında soru
- Bilgisayar - Sunucu - Bilgisayar iletişimini sağlama
- Mesajlaşma uygulaması
- Kendi mesaj uygulamamı nasıl yaparım?
- Socket Hakkında
Python kod dosyasına çift tıklayınca çalışmıyor/açılıp hemen kapanıyor
Python dosyasını exe dosyasına dönüştürmek hakkında
- Bir Python programı ile .exe dosyası oluşturmak
- Python exe çevirme
- Python exe yapmak
- Python exe ya da apk yapma
- Python 3.6 yazılmış kodu exe yapma hakkında bir soru
- Python kodunu exe dosyasına nasıl gömerim?
- Pyinstaller tam olarak ne yapıyor?
- Pyinstallerin calisma prensibi
- GUI içeren Python dosyalarını PyInstaller ile konsolu saklayarak EXE’ye çevirmek
- Python - Programları .exe olarak derlemek
- Bir Python programı ile .exe dosyası oluşturmak
Python threading modülü hakkında
Python multiprocessing modülü hakkında
os.system fonksiyonu
GitHub Hakkında
Sıkça karşılaşılan problemler ve cevapları aşağıda listelenmiştir, isteyenler yeni problemleri ve çözümlerini aşağıya ekleyebilir. Yeni bir başlık eklerken çözümünüzde hata bulunmadığına emin olun.
Tkinter: Oluşturduğum widgeti kullanamıyorum
Sorun: Python’un tkinter
modülü ile bir widget oluşturuyorum ve bu widgeti bir değişkene atıyorum. Daha sonra bu değişkeni kullanmaya çalıştığımda, mesela get
metodunu çağırdığımda, hata alıyorum.
Örnek kod:
from tkinter import *
root = Tk()
def kayıt_yap():
girdi = entry.get() # hata verilen yer
print("Kayıt yapılıyor:", repr(girdi))
entry = Entry().pack()
buton = Button(text = "Kaydet", command = kayıt_yap).pack()
root.mainloop()
Çözüm: Oluşturulan widget bir değişkene atanmadan önce pack
metodu çağırılıyor:
entry = Entry().pack()
Bu sebepten dolayı entry
değişkenine atanan değer bir tkinter.Entry
örneği değil, None
oluyor. entry
değişkeni Entry()
'nin döndürdüğü değere değil, Entry().pack()
'taki pack
fonksiyonunun dönüş değeri olan None
’a sahip oluyor. pack
metodunun sonradan çağırılması lazım.
Doğru kod:
from tkinter import *
root = Tk()
def kayıt_yap():
girdi = entry.get()
print("Kayıt yapılıyor:", repr(girdi))
entry = Entry()
buton = Button(text = "Kaydet", command = kayıt_yap)
entry.pack()
buton.pack()
root.mainloop()
Böyle bir hata yaptığımı nasıl anlarım?
Oluşturduğunuz widget’leri atadığınızı düşündüğünüz değişkenleri ekrana yazdırarak:
from tkinter import *
root = Tk()
def kayıt_yap():
girdi = entry.get() # hata verilen yer
print("Kayıt yapılıyor:", repr(girdi))
entry = Entry().pack()
buton = Button(text = "Kaydet", command = kayıt_yap).pack()
print(entry, buton) # None None
root.mainloop()
Tkinter: Oluşturduğum butonun komutu sadece program başladığında çalışıyor
Sorun: Python’un tkinter
modülü ile bir Button
oluşturuyorum ve bu butona bir command
parametresi veriyorum. command
parametresi olarak verdiğim fonksiyonun butona basıldığında çalışması lazım ama sadece program başladığında hemen çalışıyor ve daha sonra butona basıldığında çalışmıyor.
Örnek kod:
from tkinter import *
root = Tk()
def yaz():
print("Merhaba dünya!")
buton = Button(text = "Yaz", command = yaz())
buton.pack()
root.mainloop()
Çözüm: command
parametresi olarak yaz()
veriliyor. command
parametresinin bir fonksiyon olması lazım, yaz
bir fonksiyon iken yaz()
bir fonksiyon çağrısıdır. command = yaz()
bölümü işlendiğinde yaz()
ifadesi işlenerek dönüş değeri olan None
, command
parametresi olarak kullanılır. Bu yüzden buton oluşturulurken yaz
fonksiyonu bir defa çağırılıyor ve döndürdüğü None
değeri command
parametresi oluyor. command
’ın None
olması butona basıldığında hiçbir şey olmamasına sebep oluyor. command
parametresi olarak fonksiyonun kendisi olan yaz
verilmeli.
Doğru kod:
from tkinter import *
root = Tk()
def yaz():
print("Merhaba dünya!")
buton = Button(text = "Yaz", command = yaz)
buton.pack()
root.mainloop()
Böyle bir hata yaptığımı nasıl anlarım?
Butonun command
özelliğini ekrana yazdırarak, yazan değerin sadece sayılardan oluşmadığına veya boş bir str
(''
) olmadığına emin olun:
from tkinter import *
root = Tk()
def yaz():
print("Merhaba dünya!")
buton = Button(text = "Yaz", command = yaz())
buton.pack()
print(repr(buton["command"])) # ''
root.mainloop()
Python: Benzer adlara sahip değişkenler oluşturmak istiyorum
Sorun: Python’da benzer adlara sahip değişkenleri döngü ile oluşturmak ve daha sonra bunları kullanmak istiyorum, mesela girdi_1
, girdi_2
ve girdi_3
gibi.
Örnek kod:
for i in range(3):
girdi_i = input(str(i)+". giriş: ")
for i in range(3):
print(girdi_i)
Çözüm: Böyle bir durumda farklı değişkenler yerine liste gibi veri yapılarını kullanmalısın.
Doğru Kod:
liste = []
for i in range(3):
liste.append(input(str(i)+". giriş: "))
for i in liste:
print(i)
PyQt vs: 100 tane widget oluşturmak istiyorum ama 100 tane değişken tanımlamadan bunu nasıl yapabilirim?
¶
Sorun: 100 tane widget oluşturmam lazım ama 100 tane değişken ismi yazmak da istemiyorum. 100 tane widgeti 100 tane değişken kullanmadan tanımlayıp kullanmak istiyorum. Bu sorunu nasıl çözebilirim.
Örnek Kod:
from PyQt5.QtWidgets import QPushButton, QApplication, QWidget, QVBoxLayout
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.butonlar = []
self.vbox = QVBoxLayout()
self.setLayout(self.vbox)
self.pencereye_50_buton_ekle()
self.secilen_butonun_rengini_degistir(25)
def pencereye_50_buton_ekle(self):
self.buton1 = QPushButton(self)
self.buton1.setText("1 butonu")
self.vbox.addWidget(self.buton1)
self.buton2 = QPushButton(self)
self.buton2.setText("2 butonu")
self.vbox.addWidget(self.buton2)
self.buton3 = QPushButton(self)
self.buton.setText("3 butonu")
self.vbox.addWidget(self.buton3)
# ...
# ...
self.buton100 = QPushButton(self)
self.buton100.setText("100 butonu")
self.vbox.addWidget(self.buton100)
def secilen_butonun_rengini_degistir(self, i):
if i == 1:
self.buton1.setStyleSheet("background-color : yellow")
elif i == 2:
self.buton2.setStyleSheet("background-color : yellow")
#....
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
Çözüm:
Aslında bu sorun, şu soruya çok benziyor. 100 tane değişken tanmlamak yerine liste gibi veri yapılarını kullanmalısın.
Örnek Kod:
from PyQt5.QtWidgets import QPushButton, QApplication, QWidget, QVBoxLayout
import sys
class Window(QWidget):
def __init__(self):
super().__init__()
self.butonlar = []
self.vbox = QVBoxLayout()
self.setLayout(self.vbox)
self.pencereye_50_buton_ekle()
self.secilen_butonun_rengini_degistir(25)
def pencereye_50_buton_ekle(self):
for i in range(50):
buton = QPushButton(self)
buton.setText(f"{i} butonu")
self.vbox.addWidget(buton)
self.butonlar.append(buton)
def secilen_butonun_rengini_degistir(self, i):
self.butonlar[i].setStyleSheet("background-color : yellow")
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
İsterseniz aşağıdaki linkteki cevaplara da göz atabilirsiniz.