Python isim hatası

Python işlevleri ve meth

NameErrors, Python hatalarının en yaygın türlerinden biridir. İlk başladığınızda, bu hatalar göz korkutucu görünebilir. Çok karmaşık değiller. Ad Hatası, henüz var olmayan bir değişkeni kullanmaya çalıştığınız anlamına gelir.

Bu kılavuzda, “ad hatası adı tanımlanmadı” hakkında konuşacağız. hata ve neden yükseltildi. Bunu kodunuzda nasıl çözeceğinizi anlamanıza yardımcı olmak için bu hatanın birkaç örnek çözümünü inceleyeceğiz.




AdError nedir?

Denediğinizde bir NameError oluşuyor geçerli olmayan bir değişken veya işlev adı kullanmak için.

Python'da kod yukarıdan aşağıya doğru çalışır. Bu, kodunuzda kullanmayı denedikten sonra bir değişken bildiremeyeceğiniz anlamına gelir. Python, değişkenin ne yapmasını istediğinizi bilemez.

En yaygın NameError şuna benzer:

ad hatası adı tanımlı değil

Bu hatanın birkaç nedenini analiz edelim.




Neden 1: Yanlış Yazılan Değişken veya İşlev Ad

İnsanların yazım hatalarını görmezden gelmesi kolaydır. Yanlış yazılmış olsa bile bir kelimenin ne olması gerektiğini kolayca söyleyebiliriz. Python bu yeteneğe sahip değildir.

Python sadece doğru yazdığınız isimleri yorumlayabilir. Bunun nedeni, bir değişken veya işlev bildirdiğinizde Python'un değeri tam olarak belirttiğiniz adla depolamasıdır.

Katılımcıların %81'i, katıldıktan sonra teknik iş beklentileri konusunda daha emin hissettiklerini belirtti. bir eğitim kampı. Bugün bir eğitim kampı ile eşleştirin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan daha az zaman harcadı.

Herhangi bir yerde yazım hatası varsa bu değişkene başvurmaya çalıştığınızda bir hata döndürülür.

Şu kod parçacığını göz önünde bulundurun:

books = ["Near Dark", "The Order", "Crawdads Şarkı Söylediği Yer"] print(boooks)

Kodumuz şunu döndürür:

Geri izleme (en son çağrı en son): Dosya "main.py", satır 3, 'de ; print(boooks) NameError: 'boooks' ismi tanımlı değil

Bu sorunu çözmek için tek yapmamız gereken yazım hatasını düzeltmek. “print(books)” kullanırsak, kodumuz şunu döndürür:

["Near Dark", "The Order", "Where the Crawdads Sing"]

Bir ad hatası alırsanız, önce değişkeni veya işlev adını doğru yazdığınızdan emin olmak için kontrol etmelisiniz.



Neden #2: Tanımlamadan Önce Bir Fonksiyonu Çağırmak

Fonksiyonlar, değişkenler gibi kullanılmadan önce bildirilmelidir.Bunun nedeni Python'un kodu yukarıdan aşağıya okumasıdır.  

Bir işlevi bildirilmeden önce çağıran bir program yazalım:

Kodumuz şunu döndürür:

İzleme (en son arama son): Dosya "main.py", satır 3,  print_books(books) NameError: name ' print_books' tanımlı değil

Üçüncü satırda print_books()'u çağırmaya çalışıyoruz. Ancak, bu fonksiyonu programımızda daha sonra tanımlamıyoruz. Bu hatayı düzeltmek için hareket edebiliriz. kullanmadan önce bir yere fonksiyon bildirimimiz:

def print_books(books): for b kitaplarda: basılı(b) kitaplar = ["Near Dark", "The Order", "Crawdads Şarkı Söylediği Yer"] print_books(books)

Kodumuz şunu döndürür:

Karanlığa Yakın Crawdad'ların Şarkı Söylediği Düzen

Kodumuz kitapların listesini başarıyla yazdırdı.




Neden #3: Bir Değişken Tanımlamayı Unutun

Programlar büyüdükçe, bir değişken tanımlamayı unutmak kolaydır. Bunu yaparsanız, bir ad hatası ortaya çıkar. Bunun nedeni Python'un değişkenler bildirilinceye kadar değişkenlerle çalışamamasıdır.

