(پایتون) اعداد واقعی


اعداد واقعی

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

برای تعیین نوع متغیر شما، پایتون یک تابع type() داخلی دارد: <پیش> نام = "ایوان" چاپ(نوع(نام))  #صفحه نمایش <کلاس 'str'> n=5 چاپ(نوع(n))  # <کلاس 'int'> r=5.0 چاپ(نوع(r))  # <کلاس 'float'>
مقدار 5.0 عددی است که به صورت اعشاری نشان داده می‌شود.  در برنامه نویسی، همه اعداد کسری اعدادی اعدادی هستند که در نمادشان یک نقطه اعشار وجود دارد. به چنین اعدادی اعداد واقعی
می گویند  
عدد واقعی عددی است که دارای یک نقطه اعشار است. قسمت های اعداد صحیح و کسری با نقطه از یکدیگر جدا می شوند، نه مانند ریاضیات
کاما.
برای مثال، اعداد \(1 \over 2\)\(\sqrt 2\)   اعداد واقعی هستند int برای ذخیره چنین اعداد کافی نیست. 
پایتون از نوع داده  float.
برای نمایش اعداد واقعی استفاده می کند.
حتی اگر قسمت کسری عدد برابر با صفر باشد، مانند متغیر r در مثال، کامپایلر همچنان یک متغیر واقعی در حافظه ایجاد می کند. از آنجایی که در نماد عدد یک نقطه اعشار وجود دارد!. نقطه اعشار، همانطور که بود، سیگنالی برای مترجم است که باید یک متغیر واقعی ایجاد کند. 

اعداد بسیار بزرگ و بسیار کوچک  با استفاده از "نقطه شناور" نوشته می شود (به اصطلاح قالب علمی).  
در قالب علمی، یک عدد به صورت مانتیسا(بخش مهمی از عدد) و نما نمایش داده می شود. هنگام نوشتن، آخوندک و نشانگر با حرف e از یکدیگر جدا می شوند (تا حدی نشان دهنده 10 است). 

برای مثال، می‌توانید مقدار بار یک الکترون ( \(1.60217662 \times 10^{-19}\) C) را در یک متغیر، نوشتن به شکل زیر  ; <پیش> El = 1.60217662e-19
تقریباً تمام اعداد واقعی را نمی توان با دقت کامل در حافظه رایانه ذخیره کرد، زیرا تعداد محدودی بیت برای ذخیره سازی آنها اختصاص داده شده است.
 
بنابراین، هنگام محاسبه با اعداد واقعی، خطاهای ناشی از عدم دقت نمایش جمع می شوند. علاوه بر این، هر چه فضای کمتری اختصاص داده شود، این خطا بزرگتر خواهد بود.

 

ورود

برای وارد کردن یک عدد واقعی با استفاده از تابع input()، لازم است رشته کاراکتری را که حاصل تابع input() است، به یک عدد تبدیل کنید. عدد واقعی با استفاده از تابع >float(): <پیش> x = float(input()) اگر نیاز دارید چندین مقدار را از یک خط به طور همزمان وارد کنید، از روش مشابهی برای اعداد صحیح استفاده می کنیم: <پیش> x, y = map(float, input().split())

 

خروجی

هنگام نمایش اعداد واقعی، 16 رقم اعشار به طور پیش فرض نمایش داده می شود. این قالب همیشه ضروری نیست. اگر نیاز به کوتاه کردن فرمت خروجی دارید، از خروجی فرمت شده یا F-strings استفاده کنید.


فرمت خروجی
برای این کار، متد format() را در رشته ای که می خواهیم خروجی بگیریم اعمال کنیم. و داخل خط فرمت ها با پرانتز مجعد بعد از کولون نوشته می شود. پرانتز تابع format() نام متغیرها (یا ثابت ها) را نشان می دهد که مقادیر آنها به جای پرانتزهای فرفری در قالب مشخص شده در رشته جایگزین می شود. تعداد متغیرها باید با تعداد بریس های فرفری مطابقت داشته باشد. این روش در پایتون از نسخه 3 شروع می شود.
 
مثال
<سر> <بدن>
  توضیح خروجی صفحه
<پیش> x = 1/6    
<پیش> print("{:f}".format(x)) قالب :f به طور پیش فرض 6 رقم خروجی می دهد  در قسمت کسری <پیش> 0.166667
<پیش> print("{:.3f}".format(x)) :.3 یعنی خروجی 3 کاراکتر بعد از نقطه <پیش> 0.167
<پیش> print("{:12.4e}".format(x)) :12.4 - اولین عدد (12) مشخص می کند  تعداد کل موقعیت ها برای نمایش عدد (از جمله نقطه)؛
عدد دوم (4) - تعداد ارقام در قسمت کسری؛
قالب e - عدد را در قالب علمی نمایش می دهد.
<پیش> 1.6667e-01
 


F-string 
راه دیگر برای نمایش رشته فرمت شده استفاده از f-strings (f-string) است. این روش از نسخه 3.6 در پایتون موجود است. <پیش> چاپ (f"{x:f}") چاپ (f"{x:.3f}") print(f"{x:12.4e}") F-string یک رشته عام است که با (یا F) شروع می شود. هر بار که می خواهیم مقدار متغیری را در یک رشته وارد کنیم، باید   نام متغیر محصور در پرانتزهای فرفری {}. در داخل پرانتزهای فرفری، می‌توانید یک روش قالب‌بندی را مشخص کنید که شبیه به روش fomat() است.


علاوه بر روش format() و F-strings، می‌توانید از روش‌های دیگری برای قالب‌بندی خروجی استفاده کنید. با نوشتن دستورات خروجی به صورت زیر همین نتیجه را می گیریم: <پیش> چاپ ("%f"% (x)) print("%.3f" % (x)) print("%12.4e" % (x)) این روش قالب‌بندی تابع  printf() زبان C را تقلید می‌کند. این روش منسوخ در نظر گرفته می‌شود، اما در برخی موارد راحت‌تر است. به غیر از آن، این روش تنها روشی است (از بین موارد ذکر شده در اینجا) که در پایتون نسخه 2.5 و زیر کار می کند.

تبدیل یک عدد واقعی به عدد صحیح

هنگام حل مسائل، اغلب لازم است اعداد واقعی را به نزدیکترین مقادیر صحیح گرد کنید. دو تابع برای این وجود دارد.

باید به خاطر بسپارید!
  1. تابع int(x) - بخش کسری یک عدد واقعی x را کنار می‌گذارد.
  2. تابع round(x) - عدد واقعی x را به نزدیکترین عدد صحیح گرد می کند (اگر قسمت کسری عدد 0.5 باشد، عدد به گرد می شود. نزدیکترین عدد زوج).
 
نمونه‌ها
<پیش> print(int(20.12345)) # 20 چاپ (گرد (2.5)) # 2 چاپ (گرد (3.5)) # 4 چاپ (گرد(-2.5)) # -2 print(round(-3.5)) # -4