Kahibaro
Discord Login Register

تبدیل ورودی به عدد

چرا باید ورودی را به عدد تبدیل کنیم؟

تابع input() همیشه مقدار را به صورت رشته (str) برمی‌گرداند؛ حتی اگر کاربر عدد وارد کند.
اما برای انجام محاسبات (جمع، تفریق، مقایسهٔ عددی و …) به عدد واقعی (int یا float) نیاز داریم.
بنابراین باید ورودی را از رشته به عدد تبدیل کنیم.

نمونهٔ مشکل:

age = input("سن خود را وارد کنید: ")
print(age + 1)   # این کد خطا می‌دهد

اینجا age یک رشته است و + 1 روی رشته معنی ندارد.

تابع‌های اصلی برای تبدیل به عدد

تبدیل به عدد صحیح با `int()`

اگر ورودی یک عدد بدون اعشار باشد، می‌توانیم از int() استفاده کنیم.

age_text = input("سن خود را وارد کنید: ")
age = int(age_text)  # تبدیل رشته به عدد صحیح
print("سال بعد، سن شما می‌شود:", age + 1)

می‌توانیم تبدیل را مستقیماً روی input() انجام دهیم:

age = int(input("سن خود را وارد کنید: "))
print("سال بعد، سن شما می‌شود:", age + 1)

نکته‌ها:

مثال‌های معتبر برای int():

مثال‌هایی که خطا می‌دهند:

تبدیل به عدد اعشاری با `float()`

اگر ورودی می‌تواند عدد اعشاری باشد، باید از float() استفاده کنیم.

height_text = input("قد خود را به متر وارد کنید (مثلاً 1.75): ")
height = float(height_text)
print("قد شما:", height, "متر است.")

یا کوتاه‌تر:

height = float(input("قد خود را به متر وارد کنید: "))
print("قد شما:", height, "متر است.")

مثال‌های معتبر برای float():

اگر کاربر چیز غیرعددی بنویسد، مثل "سلام"، باز هم خطا رخ می‌دهد.

تفاوت `int` و `float` در تبدیل ورودی

مثال:

x = int("5")      # نتیجه: 5
y = float("5")    # نتیجه: 5.0
z = float("5.25") # نتیجه: 5.25

اگر مطمئن هستید که ورودی همیشه یک عدد صحیح است (مثلاً سن، تعداد، تعداد کتاب‌ها)، از int() استفاده کنید.
اگر ورودی ممکن است اعشاری باشد (قد، وزن، دما، قیمت)، از float() استفاده کنید.

مثال‌های کاربردی

جمع دو عدد ورودی

a = int(input("عدد اول را وارد کنید: "))
b = int(input("عدد دوم را وارد کنید: "))
result = a + b
print("جمع دو عدد:", result)

اگر بخواهیم اعشاری باشند:

a = float(input("عدد اول را وارد کنید: "))
b = float(input("عدد دوم را وارد کنید: "))
result = a + b
print("جمع دو عدد:", result)

محاسبهٔ میانگین سه نمره

score1 = float(input("نمرهٔ اول را وارد کنید: "))
score2 = float(input("نمرهٔ دوم را وارد کنید: "))
score3 = float(input("نمرهٔ سوم را وارد کنید: "))
average = (score1 + score2 + score3) / 3
print("میانگین نمره‌ها:", average)

استفاده از تبدیل چندگانه در یک خط

می‌توان ورودی را گرفته، تبدیل کرد و استفاده کرد؛ همه در یک خط:

age_next_year = int(input("سن خود را وارد کنید: ")) + 1
print("سال بعد، سن شما:", age_next_year)

فضاهای خالی و تبدیل به عدد

تابع‌های int() و float() معمولاً فضاهای خالی در ابتدا و انتهای رشته را نادیده می‌گیرند:

x = int("   10  ")     # نتیجه: 10
y = float("  3.14  ")  # نتیجه: 3.14

اما اگر وسط عدد کاراکتر اضافه‌ای باشد، خطا رخ می‌دهد:

int("10 سال")   # خطا
float("3,14")   # در پایتون پیش‌فرض خطا، چون از نقطه استفاده می‌شود نه ویرگول

خطای تبدیل و نیاز به ورودی معتبر

اگر مقدار وارد شده قابل تبدیل به عدد نباشد، پایتون خطای ValueError می‌دهد.
در این فصل فقط بدانید:

نمونهٔ خطای تبدیل:

age = int(input("سن خود را وارد کنید: "))  # اگر کاربر 'ده' بنویسد، خطا رخ می‌دهد

ترکیب تبدیل عدد و قالب‌بندی خروجی

تبدیل ورودی به عدد اغلب همراه با قالب‌بندی خروجی استفاده می‌شود تا نتیجه خواناتر باشد.

price = float(input("قیمت هر واحد کالا را وارد کنید: "))
count = int(input("تعداد کالا را وارد کنید: "))
total = price * count
print("مبلغ قابل پرداخت:", total, "تومان")

در فصل مربوط به قالب‌بندی خروجی، روش‌های زیباتر چاپ اعداد (مثلاً با تعداد رقم اعشار مشخص) را خواهید دید؛ در اینجا تمرکز فقط روی تبدیل ورودی به عدد است.

جمع‌بندی

Views: 6

Comments

Please login to add a comment.

Don't have an account? Register now!