ورودی و نوع دادهها (Input and Types)
input() به برنامهت اجازه میده یه سؤال بپرسه، ولی جواب همیشه بهصورت متن برمیگرده. نوعهای اصلی داده رو یاد میگیری و اینکه چطور بینشون تبدیل کنی، که دیگه "7" + "3" بهت 73 نده.
پرسیدن از کاربر
input() یه سؤال میپرسه و منتظر میمونه
name = input("Your name? ") متن سؤال رو نشون میده، منتظر میمونه کاربر یه چیزی تایپ کنه و Enter بزنه، بعد همون چیزی رو که تایپ کرده پس میده، که توی name نگه داشته میشه. فاصلهی آخر متن سؤال باعث میشه جواب به علامت سؤال نچسبه.
اگه سارا جلوی سؤال اسمش رو تایپ کنه، حالا name مقدار "Sara" رو داره و برنامه میره سراغ خط بعد.
name = input("اسمت چیه؟ ")
print("سلام، " + name)اسمت چیه؟ سارا
سلام، سارااینجا کاربر «سارا» رو تایپ کرده و Enter زده. خط اول خروجی متن سؤاله و جلوش چیزیه که سارا تایپ کرده؛ خط دوم رو خود برنامه چاپ کرده. توی اپ این مثال ثابته، برای همین جوابی که تایپ شده برات نشون داده شده.
چهار نوع پایه
هر مقداری یه نوع داره
پایتون حواسش هست چه جور مقداری رو نگه داشته. چهار تایی که بیشتر از همه باهاشون کار داری: int، عدد صحیح مثل 7؛ float، عدد اعشاری مثل 7.5؛ str، متن بین گیومه مثل "7"؛ و bool (بولی)، که فقط True یا Falseـه. نوع مقدار تعیین میکنه عملگرها چیکار کنن: + دو تا عدد رو جمع میکنه ولی دو تا رشته رو به هم میچسبونه. type(x) بهت میگه x از کدوم نوعه.
type(7.5) نشون میده <class 'float'> و type("7") نشون میده <class 'str'>.
خودت رو امتحان کن
هر مقدار رو به نوعش وصل کن
جواب رو ببین
- 7 → int
- 7.5 → float
- "7" → str
- True → bool
نکتهی اصلی
input() همیشه متن پس میده
هر چی کاربر تایپ کنه بهصورت رشته میرسه، حتی اگه فقط رقم باشه. 7 تایپ کنی، "7" میگیری، یعنی کاراکتر، نه عدد. برای یه اسم مشکلی نیست، ولی توی حسابوکتاب دردسر میشه: + روی دو تا رشته اونها رو به هم میچسبونه بهجای اینکه جمع کنه.
a = "7" و b = "3"، درست همونطوری که دو تا input() بهت میدن: a + b میشه "73".
خودت رو امتحان کن
a = "7"
b = "3"
print(a + b)73107 37 + 3
جواب رو ببین
73قدمبهقدم ببین

input()"7" و "3" رو بهصورت متن تحویل میدهکاربر اول 7 و بعد 3 رو تایپ میکنه. input() هر کدوم رو میفرسته توی یه جعبهی جدا، a و b، و مقدارها با گیومه و یه برچسب کوچیک str کشیده شدن. رقمهایی که با کیبورد تایپ میشن هم بهصورت متن میرسن.

a + bاونها رو میچسبونه و میشه "73"زیر یه خط،
a + bیه جعبه میده که توش "73"ـه، هنوز با برچسب str. با دو تا رشته، + جمع نمیکنه: کاراکترها رو پشت سر هم میچسبونه، اول 7 بعد 3.
int()"7" و "3" رو تبدیل میکنه به 7 و 3هر رشته از روی یه فلش int() رد میشه و سمت راست بهصورت یه عدد ساده درمیاد، بدون گیومه و با برچسب int. جعبههای سمت چپ هنوز "7" و "3" رو دارن: int() یه مقدار جدید پس میده و اصلی رو دست نمیزنه.

7 + 3میشه 10، وint("7.5")خطا میدهحالا
7 + 3واقعاً جمع میکنه: جعبهاش 10 رو نشون میده با برچسب int، کنار همون "73" قبلی. پایینتر، کنارint("7.5")یه ضربدر نارنجی و یه برچسب ValueError هست: متنی که عدد صحیح نیست نمیتونه int بشه، پس برای اعشار از float() استفاده کن.
خودت رو امتحان کن
a = int("7")
b = int("3")
print(a + b)10737 + 3خطا
جواب رو ببین
10print(int("7") + 1)
print(float("7.5"))
print(str(7) + "3")
print(int(7.9))8
7.5
73
7int() متن رو به عدد صحیح تبدیل میکنه و float() به عدد اعشاری. str() برعکس کار میکنه، از عدد به متن، برای همین خط ۳ "7" و "3" رو به هم میچسبونه. خط آخر خیلیها رو غافلگیر میکنه: int(7.9) میشه 7، چون int() قسمت اعشاری رو میبُره؛ گرد نمیکنه.
bill = float(input("مبلغ؟ "))
tip = bill * 0.1
print(f"انعام: {tip}")مبلغ؟ 40
انعام: 4.0یه ماشینحساب انعام. کاربر 40 رو تایپ کرده. وقتی input() رو توی float() میذاری، جواب همون لحظه تبدیل میشه، پس bill عدد 40.0 رو داره و حساب درست کار میکنه. همین الگو با int() راه معمول پرسیدن یه عدد صحیحه: age = int(input("Age? ")).
خودت رو امتحان کن
برنامهی نگار int("7.5") رو اجرا میکنه. چی میشه؟
- 7 میده
- 8 میده
- با ValueError متوقف میشه
- 7.5 میده
جواب رو ببین
با ValueError متوقف میشه
درسته. int() فقط متنی رو قبول میکنه که عدد صحیح باشه، پس "7.5" برنامه رو با ValueError: invalid literal for int() with base 10: '7.5' متوقف میکنه. float("7.5") کار میکرد.
خودت رو امتحان کن
age = ____(input("Age? "))
print(age + 1)int · str · input · print
جواب رو ببین
int
درسته. int() متن تایپشده رو به عدد صحیح تبدیل میکنه، پس age + 1 واقعاً حساب میکنه: اگه 30 تایپ کنی، 31 چاپ میشه.
مرور درس
input("prompt")متن سؤال رو نشون میده، منتظر Enter میمونه و چیزی رو که کاربر تایپ کرده پس میده.- چهار نوع پایه int (7)، float (7.5)، str ("7") و bool (True/False) هستن؛
type()میگه کدومه. - input() همیشه str پس میده، پس دو تا عدد تایپشده با + میشن "73"، نه 10.
int()وfloat()وstr()تبدیل میکنن؛ الگوی معمولage = int(input("Age? "))ـه.int("7.5")یه ValueErrorـه، ولیint(7.9)بهجای گرد کردن میبُره و میشه 7.