# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # Alireza Shabani (Revisto) , 2025 # Sepehr Rasouli , 2026 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-08-18 04:30+0000\n" "PO-Revision-Date: 2026-08-15 07:21+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/revisto/python-docs-fa/)\n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.6\n" msgid "Brief tour of the standard library --- part II" msgstr "مروری کوتاه بر کتابخانهٔ استاندارد — بخش دوم" msgid "This second tour covers more advanced modules that support professional programming needs. These modules rarely occur in small scripts." msgstr "این بخش دوم از مرور، ماژول‌های پیشرفته‌تری را معرفی می‌کند که نیازهای برنامه‌نویسی حرفه‌ای را پوشش می‌دهند. این ماژول‌ها به‌ندرت در اسکریپت‌های کوچک استفاده می‌شوند." msgid "Output formatting" msgstr "قالب‌بندی خروجی" msgid "The :mod:`reprlib` module provides a version of :func:`repr` customized for abbreviated displays of large or deeply nested containers::" msgstr "ماژول :mod:`reprlib` نسخه‌ای از تابع :func:`repr` را ارائه می‌دهد که برای نمایش خلاصه‌شدهٔ ظرف‌های بزرگ یا دارای تو‌در‌تویی عمیق سفارشی شده است::" msgid "" ">>> import reprlib\n" ">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" "\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" msgstr "" ">>> import reprlib\n" ">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" "\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" msgid "The :mod:`pprint` module offers more sophisticated control over printing both built-in and user defined objects in a way that is readable by the interpreter. When the result is longer than one line, the \"pretty printer\" adds line breaks and indentation to more clearly reveal data structure::" msgstr "ماژول :mod:`pprint` کنترل پیشرفته‌تری برای چاپ اشیای داخلی و اشیای تعریف‌شده توسط کاربر، به شکلی که برای مفسر قابل‌خواندن باشد، فراهم می‌کند. اگر خروجی بیش از یک خط باشد، «چاپگر زیبا» (pretty printer) با افزودن شکست خط و تورفتگی، ساختار داده را واضح‌تر نمایش می‌دهد::" msgid "" ">>> import pprint\n" ">>> t = [[[['black', 'cyan'], 'white', ['green', 'red']], [['magenta',\n" "... 'yellow'], 'blue']]]\n" "...\n" ">>> pprint.pprint(t, width=30)\n" "[[[['black', 'cyan'],\n" " 'white',\n" " ['green', 'red']],\n" " [['magenta', 'yellow'],\n" " 'blue']]]" msgstr "" ">>> import pprint\n" ">>> t = [[[['black', 'cyan'], 'white', ['green', 'red']], [['magenta',\n" "... 'yellow'], 'blue']]]\n" "...\n" ">>> pprint.pprint(t, width=30)\n" "[[[['black', 'cyan'],\n" " 'white',\n" " ['green', 'red']],\n" " [['magenta', 'yellow'],\n" " 'blue']]]" msgid "The :mod:`textwrap` module formats paragraphs of text to fit a given screen width::" msgstr "ماژول :mod:`textwrap` پاراگراف‌های متنی را طوری قالب‌بندی می‌کند که در عرض مشخصی از صفحه جا بگیرند::" msgid "" ">>> import textwrap\n" ">>> doc = \"\"\"The wrap() method is just like fill() except that it returns\n" "... a list of strings instead of one big string with newlines to separate\n" "... the wrapped lines.\"\"\"\n" "...\n" ">>> print(textwrap.fill(doc, width=40))\n" "The wrap() method is just like fill()\n" "except that it returns a list of strings\n" "instead of one big string with newlines\n" "to separate the wrapped lines." msgstr "" ">>> import textwrap\n" ">>> doc = \"\"\"The wrap() method is just like fill() except that it returns\n" "... a list of strings instead of one big string with newlines to separate\n" "... the wrapped lines.\"\"\"\n" "...\n" ">>> print(textwrap.fill(doc, width=40))\n" "The wrap() method is just like fill()\n" "except that it returns a list of strings\n" "instead of one big string with newlines\n" "to separate the wrapped lines." msgid "The :mod:`locale` module accesses a database of culture specific data formats. The grouping attribute of locale's format function provides a direct way of formatting numbers with group separators::" msgstr "ماژول :mod:`locale` به پایگاه داده‌ای از قالب‌های دادهٔ وابسته به زبان و منطقهٔ جغرافیایی دسترسی دارد. ویژگی grouping در تابع format این ماژول، روشی مستقیم برای قالب‌بندی اعداد با جداکنندهٔ گروه‌ها فراهم می‌کند::" msgid "" ">>> import locale\n" ">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" "'English_United States.1252'\n" ">>> conv = locale.localeconv() # get a mapping of conventions\n" ">>> x = 1234567.8\n" ">>> locale.format_string(\"%d\", x, grouping=True)\n" "'1,234,567'\n" ">>> locale.format_string(\"%s%.*f\", (conv['currency_symbol'],\n" "... conv['frac_digits'], x), grouping=True)\n" "'$1,234,567.80'" msgstr "" ">>> import locale\n" ">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" "'English_United States.1252'\n" ">>> conv = locale.localeconv() # دریافت نگاشتی از قراردادها\n" ">>> x = 1234567.8\n" ">>> locale.format_string(\"%d\", x, grouping=True)\n" "'1,234,567'\n" ">>> locale.format_string(\"%s%.*f\", (conv['currency_symbol'],\n" "... conv['frac_digits'], x), grouping=True)\n" "'$1,234,567.80'" msgid "Templating" msgstr "قالب‌های متنی" msgid "The :mod:`string` module includes a versatile :class:`~string.Template` class with a simplified syntax suitable for editing by end-users. This allows users to customize their applications without having to alter the application." msgstr "ماژول :mod:`string` شامل کلاس انعطاف‌پذیر :class:`~string.Template` با نحوی ساده است که برای ویرایش توسط کاربران نهایی مناسب است. این امکان را فراهم می‌کند که کاربران بتوانند برنامه‌های خود را بدون تغییر دادن خود برنامه سفارشی‌سازی کنند." msgid "The format uses placeholder names formed by ``$`` with valid Python identifiers (alphanumeric characters and underscores). Surrounding the placeholder with braces allows it to be followed by more alphanumeric letters with no intervening spaces. Writing ``$$`` creates a single escaped ``$``::" msgstr "در این قالب، نام جای‌نگهدارها با استفاده از ``$`` و شناسه‌های معتبر پایتون (شامل حروف، ارقام و زیرخط) ساخته می‌شوند. اگر جای‌نگهدار را درون آکولاد قرار دهید، می‌توانید بدون فاصله، بلافاصله پس از آن حروف یا ارقام بیشتری بیاورید. همچنین، نوشتن ``$$`` یک نویسهٔ ``$`` فراردهی‌شده ایجاد می‌کند::" msgid "" ">>> from string import Template\n" ">>> t = Template('${village}folk send $$10 to $cause.')\n" ">>> t.substitute(village='Nottingham', cause='the ditch fund')\n" "'Nottinghamfolk send $10 to the ditch fund.'" msgstr "" ">>> from string import Template\n" ">>> t = Template('${village}folk send $$10 to $cause.')\n" ">>> t.substitute(village='Nottingham', cause='the ditch fund')\n" "'Nottinghamfolk send $10 to the ditch fund.'" msgid "The :meth:`~string.Template.substitute` method raises a :exc:`KeyError` when a placeholder is not supplied in a dictionary or a keyword argument. For mail-merge style applications, user supplied data may be incomplete and the :meth:`~string.Template.safe_substitute` method may be more appropriate --- it will leave placeholders unchanged if data is missing::" msgstr "متد :meth:`~string.Template.substitute` اگر جای‌نگهداری در دیکشنری یا آرگومان‌های کلیدواژه‌ای مقداردهی نشده باشد، استثنای :exc:`KeyError` پرتاب می‌کند. در برنامه‌هایی مانند ادغام نامه‌ها (mail merge) که ممکن است داده‌های واردشده توسط کاربر ناقص باشند، استفاده از متد :meth:`~string.Template.safe_substitute` مناسب‌تر است؛ زیرا در صورت نبود داده، جای‌نگهدارها را بدون تغییر باقی می‌گذارد::" msgid "" ">>> t = Template('Return the $item to $owner.')\n" ">>> d = dict(item='unladen swallow')\n" ">>> t.substitute(d)\n" "Traceback (most recent call last):\n" " ...\n" "KeyError: 'owner'\n" ">>> t.safe_substitute(d)\n" "'Return the unladen swallow to $owner.'" msgstr "" ">>> t = Template('Return the $item to $owner.')\n" ">>> d = dict(item='unladen swallow')\n" ">>> t.substitute(d)\n" "Traceback (most recent call last):\n" " ...\n" "KeyError: 'owner'\n" ">>> t.safe_substitute(d)\n" "'Return the unladen swallow to $owner.'" msgid "Template subclasses can specify a custom delimiter. For example, a batch renaming utility for a photo browser may elect to use percent signs for placeholders such as the current date, image sequence number, or file format::" msgstr "زیرکلاس‌های Template می‌توانند جداکنندهٔ سفارشی خود را تعریف کنند. برای مثال، یک ابزار تغییر نام گروهی فایل‌های عکس ممکن است از علامت درصد برای جای‌نگهدارهایی مانند تاریخ جاری، شمارهٔ ترتیب تصویر یا قالب فایل استفاده کند::" msgid "" ">>> import time, os.path\n" ">>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']\n" ">>> class BatchRename(Template):\n" "... delimiter = '%'\n" "...\n" ">>> fmt = input('Enter rename style (%d-date %n-seqnum %f-format): ')\n" "Enter rename style (%d-date %n-seqnum %f-format): Ashley_%n%f\n" "\n" ">>> t = BatchRename(fmt)\n" ">>> date = time.strftime('%d%b%y')\n" ">>> for i, filename in enumerate(photofiles):\n" "... base, ext = os.path.splitext(filename)\n" "... newname = t.substitute(d=date, n=i, f=ext)\n" "... print('{0} --> {1}'.format(filename, newname))\n" "\n" "img_1074.jpg --> Ashley_0.jpg\n" "img_1076.jpg --> Ashley_1.jpg\n" "img_1077.jpg --> Ashley_2.jpg" msgstr "" ">>> import time, os.path\n" ">>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']\n" ">>> class BatchRename(Template):\n" "... delimiter = '%'\n" "...\n" ">>> fmt = input('Enter rename style (%d-date %n-seqnum %f-format): ')\n" "Enter rename style (%d-date %n-seqnum %f-format): Ashley_%n%f\n" "\n" ">>> t = BatchRename(fmt)\n" ">>> date = time.strftime('%d%b%y')\n" ">>> for i, filename in enumerate(photofiles):\n" "... base, ext = os.path.splitext(filename)\n" "... newname = t.substitute(d=date, n=i, f=ext)\n" "... print('{0} --> {1}'.format(filename, newname))\n" "\n" "img_1074.jpg --> Ashley_0.jpg\n" "img_1076.jpg --> Ashley_1.jpg\n" "img_1077.jpg --> Ashley_2.jpg" msgid "Another application for templating is separating program logic from the details of multiple output formats. This makes it possible to substitute custom templates for XML files, plain text reports, and HTML web reports." msgstr "کاربرد دیگر قالب‌ها، جدا کردن منطق برنامه از جزئیات قالب‌های مختلف خروجی است. این کار امکان جایگزینی قالب‌های سفارشی برای فایل‌های XML، گزارش‌های متنی ساده و گزارش‌های وب HTML را فراهم می‌کند." msgid "Working with binary data record layouts" msgstr "کار با ساختار رکوردهای دادهٔ دودویی" msgid "The :mod:`struct` module provides :func:`~struct.pack` and :func:`~struct.unpack` functions for working with variable length binary record formats. The following example shows how to loop through header information in a ZIP file without using the :mod:`zipfile` module. Pack codes ``\"H\"`` and ``\"I\"`` represent two and four byte unsigned numbers respectively. The ``\"<\"`` indicates that they are standard size and in little-endian byte order::" msgstr "ماژول :mod:`struct` توابع :func:`~struct.pack` و :func:`~struct.unpack` را برای کار با قالب‌های دودویی رکوردهایی با طول متغیر فراهم می‌کند. مثال زیر نشان می‌دهد چگونه می‌توان بدون استفاده از ماژول :mod:`zipfile`، اطلاعات سرآیند یک فایل ZIP را پیمایش کرد. کدهای ``\"H\"`` و ``\"I\"`` به‌ترتیب نشان‌دهندهٔ اعداد بدون علامتِ دو و چهار بایتی هستند. نماد ``\"<\"`` نیز نشان می‌دهد که اندازه‌ها استاندارد بوده و ترتیب بایت‌ها little-endian است::" msgid "" "import struct\n" "\n" "with open('myfile.zip', 'rb') as f:\n" " data = f.read()\n" "\n" "start = 0\n" "for i in range(3): # show the first 3 file headers\n" " start += 14\n" " fields = struct.unpack('>> import weakref, gc\n" ">>> class A:\n" "... def __init__(self, value):\n" "... self.value = value\n" "... def __repr__(self):\n" "... return str(self.value)\n" "...\n" ">>> a = A(10) # create a reference\n" ">>> d = weakref.WeakValueDictionary()\n" ">>> d['primary'] = a # does not create a reference\n" ">>> d['primary'] # fetch the object if it is still alive\n" "10\n" ">>> del a # remove the one reference\n" ">>> gc.collect() # run garbage collection right away\n" "0\n" ">>> d['primary'] # entry was automatically removed\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" " d['primary'] # entry was automatically removed\n" " File \"C:/python314/lib/weakref.py\", line 46, in __getitem__\n" " o = self.data[key]()\n" "KeyError: 'primary'" msgstr "" ">>> import weakref, gc\n" ">>> class A:\n" "... def __init__(self, value):\n" "... self.value = value\n" "... def __repr__(self):\n" "... return str(self.value)\n" "...\n" ">>> a = A(10) # ایجاد یک ارجاع\n" ">>> d = weakref.WeakValueDictionary()\n" ">>> d['primary'] = a # یک ارجاع ایجاد نمی‌کند\n" ">>> d['primary'] # اگر شیء هنوز زنده باشد، آن را دریافت می‌کند\n" "10\n" ">>> del a # حذف تنها ارجاع\n" ">>> gc.collect() # اجرای فوری جمع‌آوری زباله\n" "0\n" ">>> d['primary'] # ورودی به‌طور خودکار حذف شده است\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" " d['primary'] # ورودی به‌طور خودکار حذف شده است\n" " File \"C:/python314/lib/weakref.py\", line 46, in __getitem__\n" " o = self.data[key]()\n" "KeyError: 'primary'" msgid "Tools for working with lists" msgstr "ابزارهایی برای کار با فهرست‌ها" msgid "Many data structure needs can be met with the built-in list type. However, sometimes there is a need for alternative implementations with different performance trade-offs." msgstr "بسیاری از نیازهای مربوط به ساختارهای داده را می‌توان با استفاده از نوع داخلی `list` برآورده کرد. با این حال، گاهی به پیاده‌سازی‌های جایگزینی نیاز است که توازن متفاوتی میان کارایی و عملکرد ارائه می‌دهند." msgid "The :mod:`array` module provides an :class:`~array.array` object that is like a list that stores only homogeneous data and stores it more compactly. The following example shows an array of numbers stored as two byte unsigned binary numbers (typecode ``\"H\"``) rather than the usual 16 bytes per entry for regular lists of Python int objects::" msgstr "ماژول :mod:`array` شیء :class:`~array.array` را فراهم می‌کند که شبیه یک فهرست است، اما تنها داده‌های هم‌نوع را ذخیره می‌کند و آن‌ها را به‌شکلی فشرده‌تر در حافظه نگه می‌دارد. مثال زیر آرایه‌ای از اعداد را نشان می‌دهد که به‌جای ذخیره شدن به‌صورت اعداد دودویی بدون علامتِ دو بایتی (با کد نوع ``\"H\"``)، به‌صورت اشیای معمولی `int` پایتون (که معمولاً برای هر عضو ۱۶ بایت فضا اشغال می‌کنند) ذخیره شده‌اند::" msgid "" ">>> from array import array\n" ">>> a = array('H', [4000, 10, 700, 22222])\n" ">>> sum(a)\n" "26932\n" ">>> a[1:3]\n" "array('H', [10, 700])" msgstr "" ">>> from array import array\n" ">>> a = array('H', [4000, 10, 700, 22222])\n" ">>> sum(a)\n" "26932\n" ">>> a[1:3]\n" "array('H', [10, 700])" msgid "The :mod:`collections` module provides a :class:`~collections.deque` object that is like a list with faster appends and pops from the left side but slower lookups in the middle. These objects are well suited for implementing queues and breadth first tree searches::" msgstr "ماژول :mod:`collections` شیء :class:`~collections.deque` را فراهم می‌کند که شبیه یک فهرست است، اما افزودن و حذف عنصر از ابتدای آن بسیار سریع‌تر و دسترسی به عناصر میانی آن کندتر است. این اشیا برای پیاده‌سازی صف‌ها و پیمایش درخت به روش جست‌وجوی سطح‌به‌سطح (Breadth-First Search) بسیار مناسب هستند::" msgid "" ">>> from collections import deque\n" ">>> d = deque([\"task1\", \"task2\", \"task3\"])\n" ">>> d.append(\"task4\")\n" ">>> print(\"Handling\", d.popleft())\n" "Handling task1" msgstr "" ">>> from collections import deque\n" ">>> d = deque([\"task1\", \"task2\", \"task3\"])\n" ">>> d.append(\"task4\")\n" ">>> print(\"Handling\", d.popleft())\n" "Handling task1" msgid "" "unsearched = deque([starting_node])\n" "def breadth_first_search(unsearched):\n" " node = unsearched.popleft()\n" " for m in gen_moves(node):\n" " if is_goal(m):\n" " return m\n" " unsearched.append(m)" msgstr "" "unsearched = deque([starting_node])\n" "def breadth_first_search(unsearched):\n" " node = unsearched.popleft()\n" " for m in gen_moves(node):\n" " if is_goal(m):\n" " return m\n" " unsearched.append(m)" msgid "In addition to alternative list implementations, the library also offers other tools such as the :mod:`bisect` module with functions for manipulating sorted lists::" msgstr "علاوه بر پیاده‌سازی‌های جایگزین برای فهرست‌ها، کتابخانهٔ استاندارد ابزارهای دیگری نیز ارائه می‌دهد؛ برای مثال، ماژول :mod:`bisect` توابعی برای کار با فهرست‌های مرتب‌شده در اختیار می‌گذارد::" msgid "" ">>> import bisect\n" ">>> scores = [(100, 'perl'), (200, 'tcl'), (400, 'lua'), (500, 'python')]\n" ">>> bisect.insort(scores, (300, 'ruby'))\n" ">>> scores\n" "[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]" msgstr "" ">>> import bisect\n" ">>> scores = [(100, 'perl'), (200, 'tcl'), (400, 'lua'), (500, 'python')]\n" ">>> bisect.insort(scores, (300, 'ruby'))\n" ">>> scores\n" "[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]" msgid "The :mod:`heapq` module provides functions for implementing heaps based on regular lists. The lowest valued entry is always kept at position zero. This is useful for applications which repeatedly access the smallest element but do not want to run a full list sort::" msgstr "ماژول :mod:`heapq` توابعی برای پیاده‌سازی هیپ (Heap) بر پایهٔ فهرست‌های معمولی فراهم می‌کند. در این ساختار، کوچک‌ترین عنصر همیشه در اندیس صفر قرار می‌گیرد. این ویژگی برای برنامه‌هایی مفید است که به‌طور مکرر به کوچک‌ترین عنصر نیاز دارند، اما نمی‌خواهند هر بار کل فهرست را مرتب کنند::" msgid "" ">>> from heapq import heapify, heappop, heappush\n" ">>> data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" ">>> heapify(data) # rearrange the list into heap order\n" ">>> heappush(data, -5) # add a new entry\n" ">>> [heappop(data) for i in range(3)] # fetch the three smallest entries\n" "[-5, 0, 1]" msgstr "" ">>> from heapq import heapify, heappop, heappush\n" ">>> data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" ">>> heapify(data) # بازچینی فهرست به ترتیب هیپ\n" ">>> heappush(data, -5) # افزودن یک ورودی جدید\n" ">>> [heappop(data) for i in range(3)] # دریافت سه ورودی کوچک‌تر\n" "[-5, 0, 1]" msgid "Decimal floating-point arithmetic" msgstr "محاسبات اعشاری با ممیز شناور ده‌دهی" msgid "The :mod:`decimal` module offers a :class:`~decimal.Decimal` datatype for decimal floating-point arithmetic. Compared to the built-in :class:`float` implementation of binary floating point, the class is especially helpful for" msgstr "ماژول :mod:`decimal` نوع دادهٔ :class:`~decimal.Decimal` را برای انجام محاسبات اعشاری با ممیز شناور ده‌دهی ارائه می‌دهد. در مقایسه با پیاده‌سازی داخلی :class:`float` که از ممیز شناور دودویی استفاده می‌کند، این کلاس به‌ویژه در موارد زیر مفید است" msgid "financial applications and other uses which require exact decimal representation," msgstr "برنامه‌های مالی و سایر کاربردهایی که به نمایش دقیق اعداد ده‌دهی نیاز دارند،" msgid "control over precision," msgstr "کنترل میزان دقت،" msgid "control over rounding to meet legal or regulatory requirements," msgstr "کنترل نحوهٔ گرد کردن اعداد برای انطباق با الزامات یا مقررات،" msgid "tracking of significant decimal places, or" msgstr "حفظ و ردیابی تعداد ارقام معنادار اعشاری، یا" msgid "applications where the user expects the results to match calculations done by hand." msgstr "برنامه‌هایی که کاربر انتظار دارد نتایج آن‌ها با محاسبات دستی مطابقت داشته باشد." msgid "For example, calculating a 5% tax on a 70 cent phone charge gives different results in decimal floating point and binary floating point. The difference becomes significant if the results are rounded to the nearest cent::" msgstr "برای مثال، محاسبهٔ مالیات ۵٪ برای هزینهٔ ۷۰ سنتی یک تماس تلفنی، در محاسبات اعشاری و محاسبات دودویی با ممیز شناور نتایج متفاوتی ایجاد می‌کند. این تفاوت زمانی که نتایج به نزدیک‌ترین سنت گرد شوند، اهمیت پیدا می‌کند::" msgid "" ">>> from decimal import *\n" ">>> round(Decimal('0.70') * Decimal('1.05'), 2)\n" "Decimal('0.74')\n" ">>> round(.70 * 1.05, 2)\n" "0.73" msgstr "" ">>> from decimal import *\n" ">>> round(Decimal('0.70') * Decimal('1.05'), 2)\n" "Decimal('0.74')\n" ">>> round(.70 * 1.05, 2)\n" "0.73" msgid "The :class:`~decimal.Decimal` result keeps a trailing zero, automatically inferring four place significance from multiplicands with two place significance. Decimal reproduces mathematics as done by hand and avoids issues that can arise when binary floating point cannot exactly represent decimal quantities." msgstr "نتیجهٔ :class:`~decimal.Decimal` صفر انتهایی را حفظ می‌کند و به‌طور خودکار از عملوندهایی که هرکدام دو رقم اعشار معنادار دارند، چهار رقم اعشار معنادار برای حاصل استنباط می‌کند. `Decimal` محاسبات را همان‌گونه انجام می‌دهد که به‌صورت دستی انجام می‌شوند و از مشکلاتی که به‌دلیل ناتوانی ممیز شناور دودویی در نمایش دقیق مقادیر ده‌دهی ایجاد می‌شود، جلوگیری می‌کند." msgid "Exact representation enables the :class:`~decimal.Decimal` class to perform modulo calculations and equality tests that are unsuitable for binary floating point::" msgstr "نمایش دقیق مقادیر به کلاس :class:`~decimal.Decimal` این امکان را می‌دهد که محاسبات باقیمانده و آزمون‌های برابری را به‌درستی انجام دهد؛ عملیاتی که استفاده از آن‌ها با ممیز شناور دودویی مناسب نیست::" msgid "" ">>> Decimal('1.00') % Decimal('.10')\n" "Decimal('0.00')\n" ">>> 1.00 % 0.10\n" "0.09999999999999995\n" "\n" ">>> sum([Decimal('0.1')]*10) == Decimal('1.0')\n" "True\n" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" "False" msgstr "" ">>> Decimal('1.00') % Decimal('.10')\n" "Decimal('0.00')\n" ">>> 1.00 % 0.10\n" "0.09999999999999995\n" "\n" ">>> sum([Decimal('0.1')]*10) == Decimal('1.0')\n" "True\n" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" "False" msgid "The :mod:`decimal` module provides arithmetic with as much precision as needed::" msgstr "ماژول :mod:`decimal` امکان انجام محاسبات با هر میزان دقت موردنیاز را فراهم می‌کند::" msgid "" ">>> getcontext().prec = 36\n" ">>> Decimal(1) / Decimal(7)\n" "Decimal('0.142857142857142857142857142857142857')" msgstr "" ">>> getcontext().prec = 36\n" ">>> Decimal(1) / Decimal(7)\n" "Decimal('0.142857142857142857142857142857142857')"