نیاز به توضیح نیست چنانچه اپلیکیشنی قابلیت دریافت ورودی از سمت کاربر داشته باشد، به مراتب کاربردیتر خواهد بود که در همین راستا برای تعامل با کاربران یکسری فیچرها در زبان برنامهنویسی پایتون گنجانده شده تا چنین امکانی در اختیار دولوپرها قرار گیرد که از آن جمله میتوان فانکشنی به اصطلاح 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
میتواند یک نوع دادۀ استرینگ باشد اما این در حالی است که استرینگ ورودی باید متناظر با یک مقدار عددی باشد و به جای استفاده از حروف یا سایر کاراکترها حتماً کاراکترهای عددی در آن ذکر شود (در آموزشهای آینده با نحوۀ مدیریت چنین خطاهایی آشنا خواهیم شد.)