نوشتن اعلانهای شفّاف
هر بار که از تابع input() استفاده میکنید باید پیامی شفاّف و قابل درک را ضمیمه کنید تا به کاربر بگوید دقیقاً به دنبال چه اطّلاعاتی هستید. هر عبارتی که به کاربر بگوید که چه باید وارد کند، مناسب است. برای مثال:
یک فاصلهی خالی بعد از اعلانهای خود بگذارید (در این مثال بعد از دونقطه) تا اعلان را از پاسخ کاربر جدا کند و محلِّ وارد کردن متن را برای او روشن کند. برای مثال:
گاهی نیاز دارید اعلانی طولانیتر از یک خط بنویسید. مثلاً میخواهید به کاربر بگویید که چرا به دنبال چنین ورودیای هستید. میتوانید اعلان خود را به یک متغیّر نسبت دهید و آن متغیّر را به تابع input() بدهید. با این کار ساختن اعلانهایی در چند خط و سپس نوشتن یک عبارت input() مرتّب، ممکن میشود.
این مثال یکی از روشهای ساختن رشتهی چندخطّی را نشان میدهد. خطّ اوّل بخش اوّل پیام را به متغیّر prompt نسبت میدهد. در خطّ دوم عملگر += رشتهی متغیّر prompt را گرفته و رشتهی جدید را به انتهای آن اضافه میکند.
اعلان اکنون دو خط را در برمیگیرد و همچنان برای وضوح بیشتر یک فاصلهی خالی بعد از علامت سوال قرار داده شده است:
استفاده از int() برای پذیرفتن ورودیهای عددی
هنگامی که از تابع input() استفاده میکنید، پایتون هر آن چه را که کاربر وارد کرده به عنوان رشته تفسیر میکند. این نشستِ مفسّر را در نظر بگیرید که از کاربر سنّ او را میپرسد:
کاربر عدد ۲۱ را وارد میکند امّا زمانی که از پایتون مقدار age را میخواهیم ‘21’ را برمیگرداند که بیانِ رشتهایِ مقدارِ عددی است که وارد شده. ما میدانیم که پایتون ورودی را به عنوان رشته تفسیر کرده زیرا عدد را داخل علامت نقل قول قرار داده است. اگر چاپ کردنِ ورودی همهی کاری باشد که میخواهید انجام دهید، این کد به درستی کار میکند. امّا اگر بخواهید از آن به عنوان عدد استفاده کنید به خطا میخورید:
زمانی که در 1 تلاش میکنید ورودی را با عددی مقایسه کنید، پایتون اعلام خطا میکند زیرا نمیتواند رشته را با یک عدد صحیح مقایسه کند: رشتهی ‘21’ که به age منسوب شده قابلِ مقایسه با مقدارِ عددیِ ۱۸ نیست.
این مشکل را میتوان با بهکارگیری تابع int() مرتفع کرد. این تابع از پایتون میخواهد که با ورودی مثلِ یک مقدارِ عددی رفتار کند. تابع int() نمایش رشتهای یک عدد را به نمایش عددیِ آن تبدیل میکند، همانگونه که اینجا دیده میشود:
در این مثال زمانی که در اعلانِ ورودی ۲۱ را وارد میکنیم، پایتون آن را رشته در نظر میگیرد امّا در ادامه در 1 این مقدار به کمک int()، به نمایش عددی تبدیل میشود. اکنون پایتون میتواند مقایسهی عددی را اجرا کند.
چگونه از int() در یک برنامهی واقعی استفاده کنیم؟ برنامهای را در نظر بگیرید که تعیین میکند آیا قدّ افراد برای سوار شدن به یک ترن هوایی به اندازهی کافی بلند است یا نه:
این برنامه میتواند height را با ۴۸ مقایسه کند زیرا height = int(height) مقدار ورودی را پیش از انجامِ مقایسه به یک نمایش عددی تبدیل میکند. اگر عددِ واردشده بزرگتر از یا مساوی با ۴۸ باشد به کاربر میگوییم که قد او مناسب است:
اگر از ورودیهای عددی برای انجام محاسبات یا مقایسهها استفاده میکنید مطمئن شوید که ابتدا مقدار ورودی را به نمایش عددی تبدیل کردهاید.