سوالی دارید؟
تمایل دارید صفحه اینستاگرام کبیر را مشاهده نمایید؟

محتوای الکترونیکی

صفحه اصلی محتوای الکترونیکی

گرفتن ورودی در پایتون با تابع input

گرفتن ورودی در پایتون با تابع input

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


فهرست محتوای آموزش


دستوری ورودی input در پایتون
o خروجی تابع input
گرفتن داده از کاربر در پایتون
o ورودی رشته در پایتون
o گرفتن عدد از کاربر در پایتون
o گرفتن عدد اعشاری از کاربر
گرفتن چند ورودی در یک خط
o گرفتن چند ورودی با جداکننده (Separator)
o گرفتن چند عدد در ورودی
گرفتن لیست از کاربر در پایتون
o روش اول: استفاده از حلقه برای دریافت لیست از کاربر
o روش دوم: استفاده از سازنده لیست پایتون
جمع بندی: گرفتن ورودی در پایتون


دستوری ورودی input در پایتون


در زبان پایتون به کمک تابع ()input می‌توانیم ورودی مورد نظر را از کاربر دریافت کنیم.
هنگامی که اجرای کد پایتون به تابع ()inputمی‌رسد، مفسر پایتون منتظر می‌ماند تا کاربر ورودی مورد نظر خود را وارد کند. پس از آن برنامه به ادامه اجرای خود خواهد پرداخت.


input()


پس از صدا زده شدن این تابع، کاربر می‌تواند کاراکترهای مورد نظر را در کنسول وارد کرده و با فشرده کلید Enter  اتمام وارد کردن اطلاعات را اعلام کند.
در نسخه 2 پایتون، تابع ()raw_input برای دریافت ورودی از کاربر وجود داشت. در نسخه 3 این تابع حذف شده و ()input جایگزین آن شد. ویژگی‌ها و عملکرد این دو تابع دقیقاً شبیه به هم هستند.


خروجی تابع input


خروجی این تابع یک رشته (String) است. این رشته دقیقا همان ورودی است که کاربر در برنامه وارد کرده است.
نوع خروجی تابع را نمی‌توان تغییر داد. در ادامه روش‌های برای تبدیل نوع داده ورودی تابع input در پایتون را بررسی خواهیم کرد.


گرفتن داده از کاربر در پایتون


ممکن است بخواهیم قبل قبل از دریافت ورودی از کاربر، پیغامی به کاربر نمایش دهیم.
ورودی تابع input یک رشته است. پایتون قبل از منتظر ماندن برای وارد کردن داده‌ها، رشته ورودی را در کنسول چاپ کرده و سپس منتظر دریافت ورودی می‌ماند.
آرگومان ورودی این تابع دلخواه است. یعنی اگر هیچ پیامی برای چاپ به تابع ندهیم، تابع بدون مشکل اجرا خواهد شد.


ورودی رشته در پایتون


همانطور که گفته شده خروجی تابع ()input همیشه یک رشته است.
فرض کنید می‌خواهیم در ابتدای یک برنامه اسم کاربر را پرسیده و به او سلام کنیم. قطعه کد زیر همین کار را انجام می‌دهد.


name = input("Please Enter Your name: ")
print("Hello " + name + "!")


پس از اجرای این برنامه، ابتدا پیغامی مبنی بر وارد کردن نام نمایش داده می‌شود. پس از وارد کردن اسم، پیام سلام چاپ خواهد شد.
متن زیر نمونه‌ای از اجرای این برنامه است.


Please Enter Your name: Omid
!Hello Omid


گرفتن عدد از کاربر در پایتون


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


num = input("Enter Number: ")
print(num**2)


اما با اجرای این برنامه خواهیم دید که پس از وارد کردن عدد، با خطایی مواجه خواهیم شد.!


معنی این خطا چیست؟


این خطا به این معنی است که عملگر توان برای عدد و رشته غیر قابل اجراست! چون عددی که از ورودی گرفتیم به صورت رشته ذخیره شده به این خطا برمی‌خوریم!
اما راه حل چیست؟
برای رفع این مشکل، می‌توانیم مقدار ورودی را به نوع داده‌ای مورد نظر خود تبدیل کنیم.
مثلاً اگر بخواهیم مقدار متغیر num  را به صورت عدد صحیح (Integer) داشته باشیم، باید از تابع ()int در پایتون کمک بگیریم.
این تابع یک مقدار ورودی (رشته‌ی صرفاً حاوی عدد یا یک نوع عددی دیگر) را گرفته و یک عدد صحیح به ما برمی‌گرداند.
مثلا اگر رشته '123'  را داشته باشیم، با صدا زدن int('123')  عدد 123  را خواهیم داشت.


