تابع input() چگونه کار می‌کند؟

بیشتر برنامه‌ها برای این نوشته می‌شوند که مشکل یک کاربر را حل کنند. برای چنین منظوری شما باید برخی اطّلاعات را از کاربر بگیرید. به عنوان یک مثالِ ساده فرض کنید کسی می‌خواهد بداند که آیا برای رای دادن به سنّ قانونی رسیده یا نه. اگر برنامه‌ای برای پاسخ دادن به این پرسش بنویسید، پیش از ارائه‌ی هر پاسخی باید از سن کاربر اطّلاع داشته باشید. این برنامه باید از کاربر بخواهد که سن خود را وارد کند، برنامه به محض دریافت این ورودی، می‌تواند آن را با سن رای‌گیری مقایسه کند تا تعیین کند که آیا سن کاربر مناسب است یا نه و سپس خروجی را گزارش کند.

در این فصل می‌آموزید که چگونه ورودی کاربر را بپذیرید تا برنامه‌ی شما بتواند با آن کار کند. زمانی که برنامه‌ی شما به یک نام احتیاج دارد، می‌تواند آن نام را از کاربر درخواست کند. اگر برنامه‌ی شما به لیستی از نام‌ها نیاز داشته باشد، می‌تواند از کاربر دنباله‌ای از نام‌ها را بخواهد. برای انجام چنین کاری از تابع input() استفاده خواهید کرد.

همچنین یاد خواهید گرفت که چگونه برنامه‌ها را تا زمانی که کاربر بخواهد در حالِ اجرا نگه دارید، تا آن‌ها بتوانند هر چه‌قدر اطّلاعات نیاز دارند وارد کنند؛ و برنامه‌ی شما بتواند با این داده‌ها کار کند. از حلقه‌ی while پایتون برای در حال اجرا نگه‌داشتنِ برنامه‌ها تا زمانِ برقراریِ شرط‌های مشخّصی، استفاده خواهید کرد.

با وجودِ دو قابلیّتِ کار کردن با ورودی کاربر و امکان کنترل مدّت‌زمان اجرای برنامه، می‌توانید برنامه‌های کاملاً تعاملی بنویسید.

تابع input() چگونه کار می‌کند؟

تابع input() برنامه‌ی شما را متوقّف می‌کند و منتظر می‌ماند تا کاربر متنی وارد کند. پایتون به محضِ دریافت ورودیِ کاربر، آن را به متغیّری منسوب می‌کند تا کار کردن با آن ساده شود.

برای نمونه برنامه‌ی زیر از کاربر می‌خواهد تا متنی را وارد کند و سپس همان را به کاربر نمایش می‌دهد:

1
2
3
message = input("Tell me something, and I will repeat it back to you: ")

print(message)

تابع input() تنها یک نشان‌وند می‌پذیرد: اعلان یا دستور‌العمل‌هایی، که می‌خواهیم به کاربر نشان دهیم تا بداند چه باید بکند. در این مثال، هنگامی که پایتون خطّ اوّل را اجرا می‌کند کاربر اعلانِ Tell me something, and I will repeat it back to you را می‌بیند. برنامه منتظر می‌ماند تا کاربر پاسخ خود را وارد کند و پس از فشرده شدن دکمه‌ی ENTER کار را ادامه می‌دهد. پاسخ به متغیّر message منسوب می‌شود و سپس print(message) ورودی را به کاربر برمی‌گرداند:

1
2
3
Tell me something, and I will repeat it back to you: Hello everyone!

Hello everyone!
نکته
Sublime Text و بسیاری دیگر از ویرایشگرها برنامه‌هایی را که از کاربر ورودی می‌خواهند، اجرا نمی‌کنند. می‌توانید از این ویرایشگرها برای نوشتن چنین برنامه‌هایی استفاده کنید امّا باید آن‌ها را در یک ترمینال اجرا کنید.