پرش به محتوا
نوین هاست
  • سرور مجازی
  • درباره ما
  • تماس با ما
  • بازارچه
  • دانشنامه
نوین هاست
  • سرور مجازی
    • برگشت
    • سرور مجازی ایران
      • برگشت
      • سرور مجازی برج میلاد
      • سرور مجازی زیرساخت
    • سرور مجازی اروپا
      • برگشت
      • سرور مجازی المان
      • سرور مجازی انگلیس
      • سرور مجازی فرانسه
      • سرور مجازی اتریش
      • سرور مجازی هلند
      • سرور مجازی بلغارستان
      • سرور مجازی مجارستان
      • سرور مجازی دانمارک
      • سرور مجازی سوئد
      • سرور مجازی جزیره من
      • سرور مجازی جمهوری چک
      • سرور مجازی ایتالیا
      • سرور مجازی فنلاند
      • سرور مجازی یونان
      • سرور مجازی سوئیس
      • سرور مجازی ایسلند
      • سرور مجازی کرواسی
      • سرور مجازی اسپانیا
    • سرور مجازی آسیا
      • برگشت
      • سرور مجازی ترکیه
      • سرور مجازی سنگاپور
      • سرور مجازی مالزی
      • سرور مجازی شیلی
      • سرور مجازی هنگ کنگ
      • سرور مجازی امارات
      • سرور مجازی ژاپن
      • سرور مجازی روسیه
    • سرور مجازی آمریکا
      • برگشت
      • سرور مجازی امریکا
      • سرور مجازی کانادا
    • سایر VPS ها
      • برگشت
      • سرور مجازی استرالیا
      • سرور مجازی رایگان
      • سرور مجازی اقتصادی
      • سرور مجازی ترید و بایننس
      • سرور مجازی با کارت گرافیک
      • سرور مجازی نیجریه
      • سرور مجازی بورس
      • سرور مجازی کلاس آنلاین
      • سرور مجازی کاهش پینگ
      • سرور مجازی والتر
      • سرور مجازی فارکس
      • سرور مجازی میکروتیک
      • سرور مجازی NVME
  • سرور اختصاصی
    • برگشت
    • سرور اختصاصی ایران
      • برگشت
      • سرور اختصاصی برج میلاد
      • سرور اختصاصی زیرساخت
    • سرور اختصاصی اروپا
      • برگشت
      • سرور اختصاصی آلمان
      • سرور اختصاصی ترکیه
      • سرور اختصاصی فنلاند
      • سرور اختصاصی هلند
      • سرور اختصاصی انگلیس
      • سرور اختصاصی فرانسه
    • سرور اختصاصی آمریکا
      • برگشت
      • سرور اختصاصی آمریکا
      • سرور اختصاصی کانادا
    • کولوکیشن
      • برگشت
      • آسیاتک
      • زیرساخت
  • هاست
    • برگشت
    • هاست دانلود
    • هاست نامحدود
    • هاست وردپرس
    • هاست ویندوز ایران
  • نوین پلاس +
  • پنل کاربری ارتباط با ما
  • سرور مجازی
  • سرور مجازی ایرانسرور مجازی حرفه ای از ایران
  • سرور مجازی اروپاپایداری و کیفیت ، سرعت بالا
  • سرور مجازی آسیاوب سرور لایت اسپید و امنیت و سرعت بالا
  • سایر VPS هابهینه برای فروشگاه های وردپرسی
  • سرور مجازی زیرساخت
    • سرور مجازی برج میلاد
  • سرور مجازی المان
    • سرور مجازی فرانسه
    • سرور مجازی سوئد
    • سرور مجازی اتریش
    • سرور مجازی اسپانیا
    • سرور مجازی انگلیس
    • سرور مجازی ایتالیا
    • سرور مجازی ایسلند
    • سرور مجازی بلغارستان
    • سرور مجازی سوئیس
    • سرور مجازی جزیره من
    • سرور مجازی جمهوری چک
    • سرور مجازی فنلاند
    • سرور مجازی دانمارک
    • سرور مجازی مجارستان
    • سرور مجازی هلند
    • سرور مجازی یونان
  • سرور مجازی شیلی
    • سرور مجازی روسیه
    • سرور مجازی ترکیه
    • سرور مجازی مالزی
    • سرور مجازی ژاپن
    • سرور مجازی سنگاپور
    • سرور مجازی هنگ کنگ
    • سرور مجازی امارات
  • سرور مجازی کانادا
    • سرور مجازی امریکا
    • سرور مجازی نیجریه
    • سرور مجازی استرالیا
    • سرور مجازی NVME
    • سرور مجازی با کارت گرافیک
    • سرور مجازی رایگان
    • سرور مجازی ترید و بایننس
    • سرور مجازی فارکس
    • سرور مجازی کلاس آنلاین
    • سرور مجازی میکروتیک
    • سرور مجازی والتر
    • سرور مجازی NVME
    • سرور مجازی اقتصادی
  • سرور اختصاصی
  • سرور اختصاصی ایرانمنابع کاملا اختصاصی و قدرتمند
  • سرور اختصاصی اروپابا ip اختصاصی از بهترین کشور ها
  • سرور اختصاصی آمریکاup time 99.99%
  • سایر VDS ها
  • برج میلاد
    • زیرساخت
  • سرور اختصاصی آلمان
    • سرور اختصاصی انگلیس
    • سرور اختصاصی ترکیه
    • سرور اختصاصی فرانسه
    • سرور اختصاصی فنلاند
    • سرور اختصاصی هلند
  • سرور اختصاصی آمریکا
    • سرور اختصاصی کانادا
  • کولوکیشن
  • آسیاتک
  • زیرساخت
  • هاست
  • دامنه
  • نوین پلاس +
