Table of Contents
مفهوم ورودی از کاربر
تا اینجا بیشتر برنامههایی که نوشتید، از قبل در کد، دادهها را مشخص میکردند. اما در برنامههای واقعی، معمولاً لازم است کاربر چیزی را به برنامه "بگوید" تا برنامه بر اساس آن تصمیم بگیرد یا نتیجهای را محاسبه کند.
به این کار میگوییم «گرفتن ورودی از کاربر».
در پایتون، مهمترین ابزار برای گرفتن ورودی از کاربر، تابع input() است.
تابع `input()` چیست؟
تابع input() از کاربر در ترمینال/کنسول یک مقدار میگیرد و آن را به برنامه برمیگرداند.
شکل کلی استفاده:
name = input()وقتی برنامه به این خط میرسد:
- اجرا متوقف میشود.
- کاربر میتواند روی کیبورد چیزی بنویسد.
- وقتی کاربر
Enterرا بزند، متن وارد شده بهصورت یکstr(رشته) به متغیرnameداده میشود.
مثال ساده:
name = input()
print("سلام", name)اگر کاربر بنویسد:
علیخروجی برنامه خواهد بود:
سلام علینمایش پیام راهنما به کاربر (prompt)
اگر فقط input() را بنویسید، کاربر نمیفهمد باید چه بنویسد.
میتوانید داخل پرانتز input() یک متن قرار دهید تا بهعنوان راهنما نمایش داده شود. به این متن میگویند prompt.
name = input("لطفاً نام خود را وارد کنید: ")
print("سلام", name)وقتی برنامه اجرا میشود، کاربر این را میبیند:
لطفاً نام خود را وارد کنید:
و بعد از نوشتن نام و زدن Enter، ادامه برنامه اجرا میشود.
چند نکته:
- متن prompt باید داخل کوتیشن
' 'یا" "باشد. - بعد از متن، معمولاً یک فاصله میگذاریم تا نوشتهٔ کاربر به متن نچسبد:
age = input("سن شما چند سال است؟ ")ورودی همیشه رشته است
خیلی مهم: تابع input() همیشه مقدار واردشده را بهصورت رشته (str) برمیگرداند، حتی اگر کاربر فقط عدد بنویسد.
مثال:
age = input("سن شما چند سال است؟ ")
print(age)
print(type(age))
اگر کاربر بنویسد 20، باز هم نوع age برابر با str است، نه عدد.
خروجی تقریباً چیزی مثل این خواهد بود:
20
<class 'str'>
تبدیل این رشتهها به عدد در بخش «تبدیل ورودی به عدد» (زیرعنوان بعدی) توضیح داده میشود، پس در اینجا وارد جزئیات آن نمیشویم. فقط بهخاطر داشته باشید که خروجی input() همیشه متن است.
ذخیره کردن ورودی در متغیر
برای اینکه بعداً بتوانید از ورودی استفاده کنید، باید آن را در یک متغیر ذخیره کنید:
city = input("در کدام شهر زندگی میکنید؟ ")
print("شما در شهر", city, "زندگی میکنید.")چند مثال دیگر:
first_name = input("نام: ")
last_name = input("نام خانوادگی: ")
print("نام کامل شما:", first_name, last_name)ورودی بدون ذخیره در متغیر
از نظر فنی میتوانید input() را بدون ذخیره کردن هم استفاده کنید، اما معمولاً فایدهٔ زیادی ندارد:
input("برای ادامه Enter را بزنید...")
در اینجا فقط هدف این است که برنامه صبر کند تا کاربر Enter را بزند، و مقدار واردشده مهم نیست.
نحوه رفتار Enter و فاصلهها
هنگام ورود داده:
- وقتی کاربر
Enterرا بزند، ورودی تمام میشود. - فاصلهها (space) که کاربر مینویسد، جزئی از ورودی هستند. مثلاً:
- اگر بنویسد:
علی→ ورودی:"علی" - اگر بنویسد:
علی رضایی→ ورودی:"علی رضایی"
میتوانید این مسئله را با چاپ کردن ورودی ببینید:
text = input("چیزی بنویسید: ")
print("شما نوشتید:", text)چند مثال سادهٔ کاربردی
مثال ۱: سلام به کاربر
name = input("اسم شما چیست؟ ")
print("خوش آمدید,", name, "!")نمونه اجرا:
اسم شما چیست؟ زهرا
خوش آمدید, زهرا !(در فصلهای بعد یاد میگیرید خروجی را زیباتر قالببندی کنید.)
مثال ۲: گرفتن دو ورودی و استفاده از آنها
food = input("غذای مورد علاقهٔ شما چیست؟ ")
color = input("رنگ مورد علاقهٔ شما چیست؟ ")
print("شما", food, "را دوست دارید و رنگ مورد علاقهتان", color, "است.")نامگذاری ورودیها (متغیرها)
چون ورودیها را در متغیر ذخیره میکنید، انتخاب نام مناسب برای متغیر مهم است.
برای مثال:
بد:
x = input("اسم شما چیست؟ ")بهتر:
name = input("اسم شما چیست؟ ")یا برای سن:
age = input("سن شما چند سال است؟ ")نام متغیر باید نشان دهد که چه چیزی را ذخیره میکند. این کار خواندن و درک برنامه را بسیار سادهتر میکند.
چند اشتباه رایج در استفاده از `input()`
۱. فراموش کردن پرانتزها
اشتباه:
name = input
در این حالت شما تابع input را در name ذخیره میکنید، نه مقدار وارد شده توسط کاربر.
درست:
name = input()یا با پیام:
name = input("نام شما؟ ")۲. فراموش کردن کوتیشن در پیام
اشتباه:
name = input(نام شما چیست؟)درست:
name = input("نام شما چیست؟ ")یا:
name = input('نام شما چیست؟ ')تمرینهای پیشنهادی
چند تمرین ساده برای تمرین گرفتن ورودی:
- برنامهای بنویسید که:
- نام کاربر را بگیرد.
- نام خانوادگی کاربر را بگیرد.
- جملهای مثل
سلام رضا محمدیچاپ کند. - برنامهای بنویسید که:
- نام شهر محل تولد کاربر را بگیرد.
- نام شهری که الان در آن زندگی میکند را بگیرد.
- جملهای مثل
شما در شهر تبریز به دنیا آمدهاید و اکنون در شهر تهران زندگی میکنید.
را چاپ کند. - برنامهای بنویسید که:
- از کاربر بخواهد یک جمله دلخواه بنویسد.
- همان جمله را با یک متن توضیحی چاپ کند، مثلاً:
شما این جمله را نوشتید: ...
در فصل بعدی همین فصل (زیرعنوان «تبدیل ورودی به عدد») خواهید دید که چگونه ورودی متنی را به عدد تبدیل کنید تا بتوانید با آن محاسبات عددی انجام دهید.