دریافت ورودی از کاربر در پایتون – مبانی پایتون
در برنامهنویسی، تعامل با کاربر یکی از جنبههای اساسی است. پایتون ابزارهای قدرتمندی برای دریافت ورودی از کاربر و استفاده از آن در برنامهها فراهم میکند. این مقاله به بررسی جامع روشهای دریافت ورودی، تبدیل نوع داده، اعتبارسنجی و مدیریت خطاها میپردازد.
تابع input()
سادهترین و رایجترین روش برای دریافت ورودی از کاربر، استفاده از تابع input() است. این تابع یک رشته (string) را از کاربر دریافت میکند. به عبارت دیگر، هر آنچه کاربر وارد کند، به عنوان یک رشته در نظر گرفته میشود.
name = input("لطفاً نام خود را وارد کنید: ")
print("سلام، " + name + "!")
در این مثال، تابع input() یک پیام (prompt) را به کاربر نمایش میدهد (“لطفاً نام خود را وارد کنید: “) و منتظر میماند تا کاربر چیزی وارد کند و سپس کلید Enter را فشار دهد. آنچه کاربر وارد میکند، به عنوان یک رشته در متغیر name ذخیره میشود. سپس، یک پیام خوشامدگویی با استفاده از نام وارد شده چاپ میشود.
تبدیل نوع داده (Type Conversion)
همانطور که گفته شد، تابع input() همیشه یک رشته را برمیگرداند. اگر نیاز دارید که ورودی کاربر را به نوع دیگری (مانند عدد صحیح، عدد اعشاری یا بولین) تبدیل کنید، باید از توابع تبدیل نوع داده استفاده کنید.
تبدیل به عدد صحیح (Integer)
برای تبدیل یک رشته به عدد صحیح، از تابع int() استفاده کنید.
age_str = input("لطفاً سن خود را وارد کنید: ")
age = int(age_str)
print("شما " + str(age) + " سال دارید.")
در این مثال، ابتدا سن کاربر به عنوان یک رشته دریافت میشود. سپس، تابع int() این رشته را به یک عدد صحیح تبدیل میکند. توجه داشته باشید که اگر رشتهای که به int() داده میشود، قابل تبدیل به عدد صحیح نباشد (مثلاً شامل حروف باشد)، یک خطا (ValueError) رخ میدهد که در بخش مدیریت خطاها به آن خواهیم پرداخت.
تبدیل به عدد اعشاری (Float)
برای تبدیل یک رشته به عدد اعشاری، از تابع float() استفاده کنید.
price_str = input("لطفاً قیمت محصول را وارد کنید: ")
price = float(price_str)
print("قیمت محصول: " + str(price) + " تومان")
این مثال مشابه مثال قبلی است، با این تفاوت که از تابع float() برای تبدیل رشته به عدد اعشاری استفاده میشود.
تبدیل به بولین (Boolean)
تبدیل رشته به مقدار بولین کمی پیچیدهتر است. پایتون به طور مستقیم تابعی برای تبدیل رشته به بولین ندارد. معمولاً، مقادیر خاصی مانند “true”، “false”، “1”، “0”، “yes”، “no” و غیره را به مقادیر بولین True و False نگاشت میکنیم.
answer_str = input("آیا مطمئن هستید؟ (yes/no): ")
answer = answer_str.lower() == "yes"
print("پاسخ شما: " + str(answer))
در این مثال، ابتدا ورودی کاربر به حروف کوچک تبدیل میشود (با استفاده از lower()) و سپس با رشته “yes” مقایسه میشود. اگر برابر باشند، مقدار True به متغیر answer اختصاص داده میشود، در غیر این صورت False.
اعتبارسنجی ورودی (Input Validation)
اعتبارسنجی ورودی به معنای بررسی صحت و معتبر بودن ورودی کاربر است. این کار برای جلوگیری از بروز خطاها و اطمینان از اینکه برنامه به درستی کار میکند، بسیار مهم است. اعتبارسنجی میتواند شامل بررسی نوع داده، محدوده مقادیر، فرمت ورودی و غیره باشد.
بررسی محدوده مقادیر
age_str = input("لطفاً سن خود را وارد کنید (بین 18 تا 100): ")
try:
age = int(age_str)
if 18 <= age <= 100:
print("سن شما معتبر است.")
else:
print("سن وارد شده خارج از محدوده مجاز است.")
except ValueError:
print("ورودی نامعتبر است. لطفاً یک عدد صحیح وارد کنید.")
در این مثال، ابتدا سعی میکنیم ورودی کاربر را به عدد صحیح تبدیل کنیم. اگر این تبدیل موفقیتآمیز باشد، بررسی میکنیم که آیا عدد وارد شده بین 18 تا 100 است یا خیر. اگر در هر مرحله خطایی رخ دهد (مثلاً کاربر یک رشته غیر عددی وارد کند)، یک پیام خطا نمایش داده میشود.
بررسی فرمت ورودی
email = input("لطفاً آدرس ایمیل خود را وارد کنید: ")
if "@" in email and "." in email:
print("آدرس ایمیل معتبر است.")
else:
print("آدرس ایمیل نامعتبر است.")
این مثال یک بررسی ساده برای اطمینان از وجود کاراکتر “@” و “.” در آدرس ایمیل انجام میدهد. این یک اعتبارسنجی کامل نیست، اما میتواند به شناسایی آدرسهای ایمیل نامعتبر کمک کند.
مدیریت خطاها (Error Handling)
هنگام دریافت ورودی از کاربر، احتمال بروز خطا وجود دارد. به عنوان مثال، کاربر ممکن است یک رشته غیر عددی را به عنوان ورودی وارد کند، در حالی که برنامه انتظار یک عدد دارد. برای جلوگیری از توقف برنامه در صورت بروز خطا، باید از مکانیزمهای مدیریت خطا استفاده کنید.
استفاده از try-except
رایجترین روش برای مدیریت خطاها در پایتون، استفاده از بلوکهای try-except است. کد احتمالی که ممکن است خطا ایجاد کند، در بلوک try قرار میگیرد و کد برای رسیدگی به خطا در بلوک except قرار میگیرد.
try:
number = int(input("لطفاً یک عدد وارد کنید: "))
print("شما عدد " + str(number) + " را وارد کردید.")
except ValueError:
print("ورودی نامعتبر است. لطفاً یک عدد صحیح وارد کنید.")
در این مثال، اگر کاربر یک رشته غیر عددی وارد کند، تابع int() یک خطای ValueError ایجاد میکند. این خطا توسط بلوک except ValueError: گرفته میشود و یک پیام خطا به کاربر نمایش داده میشود. به این ترتیب، برنامه به جای توقف، به کار خود ادامه میدهد.
انواع خطاهای رایج
* ValueError: زمانی رخ میدهد که یک تابع سعی میکند یک مقدار را به نوع دادهای تبدیل کند که با آن سازگار نیست (مثلاً تبدیل یک رشته غیر عددی به عدد صحیح).
* TypeError: زمانی رخ میدهد که یک عملیات روی نوع دادهای انجام شود که با آن سازگار نیست (مثلاً جمع کردن یک عدد و یک رشته).
* IndexError: زمانی رخ میدهد که سعی کنید به یک عنصر در یک لیست یا رشته با اندیسی که خارج از محدوده است، دسترسی پیدا کنید.
* KeyError: زمانی رخ میدهد که سعی کنید به یک کلید در یک دیکشنری که وجود ندارد، دسترسی پیدا کنید.
نتیجهگیری
دریافت ورودی از کاربر یکی از مهارتهای اساسی در برنامهنویسی پایتون است. با استفاده از تابع input()، توابع تبدیل نوع داده، اعتبارسنجی ورودی و مدیریت خطاها، میتوانید برنامههایی ایجاد کنید که با کاربر تعامل داشته باشند و به درستی کار کنند. به یاد داشته باشید که اعتبارسنجی ورودی و مدیریت خطاها برای ایجاد برنامههای پایدار و قابل اعتماد بسیار مهم هستند.

بدون دیدگاه