Python NameError hatası

mikasaAckermann2

Centipat
Katılım
8 Temmuz 2024
Mesajlar
14
Daha fazla  
Cinsiyet
Erkek
Yeni Python kullanmaya başladım ve nameerror: Name 'question' is not defined diye hata alıyorum ama kodda bir hata göremiyorum. Kaçırdığım bir şey mi var?
 

Dosya Ekleri

  • Ekran görüntüsü 2024-07-08 140148.png
    Ekran görüntüsü 2024-07-08 140148.png
    23,8 KB · Görüntüleme: 67
  • Ekran görüntüsü 2024-07-08 140123.png
    Ekran görüntüsü 2024-07-08 140123.png
    20 KB · Görüntüleme: 62
Son düzenleyen: Moderatör:
Nefret kusmuyorum, emoji de spamlamıyorum. Beğenmediğim, yanlış bulduğum ifadelere yanlış ifadesi bırakıyorum.
Kod doğru yorumuna da mı? Moderatörümüz düzgün konuşabiliyorken sen niye deliriyorsun? Kod doğru. Madem dediğiniz gibi yanlışsa kanıtlayın kodun yanlışlığına ona göre davranın.
 
Kod yanlış demedim. Delirmiyorum. Bir daha oku mesajımı.

Okuyorum ve beğenmediklerim ve yanlışlara diyorsun. Kodu beğenmediyseniz sizin için bir dahakine VSC'ye renkli temalar yükleyip gösteririm. Ya yanlış diyorsunuz ya da beğenmediniz birini seçin. Düzgün tartışma ortamında yaptığınız şey yanlış. Daha fazla cevap vermeyeceğim bu konuya, dediklerimi anlamayan siz olabilirsiniz belki de özeleştiri olarak. Sorun çözüldüyse konu kilitlensin.
 
Kod doğru yorumu derken bundan bahsediyorsan;

Dislike'ı bunun için attım;
Eki Görüntüle 2245682

Kod doğru yorumu derken bundan bahsediyorsan;

Dislike'ı bunun için attım;
Eki Görüntüle 2245682

Editlenip editlenip sonradan yazının değiştiği belli. Bu mesajıma ne olarak attınız emoji çok merak ediyorum. Çünkü o mesajdan sonra kendisnin dosyanın bulunmadığına dair SS gelmiş ve onu tartışmışız. Ayrıca adam değişkeni değiştirip kaydedip çalıştırmış ve bunu belirtmiş neyi tartışıyorsun hala? Haklı çıkmak istiyorsan gereksiz bir tartışmada haklısın diyeyim daha fazla konuşmayalım.
 

Dosya Ekleri

  • Screenshot_2.png
    Screenshot_2.png
    56,6 KB · Görüntüleme: 18
Editlenip editlenip sonradan yazının değiştiği belli. Bu mesajıma ne olarak attınız emoji çok merak ediyorum. Çünkü o mesajdan sonra kendisnin dosyanın bulunmadığına dair SS gelmiş ve onu tartışmışız.
Ekran görüntüsüne bakmayıp, konu sahibine fonksiyon yazması gerektiğini söylüyorsun. Karşılaştığı hata o değil halbuki. Ekran görüntüsüne, iki saniye vaktini ayırıp baksan, kodu shell'de execute etmeye çalıştığını, ve sadece tek bir satır gönderdiğini göreceksin shell'e. Değişkenlere bir şey uygulamasına da gerek yok. Attığı kodda bir hata yoktu. Hata kodu shift enter veya python shell üzerine tek satır kopyala yapıştır yapıp çalıştırmaya çalışmasından kaynaklı bir şekilde variable bulunamadı hatasıydı. Bu yüzden de dislike attım.
 
Ekran görüntüsüne bakmayıp, konu sahibine fonksiyon yazması gerektiğini söylüyorsun. Karşılaştığı hata o değil halbuki. Ekran görüntüsüne, iki saniye vaktini ayırıp baksan, kodu Shell'de execute etmeye çalıştığını, ve sadece tek bir satır gönderdiğini göreceksin Shell'e. Değişkenlere bir şey uygulamasına da gerek yok. Attığı kodda bir hata yoktu. Hata kodu Shift enter veya Python Shell üzerine tek satır kopyala yapıştır yapıp çalıştırmaya çalışmasından kaynaklı bir şekilde variable bulunamadı hatasıydı. Bu yüzden de dislike attım.

Dostum Türkçen yoksa bu benim problemim değil. Ben öyle hatırlıyorum denemesini söyledim ve editleyip ben deneyeyim biraz beklerseniz diye. Ben şunu yap kesin düzelecek diye bir yargıda bulunmadım kendim deneyip adama gösterdim bana değişik değişik şeyler söylediniz. Tartıştığımız kişiyle birbirimizi yanılş anlamışız ve tartışmışız. Sizin bu tartışmada rolünüz neydi? Adam değişkeni değiştirip kaydetmiş çalıştırmış kaydettiği için doğru ortamda çalıştırmış. Düzgün davranırsanız düzgün cevap alırsınız. Moderatör düzgün konuştuğu için ilk durumu fark edip haklısınız dedim zaten. Neyse gerek yok daha fazla tartışmaya benim dediklerim gayet açık. Düzgün davranıp spam atmazsanız iyi karşılanırsınız. Kabul etmiyosanız benlik durum değil. Ben sizin yerinize kalp atayım konu kapansın.
 
