Str () funktsiyasi bilan turli xatolaridan qochish
Ko'pincha, siz xabar ichida o'zgaruvchining qiymatidan foydalanishni xohlaysiz. Masalan, kimgadir tug'ilgan kuni bilan tabriklashni yozishingiz mumkin. Kodni shunga o'xshash yozishingiz mumkin:
yoshi = 23
message = "Happy" + yoshi + "rd Birthday!"
print (message)
Siz ushbu kodni tug'ilgan kuningiz bilan tabriklashingiz mumkin bo'lgan baxtli deb yozishni kutishingiz mumkin 23-tug'ilgan kun!
Agar siz ushbu kodni ishlatsangiz, unda xato yuzaga kelishini ko'rasiz:
Traceback (so'nggi qo'ng'iroq oxirgi):
"Birthday.py" fayl, 2-qator,
message = "Happy" + age + "rd Birthday!"
TypeError: 'int' ob'ektini to'g'ridan-to'g'ri str ga o'zgartirib bo'lmaydi
Bu turdagi xato. Bu Python siz foydalanayotgan ma'lumotni taniy olmasligini anglatadi. Ushbu misolda Python u (inte) tamsayı qiymatiga ega o'zgaruvchini ishlatayotganingizni ko'radi, ammo buni qanday talqin qilish kerakligi aniq bo’lmagan qiymat. Python 23 qiymat yoki 2 va 3 belgilar o'zgaruvchining raqamli bo'lishi mumkinligini biladi. Agar satrlar ichida butun sonlardan foydalansangiz shunga o'xshash tarzda, Python-dan integer raqamini belgilar qatori sifatida ishlatishini aniq belgilashingiz kerak. Buni o'zgaruvchini o'rash orqali qilishingiz mumkin str () funktsiyasi, bu Pythonga satr bo'lmagan qiymatlarni satr sifatida ko'rsatishini aytadi:
yoshi = 23
message = "Happy" + str (yoshi) + "rd Birthday!"
print(message)
Python endi 23-sonli qiymatni aylantirishni biladi va tug'ilgan kungi xabarning bir qismi sifatida 2 va 3 belgilarini namoyish etadi. Endi siz kutgan xabarni xatosiz olasiz:
Happy 23rd Birthday!
Python-da raqamlar bilan ishlash ko'pincha to'g'ri. Agar kutilmagan natijalarga erishsangiz, Pythonning tarjima raqamlaringiz yoki raqamli qiymat sifatida qilayotganligini tekshiring, xohlaganingizcha mag'lubiyat qiymati.
Python 2dagi butun sonlar
Python 2 ikkita butun sonni ajratganda biroz boshqacha natija beradi:
python2.7
3/2
1
1,5 o'rniga Python 1ni qaytaradi . Python 2 natijasidagi butun sonlarning bo'linishi natijalari qolgan qismi kesilgan butun sonda namoyon bo’ladi. Natija yaxlitlangan butun son emasligini unutmang; qolgan qismi shunchaki tashlab yuborilgan.
Python 2-da bunday xatti-harakatni oldini olish uchun, ulardan kamida bittasiga raqamlar floatligiga ishonch hosil qiling. Shunday qilib, natija ham suzuvchi bo'ladi:
3/2
1
3.0 / 2
1.5
3 / 2.0
1.5
3.0 / 2.0
1.5
Ushbu bo'linish harakati odamlarda odatda chalkashliklarni keltirib chiqaradi ,Python 3 ga o'rganib qolganlar Python 2 dan foydalanishni boshlashadi yoki aksincha. Agar butun va float sonlarni aralashtiradigan kod yarating, tartibsizliklardan ehtiyot bo'ling.
Do'stlaringiz bilan baham: |