int('123')


پس برنامه ما برای گرفتن عدد ورودی در پایتون چیزی شبیه کد زیر خواهد شد.


num = input("Enter Number: ")
print( int(num)**2 )


گرفتن عدد اعشاری از کاربر


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



گرفتن چند ورودی در یک خط


گاهی اوقات نیاز داریم در یک خط و یک بار ورودی گرفتن، چندین مقدار مختلف را به عنوان ورودی از کاربر دریافت کنیم.
مثلاً فرض کنید می‌خواهیم نام و نام خانوادگی کاربر را به صورت مجزا از هم دریافت کنیم.


گرفتن چند ورودی با جداکننده (Separator)


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


name, family = input("Enter Your name: ").split()


پس از اجرا، مقدار زیر را به عنوان ورودی به برنامه می‌دهیم.


Omid Aghababaei


و در انتها مقادیر ذخیره شده در متغیرها را چاپ می‌کنیم. مقادیر چاپ شده به صورت کامنت در کد زیر مشخص شده‌اند.


print(name)
print(family)

Omid#
Aghababaei#


گرفتن چند عدد در ورودی


به کمک تابع ()split می‌توان هر نوع جداکننده‌ای برای مقدار ورودی مشخص کرد.
اگر بخواهیم سه عدد مختلف را به کمک علامت , از هم متمایز کرده و دریافت کنیم؛ می‌توان از قطعه کد زیر استفاده کرد.


x, y, z = input( "Enter Numbers: " ).split(',')


ورودی نمونه و مقادیر ذخیره شده در هر متغیر پایتونی به صورت زیر خواهد بود.


Enter Numbers: 21,25,23

'x = '21#
'y = '25#
'z = '23#


البته توجه کنید که مقادیر ذخیره شده به صورت String  هستند و برای تبدیل آن‌ها به عدد می‌توان از تابع ()int کمک گرفت.


گرفتن لیست از کاربر در پایتون


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


روش اول: استفاده از حلقه برای دریافت لیست از کاربر


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


data_list = [ ]

while True:
    data = input()
    :if data == "/"
        break
    data_list += [data]

print(data_list)


در این مثال، با وارد کردن علامت / گرفتن ورودی به پایان می‌رسد.


روش دوم: استفاده از سازنده لیست پایتون


در این روش به کمک روش دریافت چند ورودی در یک خط و سازنده لیست در پایتون تعداد نامشخصی داده را در یک خط دریافت می‌کنیم.
فرض کنید می‌خواهیم تعدادی عدد صحیح را دریافت کرده و در لیست data_list  ذخیره کنیم.
قطعه کد زیر این کار را برای ما انجام خواهد داد.


data_list = [ int(x) for x in input("Enter multiple value: ").split() ]


جمع بندی: گرفتن ورودی در پایتون


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

0 نظر


لطفا وارد شوید و نظر خود را ثبت نمایید.

بهترین ها

  نام تعداد آزمون میزان موفقیت
Photo َAmeneh Darvishzadeh 1 100/00 %
Photo Mehrad Hashemi 1 100/00 %
Photo Noushmehr Norsobhi 1 100/00 %
Photo محمدحسین میرزایی 1 100/00 %
Photo مهدی حسین پور آقائی 1 100/00 %
Photo Farnoush Toghiany 21 98/36 %
Photo zahra namdari 46 98/21 %
Photo یاسمن محمدی پور 4 98/08 %
Photo Tara Mohammadi 3 96/43 %
Photo yasaman mohamadipur 51 95/86 %
Photo مهدی هنرمند 1 95/24 %
Photo محمدجواد ملائی اردستانی 3 94/44 %
Photo Arzhang Saberi 4 93/33 %
Photo Soheila Karimi 124 92/73 %
Photo aram farhmand 10 92/31 %
Photo یاشار اسکندری 98 91/14 %
Photo عباس پورمیدانی 1 90/00 %
Photo پریسا سلوکی شهرضایی 72 89/49 %
Photo ارشیا قلمکاری 33 89/23 %
Photo Matin Azimipour 30 88/17 %