021-49624 ورود / عضویت
لینوکس

راهنمای لینوکس

70
  • اجرای دستورات لینوکس در ویندوز
  • راه اندازی سایت در سرور لینوکس
  • IP شناور در اوبونتو و دبیان
  • بازیابی رمز root
  • آموزش بکاپ از سرور لینوکس
  • آموزش اجرای دستور از راه دور
  • ایجاد یوزر در لینوکس
  • تفاوت ipv4 با ipv6 چیست
  • دستور tar لینوکس
  • کانفیگ IPv6 در لینوکس
  • بکاپ گیری از سرور لینوکس
  • راه اندازی سایت در سرور
  • نصب فایروال در لینوکس
  • لیست کردن کاربران در لینوکس
  • پارتیشن بندی در لینوکس
  • بش bash چیست؟
  • آموزش تغییر نام فایل در لینوکس
  • آموزش نصب آلمالینوکس
  • آلمالینوکس
    • تبدیل Centos به AlmaLinux
    • نصب Visual Studio Code در آلمالینوکس
    • نصب پایتون روی آلمالینوکس
    • نصب Node.js در AlmaLinux
  • دبیان
    • ارتقا دبیان
  • اوبونتو
    • نصب NextCloud در اوبونتو
    • فعال کردن SSH اوبونتو
    • نصب ماینکرافت روی اوبونتو
    • نصب کاساندرا Cassandra در اوبونتو
    • آموزش نصب اوبونتو
    • نصب Graylog در اوبونتو
    • نصب Redis در اوبونتو
    • نصب Maven در اوبونتو
    • نصب تامکت در اوبونتو
    • آموزش نصب Ghost CMS در ubuntu
    • نصب GitLab در اوبونتو
    • نصب GCC در اوبونتو
    • نصب جاوا در اوبونتو
    • نصب و راه اندازی Bind DNS Server اوبونتو
    • نصب جنکینز در اوبونتو
    • نصب وردپرس در اوبونتو
    • نصب Oh My Zsh در اوبونتو
    • نصب پرومتئوس در اوبونتو
    • نصب Kubectl در اوبونتو
    • نصب PyTorch در اوبونتو
    • حذف داکر در اوبونتو
    • نصب آناکوندا
    • آموزش نصب Wine
    • آموزش نصب آپاچی کافکا
    • نصب Xrdp در اوبونتو
    • نصب وایرشارک در اوبونتو
    • آموزش نصب Go در اوبونتو
    • آموزش نصب MariaDB در اوبونتو
    • آموزش نصب Ansible
    • نصب درایور انویدیا در اوبونتو
    • آموزش نصب Hadoop
    • آموزش نصب Terraform
    • نصب و کانفیگ SSH در Ubuntu
    • نصب KVM در Ubuntu
    • نصب گوگل کروم در ubuntu
    • آموزش نصب گرافانا
    • چک کردن نسخه ubuntu
    • آموزش نصب phpMyAdmin در اوبونتو
    • آموزش نصب Postman
    • نصب داکر در اوبونتو
    • نصب Redis در اوبونتو
    • نصب MySQL در اوبونتو
    • نصب و کانفیگ آپاچی در اوبونتو
    • کران جاب در اوبونتو
    • ارتقا اوبونتو
    • نصب MongoDB در اوبونتو
    • نصب محیط گرافیکی در اوبونتو

