سلام. مثل همیشه اگه حوصلهی خوندن ندارین میتونین ویدئوی این قسمت رو از یوتیوب یا آپارات کدتراپی مشاهده کنین.
خب، توی این جلسه نگاهی میندازیم به تبدیل دادهها و یکی از فانکشنهای کاربردی پایتون یعنی input رو بررسی میکنیم. زمانی که بخواهیم از کاربر یک مقدار رو بعنوان ورودی بگیریم، از این فانکشن استفاده میکنیم. با یک مثال input رو توضیح میدیم. مثلا برنامهای میخوایم که یک رشته رو بعنوان ورودی میگیره و توی خروجی یه پیام به کاربر نشون میده:
age = input('age = ') print('you are '+ age +'years old.')
زمانی که برنامه رو ران میکنیم، عبارت = age رو توی خروجی نشون میده و منتظر میمونه که کاربر یه مقدار رو بعنوان ورودی بهش بده. به فرض مقدار 10 رو وارد میکنیم ولی میبینیم که پایتون یک خطا نشون میده.
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate str (not "int") to str
جریان چیه؟؟ چرا به مشکل خوردیم؟؟؟
خطای بالا که از نوع TypeError هست داره اینو میگه که یک رشته فقط با یک رشتهی دیگه جمع میشه و نه یک عدد. حرفمو باور ندارید؟
با فانکشن ()type میتونیم نوع هر متغیری رو مشخص کنیم:
type(age)
<'class 'str> رو برمیگردونه که یعنی ورودی ما از جنس رشتهست. (دربارهی کلاسها بعدا صحبت میکنیم)
در واقع اتفاقی که میافته اینه که:
“10” + 1
و خب از نظر سینتکس پایتون این درست نیست. خب راه حل چیه؟ اینکه age رو به یک عدد تبدیل کنیم. اینجاست که پایتون، Type Conversionها رو معرفی میکنه و کارشون اینه که هر چیزی رو به جنس دیگهای تغییر بدن. انواع Type Conversionها:
int() float() bool() str()
برای مثال بالا:
age = input('age = ') new_age = int(age) + 1 print(new_age)
فانکشنهای int و float و str مشخصه که چیکار میکنن. فقط bool نکات ریزی داره که اینجا باهم بررسی میکنیم. اگه ما بخوایم یک عدد یا رشته رو به True و False تبدیل کنیم از کجا تشخیص بدیم که چی صحیح و چی غلط هستش؟
توی پایتون یه مفهومی به اسم Falsy و Truthy مطرح میشه.
انواع Falsyها:
۱ - رشتهی خالی ""
۲ - عدد صفر 0
۳ – None (که نشان دهندهی نبود مقداره و بعدا راجع بهش حرف میزنیم)
زمانی که این مقادیر داخل فانکشن ()bool قرار بگیرن، مقدار False برمیگردونن.
>>> bool("") False >>> bool(0) False >>> bool(None) False