... ama kodda bir hata göremiyorum. Kaçırdığım bir şey mi var?

Kodunuzda bir hata yok, rahat olabilirsiniz. Çalıştırma yönteminizde hata var.

O kodları daha bilmiyorum. YouTube'dan tutorial videosu izliyordum. Bu kodları yazdım. Bu hatayı veriyor ama adamda vermiyor.

Yaptığınız hata, büyük ihtimalle Shift + Enter kombinasyonunu imleciniz 3. satırdayken kullanmaktı. Videoda herhalde bu kısayol kullandırılmış. Geçenlerde de başka bir arkadaşın aynı şeyden dolayı kafası karışmıştı. Videonun bağlantısını paylaşmanız mümkün mü? Belki orada her satır yazıldığında Shift + Enter yapılıyordur.

VS Code'da Python için Shift + Enter kombinasyonu; imleç bir satırdaysa o satırı, birden fazla satır seçiliyse de seçili satırları alıp terminalde Python Shell'i açıp orada çalıştırıyor. Buradan yola çıkarak mesela tüm kodu çalıştırmak için önce Ctrl + A ile tüm kodu seçip sonra Ctrl + Enter yapmanız gerektiği çıkarımında bulunabilirsiniz.

Siz kodun hepsini seçmeden yalnızca 3. satırı yani print(question, 'likes ', question 2) satırını çalıştırınca ne oluyor?
  1. VS Code, yeni bir terminalde Python Shell açıyor. O sarı komut, Python'un sistemdeki tam yolundan ibaret. Python'u o şekilde direkt çalıştırınca Shell açılır.
  2. Hiçbir şey tanımlanmamışken print(question, 'likes ', question 2) satırını çalıştırmaya kalkıyor. Bu, sadece bu satırı içeren bir Python scripti çalıştırmaya denk.
  3. Hâliyle de Shell, ilk hata olan question'ın tanımlanmamış olduğu hatasını belirtiyor.
Yani siz aslında tüm kodunuzu değil yalnızca 3. satırı çalıştırmış oldunuz ve bunlar yaşandı.

Önerim, Shift + Enter yerine terminalde python script-ismi.py yazıp scripti elinizle çalıştırmanız. Burada, script-ismi.py yerine dosyanızın ismini yazmanız gerekiyor tabii, Untitled-1.py gibi. Daha sağlıklı olacağını düşünüyorum. Bu çok zor gelirse editörünüzde script açıkken beliren, sağ üstteki çalıştırma butonunu kullanabilirsiniz:

1720444397606.png
 
Kodunuzda bir hata yok, rahat olabilirsiniz. Çalıştırma yönteminizde hata var.



Yaptığınız hata, büyük ihtimalle Shift + Enter kombinasyonunu imleciniz 3. satırdayken kullanmaktı. Videoda herhalde bu kısayol kullandırılmış. Geçenlerde de başka bir arkadaşın aynı şeyden dolayı kafası karışmıştı. Videonun bağlantısını paylaşmanız mümkün mü? Belki orada her satır yazıldığında Shift + Enter yapılıyordur.

VS Code'da Python için Shift + Enter kombinasyonu; imleç bir satırdaysa o satırı, birden fazla satır seçiliyse de seçili satırları alıp terminalde Python Shell'i açıp orada çalıştırıyor. Buradan yola çıkarak mesela tüm kodu çalıştırmak için önce Ctrl + A ile tüm kodu seçip sonra Ctrl + Enter yapmanız gerektiği çıkarımında bulunabilirsiniz.

Siz kodun hepsini seçmeden yalnızca 3. satırı yani print(question, 'likes ', question 2) satırını çalıştırınca ne oluyor?
  1. VS Code, yeni bir terminalde Python Shell açıyor. O sarı komut, Python'un sistemdeki tam yolundan ibaret. Python'u o şekilde direkt çalıştırınca Shell açılır.
  2. Hiçbir şey tanımlanmamışken print(question, 'likes ', question 2) satırını çalıştırmaya kalkıyor. Bu, sadece bu satırı içeren bir Python scripti çalıştırmaya denk.
  3. Hâliyle de Shell, ilk hata olan question'ın tanımlanmamış olduğu hatasını belirtiyor.
Yani siz aslında tüm kodunuzu değil yalnızca 3. satırı çalıştırmış oldunuz ve bunlar yaşandı.

Önerim, Shift + Enter yerine terminalde python script-ismi.py yazıp scripti elinizle çalıştırmanız. Burada, script-ismi.py yerine dosyanızın ismini yazmanız gerekiyor tabii, Untitled-1.py gibi. Daha sağlıklı olacağını düşünüyorum. Bu çok zor gelirse editörünüzde script açıkken beliren, sağ üstteki çalıştırma butonunu kullanabilirsiniz:

Teşekkür ederim, bilgi verdiğiniz için.
 

Technopat Haberler

Yeni konular

Geri
Yukarı