Her programlama dili gibi Python'un da kendine özgü kuralları vardır. Bu kurallara uyulmazsa, kod yorumlayıcı için anlaşılmaz hale gelir ve sözdizimi hatalarına yol açar. Bu hatalar hem acemi hem de deneyimli programcıların karşılaştığı yaygın sorunlardır. Bu makale Python'da en sık karşılaşılan hataları ele almakta ve programlama sürecinde bu hataları düzeltmek için yöntemler sunmaktadır.
Bir sözdizimi hatası oluştuğunda, Python soruna işaret eden bir hata mesajı sağlar. Bu mesaj tipik olarak şunları içerir:
Python'a yeni başlayanların yaptığı en yaygın hatalardan biri parantezleri kapatmayı unutmaktır. Bu özellikle fonksiyon çağrılarında ve iç içe geçmiş yapılarda yaygındır.
Örnek:
print("Hello, World!"
Python hata mesajı:
Düzeltme:
Tüm parantezlerin doğru şekilde kapatıldığından emin olun.
print("Hello, World!")
Python, kod bloklarını tanımlamak için girintilemeye dayanır. Yanlış girintileme sözdizimi hatalarına yol açabilir.
Örnek:
def greet():
print("Hello, World!")
Python hata mesajı:
Düzeltme:
Kod bloğunu düzgün şekilde girintileyin.
def greet():
print("Hello, World!")
Listelerdeki veya sözlüklerdeki öğeler arasına virgül eklemeyi unutmak da sık yapılan bir başka hatadır.
Örnek:
fruits = {"type": "sweert" "name": "orange"}
Python hata mesajı:
Düzeltme:
"sweert" ve "name" arasına eksik virgül ekleyin.
fruits = {"type": "sweert", "name": "orange"}
Python ayrılmış anahtar kelimelerinin yanlış kullanılması da sözdizimi hatalarına neden olabilir. Anahtar kelimeler, özel anlamları olan ayrılmış kelimelerdir.
Örnek:
class = "Beginner"
Python hata mesajı:
Düzeltme:
Ayrılmış bir anahtar kelime olmayan farklı bir ad seçin.
level = "Beginner"
Değişken adları belirli kurallara uygun olmalıdır. Sayı ile başlayan veya boşluk içeren gibi kural dışı değişken adlarının kullanılması sözdizimi hatalarına neden olur.
Örnek:
2name = "John"
Python hata mesajı:
Düzeltme:
Geçerli bir değişken adı kullanın.
name2 = "John"
Dizeler eşleşen tırnak işaretleri içine alınmalıdır. Bir dizeyi kapatmayı unutmak sözdizimi hatasına neden olur.
Örnek:
message = "Hello, World!
Python hata mesajı:
Düzeltme:
Dizenin aynı tür tırnak işaretiyle kapatıldığından emin olun.
message = "Hello, World!"
if, for, while ve def gibi bileşik ifadelerin sonuna iki nokta üst üste (:) eklemeyi unutmak sözdizimi hatalarına yol açabilir.
Örnek:
def greet()
print("Hello, World!")
Python hata mesajı:
Düzeltme:
Bileşik ifadenin sonuna iki nokta üst üste ekleyin.
def greet():
print("Hello, World!")
İşleçlerin yanlış kullanılması sözdizimi hatalarına neden olabilir. Buna atama operatörleri ve karşılaştırma operatörleri de dahildir.
Örnek:
if x = 10:
print("x is 10")
Python hata mesajı:
Düzeltme:
Doğru karşılaştırma operatörünü kullanın.
if x == 10:
print("x is 10")
Bir sözdizimi hatasıyla karşılaşan basit bir web kazıma betiğini ve Python'un yerleşik hata ayıklayıcısı pdb'yi kullanarak nasıl hata ayıklayacağımızı ele alalım.
Orijinal kod:
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
for title in titles
print(title.text)
Python hata mesajı:
Düzeltme:
for döngüsünden sonra eksik iki nokta üst üste işaretini ekleyin.
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
for title in titles:
print(title.text)
Hata ayıklayıcıyı başlatmak için döngüden önce aşağıdaki satırı ekleyin.
import pdb; pdb.set_trace()
Kesme noktası ile değiştirilmiş kod:
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
titles = soup.find_all("h1")
import pdb; pdb.set_trace()
for title in titles:
print(title.text)
Komut dosyasını çalıştırdığınızda, pdb hata ayıklayıcı kesme noktasında başlayacaktır.
> /path/to/your/script.py(10)()
-> for title in titles:
(Pdb)
Hata ayıklama komutları:
Örnek oturum:
(Pdb) n
> /path/to/your/script.py(11)()
-> print(title.text)
(Pdb) p titles
[<h1>Example Domain</h1>]
(Pdb) c
Example Domain
Pdb kullanarak kodunuzda adım adım ilerleyebilir, değişkenleri inceleyebilir ve yürütme akışını anlayarak hataları belirlemeyi ve düzeltmeyi kolaylaştırabilirsiniz.
Yorumlama hataları, işlemci kodunuzu kapsamlı bir şekilde anlayamadığında ortaya çıkar, ancak çalışma zamanı hataları kodunuz çalışırken gerçekleşir. Sıfıra bölme, bir listedeki kapsam dışı diziye dokunma ve tanımlanmamış değişkenler bu tür hatalara neden olur.
Örnek:
numbers = [1, 2, 3]
print(numbers[3])
Python hata mesajı:
Düzeltme:
Geçerli liste endekslerine eriştiğinizden emin olun.
print(numbers[2])
İstisnaları işlemek, bir hata oluştuğunda bile programınızın çalışmaya devam etmesini sağlar. İstisnaları yakalamak ve işlemek için try-except bloklarını kullanın.
Örnek:
try:
result = 10 / 0
except ZeroDivisionError:
print("You can't divide by zero!")
Python sözdizimindeki yaygın hatalar ve hataların düzeltilmesi konusunda uzmanlık kazanmak, herhangi bir Python geliştiricisi için çok önemlidir. Python hata mesajlarını okumak ve sonraki düzeltmelere devam etmek, kişinin kolayca daha iyi kod yazmasını sağlar.
Yorumlar: 0