آشنایی با فانکشن ()input در زبان برنامه‌نویسی پایتون


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

در واقع، زمانی که فانکشن ()input را فراخوانی می‌کنیم، مفسر پایتون منتظر می‌ماند تا کاربر دیتای مد نظر خود را وارد کند مضاف بر اینکه فانکشن ()input هم قابلیت دریافت آرگومان ورودی را دارا است که معمولاً در قالب استرینگی به منظور توضیح به کاربر برای وارد کردن نوع دیتای ورودی مورد استفاده قرار می‌گیرد و هم می‌توان آن را بدون آرگومان ورودی فراخوانی کرد که برای درک بهتر این موضوع مثال زیر را مد نظر قرار می‌دهیم:

name = input("Please enter your name:")
print("Welcome",name,"!")

همان‌طور که مشاهده می‌کنید، استرینگ «:Please enter your name» را به عنوان آرگومان ورودی به فانکشن ()input داده‌ایم که بدین ترتیب از کاربر می‌خواهیم تا نام خود را وارد کند که با اجرای این دستور استرینگ فوق‌الذکر در خروجی چاپ شده و مفسر پایتون در همان خط منتظر می‌ماند تا کاربر دیتای خود را وارد کند و کلید اینتر را فشار دهد و در ادامه دادۀ ورودی کاربر به عنوان خروجیِ فانکشن ()input در نظر گرفته شده و در متغیر name نگاه‌داری می‌شود و در ادامه مقدار این متغیر به عنوان آرگومان ورودی به فانکشن ()print داده می‌شود که در نهایت خروجی کد فوق پس از دریافت ورودی از کاربر بدین صورت خواهد بود:

Please enter your name: Sahand
Welcome Sahand !

غالباً خروجی نهایی فانکشن ()input یک استرینگ است؛ به عبارت دیگر، هر آنچه که کاربر به عنوان ورودی به این فانکشن می‌دهد به عنوان یک استرینگ در نظر گرفته می‌شود حتی اگر دیتای ورودی از نوع عدد صحیح باشد. در همین راستا، فرض کنید برنامه‌ای بنویسیم که دو عدد صحیح را از کاربر گرفته و در ادامه مجموع آن‌ها را محاسبه کند که برای این منظور کدی به شرح زیر خواهیم داشت:

num1 = input("Please enter the first  number:")
num2 = input("Please enter the second  number:")
sum  = num1 + num2
print(sum)

خروجی کدهای فوق بدین صورت خواهد بود:

Please enter the first  number:25
Please enter the second  number:94
2594

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

حال اگر بخواهیم ورودی‌های کاربر را به عنوان اعداد صحیح مورد استفاده قرار دهیم، باید دیتا تایپ داده‌های ورودی از نوع استرینگ را به نوع دادۀ مد نظر تبدیل نماییم که برای این منظور نیز زبان برنامه‌نویسی پایتون یکسری فانکشن به اصطلاح Built-in دارا است که از آن جمله می‌توان فانکشن ()int را نام برد که برای تبدیل نوع دادۀ استرینگ به عدد صحیح مورد استفاده قرار می‌گیرد به طوری که یک پارامتر ورودی گرفته و مقدار متناظر با آن را تبدیل به عدد صحیح می‌کند که برای این منظور مثال قبل را بدین صورت تغییر می‌دهیم:

num1 = input("Please enter the first  number:")
num2 = input("Please enter the second  number:")
num1 = int(num1) 
num2 = int(num2)
sum  = num1 + num2
print(sum)

اکنون خروجی نهایی این بخش از کدها را در ادامه می‌بینیم:

Please enter first  number:25
Please enter second  number:94
119

همان‌طور که می‌بینید، مقدار عددی مربوط به دو دادۀ ورودی توسط کاربر جمع شده و در خروجی نمایش داده می‌شوند.

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

کد زیر را در نظر بگیرید که در آن از کاربر خواسته‌ایم تا سن خود را وارد کند و در ادامه دیتای ورودی توسط کاربر تبدیل به یک عدد صحیح شده و به متغیر age منتسب می‌شود:

age = int(input("Please enter your age:"))
print("You are",age,"years old.")

اکنون فرض می‌کنیم که بعد از اجرای برنامه، کاربر به جای یک عدد که نشان‌دهندۀ سن او است، به اشتباه نام خود را وارد کند که در این صورت خروجی برنامه بدین صورت خواهد بود:

همان‌طور که می‌بینید، مفسر پایتون اکسپشنی را در معرض دیدمان قرار است بدین دلیل که هر چند آرگومان ورودی فانکشن ()int می‌تواند یک نوع دادۀ استرینگ باشد اما این در حالی است که استرینگ ورودی باید متناظر با یک مقدار عددی باشد و به جای استفاده از حروف یا سایر کاراکترها حتماً کاراکترهای عددی در آن ذکر شود (در آموزش‌های آینده با نحوۀ مدیریت چنین خطاهایی آشنا خواهیم شد.)


لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
کاربر میهمان
alireza vakiliمن یک کاربر مهمان هستم
۱۳۹۸/۰۴/۲۰
سلام : از کاربر دو تا ورودی گرفتیم یکی اسم و یکی عدد حالا چه‌طوری می تونیم اسم رو معادل عددی که واردکرده پرینت کنیم ؟
کاربر میهمان
مهمانمن یک کاربر مهمان هستم
۱۳۹۷/۱۱/۱۵
سلام
مهندس یه مورد که داخل جاهایی از آموزش اشتباه نوشته شده
کلمه پارامتر هستش
چیزی که برای تابع یا متد یا کلاس و ... داخل پرانتز فرستاده میشه بهش میگن آرگومان(ارسالی -- آرگومان)
و چیزی که در تابع یا متد یا کلاس و ... تعریف شده و آرگومان ارسالی به جای اون میشنه بهش میگن پارامتر
پس چیزی که ما میفرستیم آرگومان هست نه پارامتر

..............................................................
و در این مورد که داخل کادر آبی نوشتید
و در صورتی که هیچ پارامتری به عنوان ورودی به فانکشن مذکور داده نشود، مقدار صحیح صفر در خروجی برگردانده خواهد شد.
orkobon
orkobon
۱۳۹۶/۱۱/۰۹
سلام
چطور میتونم این دو فانکشن رو مثل شما پشت هم بنویسم num1 = input("Please enter the first number --")
num2 = input("Please enter the second number --")
وقتی اولی رو مینویسم در جا num1 رو میخواد بعد باید خط دوم رو بنویسیم
لطفا راهنمایی بفرمائید ممنونم
milad
milad
۱۳۹۵/۱۱/۲۳
عالی بود
arman
arman
۱۳۹۵/۰۶/۲۱
سلام از سایت خوبتون ممنونم من امروز اولین برنامم نوشتم وخیلی انرژی گرفتم.
mostafa
mostafa
۱۳۹۵/۰۵/۱۷
سلام
من میخوام یه برنامه بنویسم که از کاربر یه ورودی بگیره
اگه کاربر عدد وارد کرد 1 رو چاپ کنه
اگه حرف وارد کرد 2 رو چاپ کنه
شما گفتید که (اینپوت) هرچی رو بگیره تبدیل به استرینگ میکنه
راه حلی سراغ دارید؟
این کد منه
x =input("inter a number")
if type(x)==int:
print("plz inter a number")
else:
print("welcome")