O'ZGARUVCHI TURINI ALMASHTIRISH
Keling quyidagi misolni ko'raylik, maqsadimiz ism va yosh degan ikki
o'zgaruvchini yangi xabar degan o'zgaruvchiga yuklab, "Akobir 36 yoshda" degan
matnni konsolga chiqarish:
ism = 'Akobir'
yosh = 36
xabar = ism + ' ' + yosh + ' yoshda'
print(xabar)
Natija:
TypeError: can only concatenate str (not "int") to str
Afsuski, kutilgan natija o'rniga xatolik chiqdi. Agar xatoni ingliz tilidan tarjima
qilsak, matn (str) va son (int) ni jamlab bo'lmaydi degan ma'no chiqadi.
Demak Pythonda matn (string) va son (int, float) turidagi o'zgaruvchilarni
jamlab bo'lmas ekan. Xo'sh, bunga yechim bormi?
Albatta
.
49
Pythonda bir turdagi o'zgaruvchini boshqa turga o'tkazish mumkin, bu ingliz
tilida
typecasting
detiladi. Buning uchun Pythonda maxsus funksiyalar bor, keling ular
bilan tanishamiz:
str()— int yoki float turidagi sonlarni matnga o'zgartiradi.
int()— matn yoki float ko'rinishidagi qiymatlarni butun songa o'zgartiradi.
Bunda matn butun son ko'rinishida bo'lishi kerak.
float()— matn yoki int ko'rinishidagi qiymatlarni o'nlik songa o'zgartiradi.
Demak, yuqoridagi kod to'g'ri ishlashi uchun 3-qatorni quyidagicha
o'zgartiramiz:
ism = 'Akobir'
yosh = 36
xabar = ism + ' ' + str(yosh) + ' yoshda'
print(xabar)
Natija: Akobir 36 yoshda
str(yosh) kodi yosh degan o'zgaruvchining qiymatini matn ko'rinishida
ko'rsatdi xolos. Asl o'zgaruvchining qiymati sonligicha qoladi. int() va float() ham
huddi shunday ishlaydi.
O'ZGARUVCHI TURINI TEKSHIRISH
Kodimizda o'zgaruvchilar ko'payib ketdi. Yuqoridagi kabi xatolar qilmaslik
uchun ba'zida o'zgaruvchinig turini tekshirish talab qilinadi. Buning uchun type()
funksiyasidan foydalanamiz:
ism = 'Akobir'
yosh = 36
print(type(ism)) # ism degan o'zgaruvchining turini konsolga chiqaramiz
print(type(yosh)) # ism yosh degan o'zgaruvchining turini konsolga chiqaramiz
Natija:
50
Ko’rib turganingizdek, ism nomli o'zgaruvchi 'str' ya'ni matn, yosh esa 'int' son
turida ekan.
Dostları ilə paylaş: |