تحقیق و توسعه

8
  • آموزش Portainer داکر
  • پاک کردن کش DNS
  • افزایش امنیت سرور
  • آموزش لود بالانسینگ
  • پیکربندی SSL در PostgreSQL
  • پایتون
    • ترکیب دو لیست در پایتون
    • تبدیل رشته به عدد در پایتون
    • معکوس کردن لیست در پایتون

سوالات متداول

4
  • رید (RAID) چیست؟
  • عمومی
    • ترافیک مورد نیاز سایت
    • SELinux چیست؟
    • محافظت در برابر حملات DDoS
View Categories
  • خانه
  • مستدات
  • تحقیق و توسعه
  • پایتون
  • تبدیل رشته به عدد در پایتون

تبدیل رشته به عدد در پایتون

زمان مطالعه: 4 دقیقه

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

تبدیل رشته به عدد اعشاری (Float) #

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

  1. با استفاده از float()تابع.
  2. با استفاده از Decimal()تابع.
  3. استفاده از ماژول ‘ast’ برای ارزیابی تحت‌اللفظی.
  4. تبدیل رشته به اعشار با استفاده از Numpy
  5. با استفاده از json.loads().
  6. با استفاده از یک تابع سفارشی.

حالا بیایید هر یک از این روش‌ها را با جزئیات بیشتری بررسی کنیم.

استفاده از تابع float() #

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

string_number  =  "13.86"

float_number  =  float(string_number)

print(float_number)

print(type(float_number))

خروجی:

تبدیل رشته به عدد در پایتون
تبدیل رشته به عدد در پایتون

همانطور که می‌بینید، تابع float مقداری از را برمی‌گرداند <class 'float'>. با این حال، اگر مقدار ورودی ارسالی به آن یک عدد اعشاری معتبر نباشد، تابع یک خطای ValueError برمی‌گرداند. برای مثال، به بلوک کد زیر نگاه کنید.

string_number  =  "invalid float"
float_number  =  float(string_number)
print(float_number)

print(type(float_number))

خروجی:

تبدیل رشته به عدد در پایتون
بنابراین، استفاده از مکانیزم‌های مناسب مدیریت خطا مانند بلوک‌های try-except هنگام کدنویسی بسیار مهم است. این رویکرد بسیار مفید است، به خصوص هنگام تبدیل ورودی‌های کاربر، زیرا نمی‌توانید پیش‌بینی کنید که کاربر چه نوع ورودی‌ای وارد خواهد کرد. مثال زیر نحوه استفاده از این float()تابع برای ورودی‌های کاربر را به بهترین شکل نشان می‌دهد.

user_input  =  input("Enter a number: ")
try:
    float_number  =  float(user_input)
    print("Valid float:", float_number)
except  ValueError:
    print("This is not a valid floating-point number.")

استفاده از تابع Decimal() #

در پایتون، برای سناریوهایی که نیاز به دقت و صحت بالا در محاسبات ممیز شناور دارند، Decimal()می‌توان از تابع ماژول اعشاری استفاده کرد. نکته مهم در مورد این Decimal()تابع این است که در مقایسه با تابع داخلی float()که گاهی اوقات می‌تواند به دلیل نمایش ممیز شناور دودویی، خطای کوچکی ایجاد کند، دقیق‌تر است. این تابع یک رشته یا یک عدد را به عنوان آرگومان می‌گیرد و یک شیء اعشاری را برمی‌گرداند که دقیقاً عدد اعشاری مشخص شده را نشان می‌دهد.

from  decimal  import  Decimal

string_number  =  "13.86"
decimal_number  =  Decimal(string_number)
print(decimal_number)
print(type(decimal_number))