Hadi bir listesi< yazdıran bir programa göz atalım. /a> kitap sayısı:

kitaplarda b için: print(b)

Kodumuz şunu döndürür: 

Geri izleme (en son çağrı): Dosya "main. py", satır 1,  kitaplarda b için: NameError: 'books' ismi tanımlı değil

“books” adında bir değişken bildirmedik. Bu sorunu çözmek için “books” kodumuzda kullanmadan önce:

books = ["Near Dark", "The Order", " Kitaplarda Crawdads Sing"] için b: print(b)

Programımızı yeniden çalıştırmayı deneyelim ve ne olduğunu görelim:

Karanlığa Yakın Crawdad'ların Şarkı Söylediği Düzen

Artık bir kitap listesi tanımladık, Python, listedeki her kitabı yazdırabilir.





Neden #4: Tek Bir Kelime Yazdırmayı Deneyin

Python'da bir kelimeyi yazdırmak için, onu tek veya çift tırnak içine almanız gerekir.Bu Python'a bir kelimeyi söyler. bir dizedir. Bir sözcük tırnak içine alınmamışsa, bir programın parçası olarak kabul edilir. Aşağıdaki print() ifadesini:

"Python.Engineering hayatıma en çok ihtiyacım olduğu anda girdi ve hızlı bir şekilde bir bootcamp ile eşleşmeme yardımcı oldu. Mezun olduktan iki ay sonra, hayattaki değerlerim ve hedeflerime uygun hayalimdeki işi buldum!"

Venus, Rockbot'ta Yazılım Mühendisi

< p>Bu kod, “Kitaplar” kelimesini konsola yazdırmaya çalışır. Kod bir hata döndürür:

Geri izleme (en son arama): Dosya "main.py", satır 1,  print(Kitaplar) Ad Hatası: "Kitaplar" adı tanımlı değil

Python davranır “Kitaplar” bir değişken adı gibidir. Bu hatayı çözmek için “Kitaplar” kelimesini tırnak içine alabiliriz:

print("Kitaplar")

Python artık konsola bir dize yazdırmak istediğimizi biliyor. Yeni kodumuz geri dönüyor: Kitaplar.




Neden #5: Kapsam Dışında Bir Değişken Bildirme

İki değişken kapsamı vardır: yerel ve küresel.

Yerel değişkenlere yalnızca tanımlandıkları işlev veya sınıfta erişilebilir. Global değişkenlere bir program boyunca erişilebilir.

Tanımlandığı kapsamın dışında bir yerel değişkene erişmeye çalışırsanız bir hata oluşur.

Aşağıdaki kod, kitapların listesini ve ardından listedeki kitapların sayısını yazdırmalıdır:

def print_books (): kitaplar = ["Near Dark", "The Order", "Crawdads Şarkı Söylediği Yer"] kitaplarda b için: print(b) print_books() print(len(books))

Kodumuz şunu döndürür:

Karanlığa Yakın Crawdad'ların Traceback Şarkı Söylediği Düzen (en son çağrı) : Dosya "main.py", satır 6,  print(len(books)) NameError: 'books' ismi tanımlı değil

Kodumuz kitapların listesini başarıyla yazdırıyor. Kodumuzun son satırında bir hata döndürülür. “books” değişkenini bildirmiş olsak da, onu yalnızca print_books() fonksiyonumuzun içinde bildirdik. Bu, değişkenin programımızın geri kalanı tarafından erişilebilir olmadığı anlamına gelir.


Bu sorunu çözmek için ana programımızda kitap ilan edebiliriz.Bu onu global bir değişken yapacaktır:

books = ["Karanlığa Yakın", "Sipariş", "Kravatların Şarkı Söylediği Yer"] def print_books(): kitaplarda b için: print(b) print_books() print (len(books))

Kodumuz şunu döndürür:

Yakında Dark The Order Where the Crawdads Sing 3

Kodumuz, “books” listesindeki her kitabı yazdırır. Ardından, kodumuz len( ) yöntemi.







Python isim hatası: StackOverflow Questions

Tutorials