raw_input Pythonu

Python işlevleri ve meth

Python 3, Python 2’s raw_input() yöntemini input() yöntemiyle değiştirdi. Python 3'te raw_input() kullanmayı denerseniz, NameError: name ‘raw_input’ ile karşılaşırsınız. tanımlanmadı hatası.

Bu kılavuzda, bu hatanın ne anlama geldiğini ve neden karşılaşabileceğinizi tartışacağız. Hatayı nasıl çözeceğinizi öğrenebilmeniz için bu hatanın bir örneğini bir çözümle birlikte inceleyeceğiz.




Ad Hatası: ad ‘raw_input’ tanımlı değil

Python 2'deki raw_input() işlevi, bir kullanıcıdan girdi toplar. Bu girdi, dize, tam sayı veya kayan noktalı sayı gibi herhangi bir veri türüne dönüştürülebilir.

Şu kodu göz önünde bulundurun:

username = raw_input(“Bir kullanıcı adı girin: ”)

Bu kodu Python 2'de bir kullanıcıdan kullanıcı adı toplamak için kullanabiliriz

Bir kullanıcıdan girdi alabilmeniz, programlarınızı etkileşimli hale getirebileceğiniz anlamına gelir. Kullanacağınız programdaki tüm verileri tanımlamanız yeterli değildir. Bir kullanıcıdan bazı veriler sağlamasını isteyebilirsiniz.

Python 3'te Python dilinde birçok değişiklik yapılmıştır. Bunlar arasında raw_input(), input() olarak yeniden adlandırıldı. Her iki işlev de sys.stdin 'den(“standart girdi” olarak da bilinir) bir parça veri toplar ve bu verileri bir programa döndürür.

Katılımcıların %81'i hissettiklerini belirtti. Bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha eminler. 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 az zaman harcadı.

Yapacağız. bir öğrencinin sanat ödevinde aldığı notu hesaplayan bir program. Ödev 50 üzerindendir ve öğrenciler A, B, C veya Fail notu alabilirler. Başlamak için, kullanıcımızdan harf notunu hesaplayacağımız bir not eklemesini isteyelim:


numerical_grade = int(raw_input(“Bir not girin: ”))

< kullanıyoruz kullanıcıdan bir not almak için code>raw_input(). Kullanıcı, programımızın geri kalanı çalışmadan önce programımıza bir not girmelidir. Biz bir kullanıcının girdiği değeri bir tamsayıya dönüştürün böylece kodumuzda daha sonra sayısal karşılaştırmalar yapabiliriz. Bunun nedeni, raw_input() öğesinin varsayılan olarak bir dize döndürmesidir.

Karşılık gelen harf notunu hesaplamak için bir if ifadesi kullanacağız:

ifnumerik_grade > 40:grade = "A" elif sayısal_grade > 30:grade = "B" elif sayısal_grade > 25:grade = " C" else: grade = "Fail" 

Bir if, iki elif kullanırız, ve kullanıcının programa girdiği sayısal nota göre öğrencinin aldığı harf notunu hesaplamak için başka bir ifade.

Son adımımız konsolda bir mesaj yazdırın kullanıcıyı hesaplamamızın sonuçları hakkında bilgilendiren:

print("Bu öğrenci {} puanla {} notu aldı.".format(grade,numeric_grade)) 

Bu ifade öğrencinin aldığı hem harfi hem de sayısal notu gösterecektir.

Kodumuzu çalıştıralım ve ne olduğunu görelim:

İzleme (en son çağrı son): Dosya "main.py", satır 1,  sayısal_grade = int(raw_input("Bir not girin: ")) NameError: 'raw_input' adı tanımlı değil 

Kodumuz bir hata döndürüyor.




Çözüm

Hata mesajı bize var olmayan bir değere atıfta bulunduğumuzu söylüyor. Programımızı çalıştırmak için Python 3.x kullandığımız için raw_input() mevcut değil.

Kodumuzu düzeltmek için kodumuzu değiştirmemiz gerekiyor. raw_input() bir input() ifadesi içeren ifade:

numerical_grade = int(input("Bir not girin: ")) 

hem raw_input() hem de input() deyimleri işlevsel olarak aynıdır. Bu, kod tabanımızı Python 3.x ile uyumlu hale getirmek için kodumuzda daha fazla değişiklik yapmamız gerekmediği anlamına gelir.


Yapılan bu değişiklikle programımızı çalıştıralım:

Bir not girin : 33 Bu öğrenci 33 puanla B notu aldı. 

Kodumuz öğrencinin notunu başarıyla hesaplıyor.




raw_input İşlevini Yeniden Atama Üzerine Bir Not

Teknik olarak işe yarayan bir çözüm, raw_input() değerini input() işlevine atamaktır.Bunu değişken ataması. Bu, Python 3 kodunuzda raw_input() adlı bir işlevi kullanmanıza olanak tanır.

Düşününüz bu örnek:

raw_input = input

Bu ifade Python'a raw_input() input()'a eşit olmalıdır.

"Python.Engineeringsı hayatıma girdi. en çok onu düzeltti 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 iyi bir çözüm değil çünkü resmi Python 3 belgeleri raw_input() adını input() lehine aşamalı olarak kaldırdı. Python 3 kod tabanında raw_input()'u görürlerse kafaları karışır, bu da geliştirme süresini yavaşlatır.




Sonuç

NameError: name ‘ Python 3'te raw_input() yöntemini kullanmaya çalıştığınızda raw_input’ tanımlanmadı hatası ortaya çıkıyor. Bu hatayı düzeltmek için, programınızdaki tüm raw_input() örneklerini input() işleviyle değiştirin.

Artık bu hatayı profesyonel bir Python kodlayıcısı gibi düzeltmek için ihtiyacınız olan bilgiye sahipsiniz!





raw_input Pythonu: StackOverflow Questions

Tutorials