پرسش

چطور یک رشته (string) رو به float یا int تبدیل کنم؟

How do I parse a string to a float or int?

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

1403/06/01
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

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

اینجا یه مثال از کدی که این کار رو انجام میده:

def parse_string(value):
    try:
        # First, try to convert to an integer
        return int(value)
    except ValueError:
        try:
            # If it fails, then convert to float
            return float(value)
        except ValueError:
            # If it fails again, return None or raise an error
            return None
# Example usage:
result = parse_string("123.456")
print(result)  # Output: 123.456
result = parse_string("123")
print(result)  # Output: 123

توی این کد، اول تلاش می‌کنیم رشته رو به عدد صحیح (int) تبدیل کنیم. اگه تبدیل موفقیت‌آمیز بود، همون مقدار برگردونده میشه. اگه به خطا خورد (مثلاً رشته اعشاری باشه)، می‌ریم سراغ تبدیل به float. اگه هر دو تبدیل به خطا خورد، یعنی رشته ورودی اصلاً یه عدد نیست، پس می‌تونی یه مقدار پیش‌فرض مثل None برگردونی یا یه استثنا (Exception) بندازی.

این روش باعث میشه که برنامه‌ت هم انعطاف‌پذیر باشه و هم مطمئن، چون هر دو حالت int و float رو در نظر می‌گیره.

پاسخ: 1403/06/01
آخرین آپدیت: 1403/07/23