خروجی:

تبدیل رشته به عدد در پایتون
همانطور که در تصویر بالا نشان داده شده است، تابع Decimal() مقداری از را برمی‌گرداند <class 'decimal.Decimal'>. اگر مقدار ورودی ارسالی به Decimal() یک عدد معتبر نباشد، مشابه float()تابع، خطای ValueError یا InvalidOperation را ایجاد می‌کند.

این Decimal()تابع به ویژه زمانی مفید است float()که به دقت بیشتری در محاسبات اعشاری، مانند محاسبات مالی یا محاسبات علمی، نیاز دارید.

استفاده از ماژول ‘ast’ برای ارزیابی تحت‌اللفظی #

روش دیگر برای تبدیل یک رشته به اعشاری، استفاده از ماژول ast (Abstract Syntax Trees) است. هدف اصلی این ast.literal_eval()تابع، ارزیابی رشته‌های حاوی لیترال‌های پایتون است. با این حال، می‌توان از آن برای تبدیل رشته‌ها به اعشاری نیز استفاده کرد، مشروط بر اینکه رشته‌های ارسالی به آن فقط حاوی یک عدد اعشاری باشند. در چنین مواردی، این روش شیء اعشاری متناظر پایتون را برمی‌گرداند. بیایید مثالی از ast.literal_eval()عملکرد تابع را ببینیم.

import  ast

input_string  =  "33.3"
float_number  =  ast.literal_eval(input_string)
print(float_number)
print(type(float_number))

خروجی:

تبدیل رشته به عدد در پایتون
همانطور که در مثال بالا نشان داده شده است، ast.literal_eval()تابع رشته “۳۳.۳” را به عنوان یک عدد اعشاری ارزیابی می‌کند و نوع داده float را ارائه می‌دهد.

تبدیل رشته به اعشار با Numpy #

به عنوان یک توسعه‌دهنده پایتون، ممکن است قبلاً نام NumPy را شنیده باشید . این یک کتابخانه محبوب پایتون برای محاسبات علمی است. این کتابخانه به طور گسترده برای عملیات ریاضی پیشرفته، به خصوص هنگام کار با آرایه‌ها و ماتریس‌ها، استفاده می‌شود. اگر قصد دارید از NumPy برای پروژه بعدی خود استفاده کنید، ضروری است که بدانید چگونه رشته‌ها را با این کتابخانه به اعشار تبدیل کنید.

Numpy شامل یک نوع داده به نام numpy.float64 است که اعداد اعشاری با دقت مضاعف را نشان می‌دهد. همچنین می‌توانید از این نوع داده برای تبدیل مقادیر رشته‌ای به اعداد اعشاری استفاده کنید. در اینجا مثالی از نحوه انجام این کار آورده شده است.

import  numpy  as  np

my_value  =  "64.9512"
float_number  =  np.float64(my_value)
print(float_number)
print(type(float_number))

خروجی:

تبدیل رشته به عدد در پایتون
این قطعه کد رشته “۶۴.۹۵۱۲” را به یک متغیر float64 از نوع NumPy تبدیل می‌کند. NumPy به طور خاص برای مدیریت آرایه‌هایی از مقادیر مفید است، و این آن را به انتخابی عالی برای تبدیل چندین رشته به اعداد اعشاری در زمینه محاسبات عددی تبدیل می‌کند.

مشابه تابع float()، استفاده از numpy.float64 برای تبدیل رشته‌ای که نشان‌دهنده یک عدد اعشاری معتبر نیست، منجر به خطای ValueError خواهد شد.

استفاده از json.loads() #

این یکی دیگر از ساده‌ترین روش‌ها برای تبدیل رشته به اعشار در پایتون است. با این حال، بیایید برای هدف این آموزش، آن را نیز بررسی کنیم. این روش هنگام کار با داده‌های JSON مفید است، که در تعاملات API بسیار رایج است.

این json.loads()عملکرد ماژول JSON پایتون هنگام کار با داده‌ها در قالب JSON ضروری است. این عملکرد با فراهم کردن امکان تبدیل رشته‌ای با قالب JSON به یک دیکشنری پایتون، مزیت قابل توجهی را ارائه می‌دهد. همچنین دستکاری آسان داده‌ها را تسهیل می‌کند.

وقتی مقادیر JSON حاوی اعداد اعشاری را ارسال می‌کنید، json.loads()به طور خودکار آنها را به نوع داده float تبدیل می‌کند. در اینجا یک مثال آورده شده است.

import  json

json_string  =  '{"temperature": 23.5}'
python_data  =  json.loads(json_string)
temperature  =  python_data['temperature']

print(temperature)
print(type(temperature))

خروجی:

تبدیل رشته به عدد در پایتون
این مثال نحوه‌ی json.loads()تجزیه‌ی یک رشته‌ی JSON و تبدیل مقدار عددی “۲۳.۵” از نوع رشته به عدد اعشاری (float) را نشان می‌دهد. اگر رشته‌ی JSON ساختار نادرستی داشته باشد یا حاوی مقادیر عددی با قالب‌بندی نامناسب باشد، این تابع خطای json.JSONDecodeError را ایجاد می‌کند.

با استفاده از یک تابع سفارشی #

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

بیایید نگاهی به یک قطعه کد نمونه برای پیاده‌سازی منطق سفارشی برای تبدیل رشته به اعشار بیندازیم.

def  string_to_float(string):
    number  =  0.0
    
    # Check if the string represents a negative number
    is_negative  =  string[0] ==  '-'

    # Find the position of the decimal point
    decimal_position  =  string.find('.')

    # If there is no decimal point, treat it as an integer part
    if  decimal_position  ==  -1:
        decimal_position  =  len(string)

    # Convert the integer part
    for  char  in  string[:decimal_position]:
        if  char.isdigit():
            number  =  number  *  10  + (ord(char) -  ord('0'))

    # Convert the fractional part
    fractional_part  =  0.1
    for  char  in  string[decimal_position+1:]:
        if  char.isdigit():
            number  += (ord(char) -  ord('0')) *  fractional_part
            fractional_part  *=  0.1

    # Apply negative sign if needed
    return  -number  if  is_negative  else  number

# Example usage
string_number  =  "123.45"
converted_number  =  string_to_float(string_number)
print(converted_number)
print(type(converted_number))

خروجی:

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

سرور فنلاند

نتیجه‌ گیری #

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

Updated on آذر ۱۸, ۱۴۰۴

نظر شما چیست؟!

  • Happy
  • Normal
  • Sad

Related Docs

  • ترکیب دو لیست در پایتون
  • تبدیل رشته به عدد در پایتون
  • معکوس کردن لیست در پایتون

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
معکوس کردن لیست در پایتونترکیب دو لیست در پایتون

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطلب
  • تبدیل رشته به عدد اعشاری (Float)
  • استفاده از تابع float()
  • استفاده از تابع Decimal()
  • استفاده از ماژول 'ast' برای ارزیابی تحت‌اللفظی
  • تبدیل رشته به اعشار با Numpy
  • استفاده از json.loads()
  • با استفاده از یک تابع سفارشی
  • نتیجه‌ گیری
نوین هاست

نوین هاست ارائه دهنده خدمات میزبانی، فروش انواع سرورهای مجازی و اختصاصی ایران و خارج برترین لوکیشن ها و استفاده از بهترین سخت افزارها با پشتیبانی 7/24

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

دسترسی سریع

  • سرور مجازی
  • سرور مجازی ایران
  • سرور اختصاصی
  • هاست اشتراکی
  • ثبت دامنه
  • درباره ما
  • قوانین سرویس دهی

سرورهای مجازی

  • سرور مجازی المان
  • سرور مجازی فرانسه
  • سرور مجازی انگلیس
  • سرور مجازی امریکا
  • سرور مجازی کانادا
  • سرور مجازی فنلاند
  • سرور مجازی هلند

سرورهای اختصاصی

  • سرور اختصاصی ایران
  • سرور اختصاصی برج میلاد
  • سرور اختصاصی زیرساخت
  • سرور اختصاصی خارج
  • سرور اختصاصی آلمان
  • سرور اختصاصی فرانسه
  • سرور اختصاصی آمریکا
تمام حقوق این سایت محفوظ و متعلق به نوین هاست می باشد.
Facebook Twitter Youtube Whatsapp Instagram Telegram