πŸ“Š
Python Docs
  • Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python
  • ΠžΠ±Ρ‰Π΅Π΅ описаниС
    • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
    • ОглавлСниС
    • Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠΎ порядку
    • Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ
  • ВстроСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
    • ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
      • abs ()
      • open ()
    • ВстроСнныС Ρ‚ΠΈΠΏΡ‹
    • ВстроСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
  • ΠœΠΎΠ΄ΡƒΠ»ΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
    • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСкста
      • string
      • re
        • Бинтаксис рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
        • Π‘ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ модуля
          • re.match ()
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ шаблона Pattern
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ совпадСния Match
        • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
      • difflib
      • textwrap
      • unicodedata
      • stringprep
      • readline
      • rlcompleter
    • Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅
      • struct
        • struct.error
        • struct.pack ()
        • struct.pack_into ()
        • struct.unpack ()
        • struct.unpack_from ()
        • struct.iter_unpack ()
        • struct.calcsize ()
        • struct.Struct
        • struct.Struct.pack ()
        • struct.Struct.pack_into ()
        • struct.Struct.unpack ()
        • struct.Struct.unpack_from ()
        • struct.Struct.iter_unpack ()
        • struct.Struct.format
        • struct.Struct.size
      • codecs
    • Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…
      • datetime
      • calendar
        • calendar.Calendar
          • Calendar.timegm ()
        • calendar.TextCalendar
        • calendar.HTMLCalendar
        • calendar.LocaleTextCalendar
        • calendar.LocaleHTMLCalendar
        • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ calendar
      • collections
      • collections.abc
      • heapq
      • bisect
      • array
      • weakref
      • types
      • copy
      • pprint
      • reprlib
      • enum
        • Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ модуля
          • enum.IntEnum
        • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Enum
    • ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
      • numbers
      • math
      • cmath
      • decimal
      • fractions
      • random
      • statistics
    • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
      • itertools
      • functools
        • functools.cache()
        • functools.cached_property()
        • functools.cmp_to_key()
        • functools.lru_cache()
        • functools.total_ordering
        • functools.partial()
        • functools.partialmethod()
        • functools.reduce()
        • functools.singledispatch
        • functools.singledispatchmethod()
        • functools.update_wrapper()
        • functools.wraps()
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ partial
      • operator
    • Доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌ
      • pathlib
      • os.path
        • os.path.abspath ()
        • os.path.basename ()
        • os.path.dirname ()
        • os.path.exists ()
        • os.path.expanduser ()
        • os.path.expandvars ()
        • os.path.getsize ()
        • os.path.isfile ()
        • os.path.isdir ()
        • os.path.islink ()
        • os.path.join ()
        • os.path.normcase ()
        • os.path.normpath ()
        • os.path.realpath ()
        • os.path.split ()
        • os.path.splitext ()
      • fileinput
      • stat
      • filecmp
      • tempfile
      • glob
        • glob.glob ()
      • fnmatch
        • fnmatch.fnmatch ()
        • fnmatch.fnmatchcase ()
        • fnmatch.filter ()
        • fnmatch.translate ()
      • linecache
      • shutil
        • shutil.rmtree ()
        • shutil.chown ()
    • Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
      • pickle
        • HIGHEST_PROTOCOL
        • DEFAULT_PROTOCOL
        • dump ()
        • dumps ()
        • load ()
        • loads ()
        • PickleError
        • PicklingError
        • UnpicklingError
      • copyreg
      • shelve
      • marshal
      • dbm
      • sqlite3
    • Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
      • zlib
      • gzip
      • bz2
      • lzma
      • zipfile
      • tarfile
    • Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²
      • csv
      • configparser
      • netrc
      • xdrlib
      • plistlib
    • ΠšΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ слуТбы
      • hashlib
      • hmac
      • secrets
    • ΠžΠ±Ρ‰ΠΈΠ΅ слуТбы ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы
      • os
        • os.error
        • os.name ()
        • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ процСсса
          • os.environ
          • os.fsencode ()
          • os.fsdecode ()
          • os.PathLike
          • os.getenv ()
          • os.getenvb ()
          • os.getpid ()
          • os.getppid ()
          • os.putenv ()
          • os.uname ()
          • os.unsetenv ()
        • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
          • os.fdopen ()
        • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ дСскрипторами
          • os.close ()
          • os.dup2 ()
          • os.fstat ()
          • os.fsync ()
          • os.isatty ()
          • os.lseek ()
          • os.SEEK_SET
          • os.SEEK_CUR
          • os.SEEK_END
          • os.open ()
          • os.openpty ()
          • os.pipe ()
          • os.read ()
          • os.write ()
        • Π€Π°ΠΉΠ»Ρ‹ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
          • os.chdir ()
          • os.chmod ()
          • os.chown ()
          • os.getcwd ()
          • os.listdir ()
          • os.lstat ()
          • os.mkfifo ()
          • os.remove ()
          • os.rename ()
          • os.replace ()
          • os.rmdir ()
          • os.scandir ()
          • os.stat ()
          • os.stat_result
          • os.supports_dir_fd
          • os.supports_fd
          • os.supports_follow_symlinks
          • os.unlink ()
          • os.walk ()
        • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами
          • os.execl ()
          • os.execle ()
          • os.execlp ()
          • os.execlpe ()
          • os.execv ()
          • os.execve ()
          • os.execvp ()
          • os.execvpe ()
          • os._exit ()
          • os.fork ()
          • os.kill ()
          • os.popen ()
          • os.spawnl ()
          • os.P_NOWAIT
          • os.startfile ()
          • os.system ()
          • os.wait ()
          • os.waitpid ()
          • os.waitstatus_to_exitcode ()
          • os.WNOHANG
        • Π Π°Π·Π½Ρ‹Π΅ слуТбы ОБ
          • os.curdir
          • os.pardir
          • os.sep
          • os.altsep
          • os.pathsep
          • os.linesep
      • io
        • ВысокоуровнСвый интСрфСйс модуля
          • io.DEFAULT_BUFFER_SIZE
        • io.IOBase
          • io.IOBase.close ()
          • io.IOBase.fileno ()
          • io.IOBase.flush ()
          • io.IOBase.isatty ()
          • io.IOBase.readline ()
          • io.IOBase.readlines ()
          • io.IOBase.seek ()
          • io.IOBase.writelines ()
        • io.RawIOBase
          • io.RawIOBase.read ()
          • io.RawIOBase.readall ()
          • io.RawIOBase.readinto ()
          • io.RawIOBase.write ()
        • io.BufferedIOBase
          • io.BufferedIOBase.read ()
          • io.BufferedIOBase.write ()
        • io.FileIO
        • io.BytesIO
          • io.BytesIO.getvalue ()
        • io.BufferedReader
          • io.BufferedReader.read ()
        • io.BufferedWriter
          • io.BufferedWriter.flush ()
          • io.BufferedWriter.write ()
        • io.BufferedRandom
        • io.BufferedRWPair
        • io.TextIOBase
          • io.TextIOBase.read ()
          • io.TextIOBase.readline ()
          • io.TextIOBase.seek ()
          • io.TextIOBase.tell ()
          • io.TextIOBase.write ()
        • io.TextIOWrapper
        • io.StringIO
          • io.StringIO.getvalue ()
      • time
        • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ time
          • time.asctime ()
          • time.ctime ()
          • time.gmtime ()
          • time.localtime ()
          • time.mktime ()
          • time.sleep ()
          • time.strftime ()
          • time.strptime ()
          • time.struct_time
          • time.time ()
        • ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° часов
        • ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ часового пояса
      • argparse
      • getopt
      • logging
      • logging.config
      • logging.handlers
      • getpass
      • curses
      • curses.textpad
      • curses.ascii
      • curses.panel
      • platform
      • errno
      • ctypes
    • ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
      • threading
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Thread
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Lock
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ RLock
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Condition
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Semaphore
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Event
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Timer
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Barrier
      • multiprocessing
      • multiprocessing.shared_memory
      • concurrent
      • concurrent.futures
      • subprocess
        • subprocess.PIPE
        • subprocess.Popen
        • Popen.wait ()
        • Popen.communicate ()
        • Popen.args
        • Popen.stdin
        • Popen.stdout
        • Popen.stderr
        • Popen.pid
        • Popen.returncode
        • subprocess.call ()
      • sched
      • queue
        • queue.Queue
        • queue.LifoQueue
        • queue.PriorityQueue
        • queue.SimpleQueue
        • queue.Empty
        • queue.Full
        • Queue.qsize ()
        • Queue.empty ()
        • Queue.full ()
        • Queue.put ()
        • Queue.put_nowait ()
        • Queue.get ()
        • Queue.get_nowait ()
        • Queue.task_done ()
        • Queue.join ()
        • SimpleQueue.qsize ()
        • SimpleQueue.empty ()
        • SimpleQueue.put ()
        • SimpleQueue.put_nowait ()
        • SimpleQueue.get ()
        • SimpleQueue.get_nowait ()
      • _thread
        • _thread.error
        • _thread.LockType
        • _thread.start_new_thread ()
        • _thread.interrupt_main ()
        • _thread.exit ()
        • _thread.allocate_lock ()
        • _thread.get_ident ()
        • _thread.get_native_id ()
        • _thread.stack_size ()
        • _thread.TIMEOUT_MAX
        • lock.acquire ()
        • lock.release ()
        • lock.locked ()
      • _dummy_thread
      • dummy_threading
      • contextvars
    • Π‘Π΅Ρ‚Π΅Π²ΠΎΠ΅ ΠΈ мСТпроцСссноС взаимодСйствиС
      • asyncio
        • ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ список API
      • socket
        • БСмСйство сокСтов
          • AF_UNIX
          • AF_INET
          • AF_INET6
          • AF_NETLINK
          • AF_TIPC
          • AF_CAN
          • PF_SYSTEM
          • AF_BLUETOOTH
          • AF_ALG
          • AF_VSOCK
          • AF_PACKET
          • AF_QIPCRTR
          • IPPROTO_UDPLITE
        • Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сокСтов
          • socket.error
          • socket.herror
          • socket.gaierror
          • socket.timeout
        • ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ сокСтов
          • socket.AF_UNIX
          • socket.AF_INET
          • socket.AF_INET6
          • socket.SOCK_STREAM
          • socket.SOCK_DGRAM
          • socket.SOCK_RAW
          • socket.SOCK_NONBLOCK
          • socket.SOCK_CLOEXEC
          • socket.AF_CAN
          • socket.CAN_BCM
          • socket.CAN_ISOTP
          • socket.CAN_J1939
          • socket.AF_PACKET
          • socket.AF_RDS
        • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ сокСтов
          • socket.socket ()
          • socket.create_connection ()
          • socket.fromfd ()
          • socket.close ()
          • socket.getaddrinfo ()
          • socket.getfqdn ()
          • socket.gethostbyname ()
          • socket.gethostbyname_ex ()
          • socket.gethostname ()
          • socket.gethostbyaddr ()
          • socket.getnameinfo ()
          • socket.getprotobyname ()
          • socket.getservbyname ()
          • socket.getservbyport ()
          • socket.ntohl ()
          • socket.htonl ()
          • socket.getdefaulttimeout ()
          • socket.setdefaulttimeout ()
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ сокСтов
          • socket.accept ()
          • socket.bind ()
          • socket.close ()
          • socket.connect ()
          • socket.fileno ()
          • socket.getpeername ()
          • socket.listen ()
          • socket.makefile ()
          • socket.recv ()
          • socket.send ()
          • socket.sendall ()
          • socket.setblocking ()
          • socket.settimeout ()
          • socket.shutdown ()
          • socket.type
      • ssl
      • select
        • Атрибуты модуля
          • select.select ()
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ опроса devpoll
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ epoll
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ опроса poll
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ kqueue
        • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ kevent
      • selectors
      • asyncore
      • asynchat
      • signal
        • ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ модуля signal
          • signal.SIG_DFL
          • signal.SIG_IGN
          • signal.SIGABRT
          • signal.SIGALRM
          • signal.SIGBREAK
          • signal.SIGCHLD
          • signal.SIGFPE
          • signal.SIGILL
          • signal.SIGINT
          • signal.SIGPIPE
          • signal.SIGSEGV
          • signal.SIGTERM
          • signal.SIGUSR1
          • signal.SIGUSR2
          • signal.CTRL_C_EVENT
          • signal.CTRL_BREAK_EVENT
          • signal.SIG_BLOCK
          • signal.SIG_UNBLOCK
          • signal.SIG_SETMASK
        • Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ модуля signal
        • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ модуля signal
          • signal.alarm ()
          • signal.getsignal ()
          • signal.strsignal ()
          • signal.valid_signals ()
          • signal.pause ()
          • signal.raise_signal ()
          • signal.pthread_kill ()
          • signal.pthread_sigmask ()
          • signal.signal ()
          • signal.sigpending ()
          • signal.sigwait ()
          • signal.sigwaitinfo ()
          • signal.sigtimedwait ()
      • mmap
    • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…
      • email
      • json
      • mailcap
      • mailbox
      • mimetypes
      • base64
      • binhex
      • binascii
      • quopri
      • uu
    • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° упорядочСнной Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ
      • html
      • html.parser
      • html.entities
      • ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ XML
      • xml.etree.ElementTree
      • xml.dom
      • xml.dom.minidom
      • xml.dom.pulldom
      • xml.sax
      • xml.sax.handler
      • xml.sax.saxutils
      • xml.sax.xmlreader
      • xml.parsers.expat
    • Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹
      • webbrowser
      • cgi
      • cgitb
      • wsgiref
      • urllib
      • urllib.request
      • urllib.response
      • urllib.parse
      • urllib.error
      • urllib.robotparser
      • http
      • http.client
      • ftplib
      • poplib
      • imaplib
      • nntplib
      • smtplib
      • smtpd
      • telnetlib
      • uuid
      • socketserver
      • http.server
      • http.cookies
      • http.cookiejar
      • xmlrpc
      • xmlrpc.client
      • xmlrpc.server
      • ipaddress
    • ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° слуТбы
      • audioop
      • aifc
      • sunau
      • wave
      • chunk
      • colorsys
      • imghdr
      • sndhdr
      • ossaudiodev
    • Π˜Π½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ
      • gettext
      • locale
    • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ
      • turtle
      • cmd
      • shlex
    • ГрафичСскиС интСрфСйсы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Tk
      • tkinter
      • tkinter.ttk
      • tkinter.tix
      • tkinter.scrolledtext
      • IDLE
      • Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ графичСских интСрфСйсов
    • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
      • typing
      • pydoc
      • doctest
      • unittest
      • unittest.mock
      • 2to3
      • test
      • test.support
      • test.support.script_helper
    • ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
      • Π’Π°Π±Π»ΠΈΡ†Π° событий Π°ΡƒΠ΄ΠΈΡ‚Π°
      • bdb
      • faulthandler
      • pdb
      • ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ Python
      • timeit
      • trace
      • tracemalloc
    • Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΈ распространСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ
      • distutils
      • ensurepip
      • venv
      • zipapp
    • Π‘Π»ΡƒΠΆΠ±Ρ‹ срСды выполнСния Python
      • sys
        • sys.argv
        • sys.executable
        • sys.exit ()
        • sys.getdefaultencoding ()
        • sys.getfilesystemencoding ()
        • sys.path
        • sys.platform
        • sys.setcheckinterval ()
        • sys.setswitchinterval ()
        • sys.stdin, sys.stdout, sys.stderr
        • sys.unraisablehook ()
      • sysconfig
      • builtins
      • __main__
      • warnings
      • dataclasses
      • contextlib
      • abc
      • atexit
      • traceback
      • __future__
      • gc
      • inspect
      • site
    • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ Python
      • code
      • codeop
    • Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ
      • zipimport
      • pkgutil
      • modulefinder
      • runpy
      • importlib
      • importlib.metadata
    • Π‘Π»ΡƒΠΆΠ±Ρ‹ языка Python
      • parser
      • ast
      • symtable
      • symbol
      • token
      • keyword
      • tokenize
      • tabnanny
      • pyclbr
      • py_compile
      • compileall
      • dis
      • pickletools
    • Π Π°Π·Π½Ρ‹Π΅ слуТбы
      • formatter
    • Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ слуТбы MS Windows
      • msilib
      • msvcrt
        • msvcrt.kbhit ()
        • msvcrt.getch ()
        • msvcrt.getche ()
        • msvcrt.putch ()
      • winreg
      • winsound
    • Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ слуТбы Unix
      • posix
      • pwd
      • spwd
      • grp
      • crypt
      • termios
      • tty
      • pty
      • fcntl
      • pipes
      • resource
      • nis
      • syslog
    • Π—Π°ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
      • optparse
      • imp
    • НСдокумСнтированныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
      • Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹
Powered by GitBook
On this page
  • struct - интСрпрСтация Π±Π°ΠΉΡ‚ΠΎΠ² ΠΊΠ°ΠΊ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°
  • ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅
  • Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
  • ΠšΠ»Π°ΡΡΡ‹

Was this helpful?

  1. ΠœΠΎΠ΄ΡƒΠ»ΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
  2. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

struct

PreviousΠ”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅Nextstruct.error

Last updated 4 years ago

Was this helpful?

struct - интСрпрСтация Π±Π°ΠΉΡ‚ΠΎΠ² ΠΊΠ°ΠΊ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ выполняСт прСобразования ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями Python ΠΈ структурами C, прСдставлСнными ΠΊΠ°ΠΊ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Python. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, хранящихся Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΠ»ΠΈ ΠΈΠ· сСтСвых ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, срСди Π΄Ρ€ΡƒΠ³ΠΈΡ… источников. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ строки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ΅ описаниС ΠΌΠ°ΠΊΠ΅Ρ‚Π° структур C ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠ³ΠΎ прСобразования Π²/ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Python.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ структуры C Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±Π°ΠΉΡ‚Ρ‹ заполнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ для задСйствованных Ρ‚ΠΈΠΏΠΎΠ² C; Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈ распаковкС учитываСтся ΡΠΎΠΎΡΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Π°ΠΉΡ‚Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΉ структуры Ρ‚ΠΎΡ‡Π½ΠΎ соотвСтствовали Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ Π² памяти ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ структуры C. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ нСзависимыС ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСявныС Π±Π°ΠΉΡ‚Ρ‹ заполнСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ стандартный Ρ€Π°Π·ΠΌΠ΅Ρ€ standard ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ вмСсто собствСнного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° native ΠΈ выравнивания: подробности см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅.

НСкоторыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ struct (ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Struct) ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π±ΡƒΡ„Π΅Ρ€Π° buffer. Π­Ρ‚ΠΎ относится ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π±ΡƒΡ„Π΅Ρ€ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ чтСния ΠΈΠ»ΠΈ записи ΠΈ чтСния. НаиболСС распространСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ для этой Ρ†Π΅Π»ΠΈ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π°ΠΉΡ‚Ρ‹ bytes ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ массив bytearray, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ массив Π±Π°ΠΉΡ‚ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π±ΡƒΡ„Π΅Ρ€Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ/Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ копирования ΠΈΠ· Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ опрСдСляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • struct.error exception

  • - Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

  • struct.pack_into ()

  • - распаковываСт ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ

  • struct.unpack_from ()

  • struct.iter_unpack ()

  • struct.calcsize ()

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° - это ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для указания ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π° ΠΏΡ€ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΠΈ распаковкС Π΄Π°Π½Π½Ρ‹Ρ…. Они состоят ΠΈΠ· символов Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ‚ΠΈΠΏ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ…/распаковываСмых Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы для управлСния порядком Π±Π°ΠΉΡ‚ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏΡ‹ C прСдставлСны Π² собствСнном машинном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ порядкС Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΈ нСобходимости Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ пропуска Π±Π°ΠΉΡ‚ΠΎΠ² Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π° (Π² соотвСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ компилятором C).

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ строки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для указания порядка Π±Π°ΠΉΡ‚ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ выравнивания ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² соотвСтствии со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ:

Π‘ΠΈΠΌΠ²ΠΎΠ»

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ²

Π Π°Π·ΠΌΠ΅Ρ€

Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅

@

собствСнный

собствСнный

собствСнный

=

собствСнный

стандартный

Π½Π΅Ρ‚

<

ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ (little-endian)

стандартный

Π½Π΅Ρ‚

>

прямой (big-endian)

стандартный

Π½Π΅Ρ‚

!

сСтСвой (Ρ€Π°Π²Π΅Π½ прямому)

стандартный

Π½Π΅Ρ‚

Если ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ…, прСдполагаСтся '@'.

БобствСнный native порядок Π±Π°ΠΉΡ‚ΠΎΠ² - прямой ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ порядок Π±Π°ΠΉΡ‚ΠΎΠ², Π² зависимости ΠΎΡ‚ хост-систСмы. НапримСр, Intel x86 ΠΈ AMD64 (x86-64) ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ (little-endian)порядок Π±Π°ΠΉΡ‚ΠΎΠ²; Motorola 68000 ΠΈ PowerPC G5 ΠΈΠΌΠ΅ΡŽΡ‚ прямой (big-endian) порядок Π±Π°ΠΉΡ‚ΠΎΠ²; ARM ΠΈ Intel Itanium ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ порядок слСдования Π±Π°ΠΉΡ‚ΠΎΠ² (bi-endian). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ sys.byteorder для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ порядка Π±Π°ΠΉΡ‚ΠΎΠ² Π² вашСй систСмС.

БобствСнныС native Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ выраТСния sizeof компилятора C. Π­Ρ‚ΠΎ всСгда сочСтаСтся с собствСнным порядком Π±Π°ΠΉΡ‚ΠΎΠ².

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ standard Ρ€Π°Π·ΠΌΠ΅Ρ€ зависит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° символа; см. Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Β».

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ '@' ΠΈ '=': ΠΎΠ±Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ собствСнный native порядок Π±Π°ΠΉΡ‚ΠΎΠ², Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ послСднСго стандартизированы.

Π€ΠΎΡ€ΠΌΠ° '!' доступна для Ρ‚Π΅Ρ… бСдняг, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ сСтСвой порядок Π±Π°ΠΉΡ‚ΠΎΠ² прямым ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ.

НСвозмоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅Ρ€ΠΎΠ΄Π½ΠΎΠΉ not-native порядок Π±Π°ΠΉΡ‚ΠΎΠ² (ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π·Π°ΠΌΠ΅Π½Π° Π±Π°ΠΉΡ‚ΠΎΠ²); ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ '<' ΠΈΠ»ΠΈ '>'.

  1. Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ автоматичСски добавляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ структуры. Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ структуры Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ добавляСтся.

  2. ΠŸΡ€ΠΈ использовании нСстандартного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ выравнивания отступы Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ '<', '>', '=' ΠΈ '!'.

  3. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ† структуры ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ выравнивания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ΄ΠΎΠΌ для этого Ρ‚ΠΈΠΏΠ° с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ счСтчиком ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ². Π‘ΠΌ. ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅; ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями C ΠΈ Python Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ, учитывая ΠΈΡ… Ρ‚ΠΈΠΏΡ‹. Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† Β«Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Β» относится ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ значСния Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΏΡ€ΠΈ использовании стандартного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°; Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° строка Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° начинаСтся с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· '<', '>', '!' ΠΈΠ»ΠΈ '='. ΠŸΡ€ΠΈ использовании собствСнного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ значСния зависит ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π€ΠΎΡ€ΠΌΠ°Ρ‚

Π’ΠΈΠΏ Π‘

Π’ΠΈΠΏ Python

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

x

pad byte

Π½Π΅Ρ‚ значСния

c

char

Π±Π°ΠΉΡ‚ с Π΄Π»ΠΈΠ½ΠΎΠΉ 1

1

b

signed char

integer

1

(1), (2)

B

unsigned byte

integer

1

(2)

?

_Bool

bool

1

(1)

h

short

integer

2

(2)

H

unsigned short

integer

2

(2)

i

int

integer

4

(2)

I

unsigned int

integer

4

(2)

l

long

integer

4

(2)

L

unsigned long

integer

4

(2)

q

long long

integer

8

(2)

Q

unsigned long long

integer

8

(2)

n

size_t

integer

(3)

N

size_t

integer

(3)

e

(6)

float

2

(4)

f

float

float

4

(4)

d

double

float

8

(4)

s

char [ ]

bytes

p

char [ ]

bytes

P

void *

integer

(5)

ИзмСнСно Π² вСрсии 3.3: Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² 'n' ΠΈ 'N'.

ИзмСнСно Π² вСрсии 3.6: Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 'e'.

  1. Код прСобразования '?' соотвСтствуСт Ρ‚ΠΈΠΏΡƒ _Bool, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π² C99. Если этот Ρ‚ΠΈΠΏ нСдоступСн, ΠΎΠ½ модСлируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа char. Π’ стандартном Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½ всСгда прСдставлСн ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ.

  2. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Ρ†Π΅Π»ΠΎΠ΅ число с использованиСм любого ΠΈΠ· ΠΊΠΎΠ΄ΠΎΠ² прСобразования Ρ†Π΅Π»ΠΎΠ³ΠΎ числа, Ссли Π½Π΅Ρ†Π΅Π»ΠΎΠ΅ число ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ '__index__ ()', Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся для прСобразования Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² Ρ†Π΅Π»ΠΎΠ΅ число ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ. ИзмСнСно Π² вСрсии 3.2: использованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° '__index__ ()' для Π½Π΅Ρ†Π΅Π»Ρ‹Ρ… чисСл являСтся Π½ΠΎΠ²Ρ‹ΠΌ Π² вСрсии 3.2.

  3. ΠšΠΎΠ΄Ρ‹ прСобразования 'n' ΠΈ 'N' доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для исходного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа порядка Π±Π°ΠΉΡ‚ΠΎΠ² '@'). Для стандартного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ цСлочислСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, подходящий для вашСго прилоТСния.

  4. Для ΠΊΠΎΠ΄ΠΎΠ² прСобразования 'f', 'd' ΠΈ 'e' ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ IEEE 754 binary32, binary64 ΠΈΠ»ΠΈ binary16 (для 'f', 'd' ΠΈΠ»ΠΈ 'e' соотвСтствСнно), нСзависимо ΠΎΡ‚ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

  5. Π‘ΠΈΠΌΠ²ΠΎΠ» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 'P' доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для собствСнного порядка Π±Π°ΠΉΡ‚ΠΎΠ² (Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символа порядка Π±Π°ΠΉΡ‚ΠΎΠ² '@'). Π‘ΠΈΠΌΠ²ΠΎΠ» порядка Π±Π°ΠΉΡ‚ΠΎΠ² '=' Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ использованиС прямого ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ порядка Π±Π°ΠΉΡ‚ΠΎΠ² Π² зависимости ΠΎΡ‚ хост-систСмы. ΠœΠΎΠ΄ΡƒΠ»ΡŒ struct Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ это ΠΊΠ°ΠΊ собствСнный порядок, поэтому Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 'P' нСдоступСн.

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ². НапримСр, строка Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° '4h' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ 'hhhh'.

ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ; счСтчик ΠΈ Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

Для символа Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 's' счСтчик интСрпрСтируСтся ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° Π±Π°ΠΉΡ‚ΠΎΠ², Π° Π½Π΅ ΠΊΠ°ΠΊ счСтчик ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠ°ΠΊ для Π΄Ρ€ΡƒΠ³ΠΈΡ… символов Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, '10s' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ 10-Π±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ строку, Π° '10c' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 10 символов. Если счСтчик Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ Ρ€Π°Π²Π΅Π½ 1. Для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ строка усСкаСтся ΠΈΠ»ΠΈ дополняСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° соотвСтствовала Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ. Для распаковки Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ bytes всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ количСство Π±Π°ΠΉΡ‚ΠΎΠ². Как особый случай, '0s' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΏΡƒΡΡ‚ΡƒΡŽ строку (Π° '0c' ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ 0 символов).

Для символ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° '?', Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - True ΠΈΠ»ΠΈ False. ΠŸΡ€ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ истинноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π›ΠΈΠ±ΠΎ 0, Π»ΠΈΠ±ΠΎ 1 Π² собствСнном ΠΈΠ»ΠΈ стандартном прСдставлСнии bool Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Ρ‹, ΠΈ любоС Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ True ΠΏΡ€ΠΈ распаковкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ собствСнный native порядок Π±Π°ΠΉΡ‚ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ с машиной с прямым (big-endian) порядком Π±Π°ΠΉΡ‚ΠΎΠ².

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ/распаковки Ρ‚Ρ€Π΅Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл:

>>> from struct import *
>>> pack('hhl', 1, 2, 3)
b'\x00\x01\x00\x02\x00\x00\x00\x03'
>>> unpack('hhl', b'\x00\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>>> calcsize('hhl')
8

Распакованным полям ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π°, Π½Π°Π·Π½Π°Ρ‡ΠΈΠ² ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:

>>> record = b'raymond   \x32\x12\x08\x01\x08'
>>> name, serialnum, school, gradelevel = unpack('<10sHHb', record)

>>> from collections import namedtuple
>>> Student = namedtuple('Student', 'name serialnum school gradelevel')
>>> Student._make(unpack('<10sHHb', record))
Student(name=b'raymond   ', serialnum=4658, school=264, gradelevel=8)

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ символов Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для удовлСтворСния Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΡŽ, отличаСтся:

>>> pack('ci', b'*', 0x12131415)
b'*\x00\x00\x00\x12\x13\x14\x15'
>>> pack('ic', 0x12131415, b'*')
b'\x12\x13\x14\x15*'
>>> calcsize('ci')
8
>>> calcsize('ic')
5

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 'llh0l' опрСдСляСт Π΄Π²Π° Π±Π°ΠΉΡ‚Π° заполнСния Π² ΠΊΠΎΠ½Ρ†Π΅, прСдполагая, Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ значСния Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹ ΠΏΠΎ 4-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ:

>>> pack('llh0l', 1, 2, 3)
b'\x00\x00\x00\x01\x00\x00\x00\x02\x00\x03\x00\x00'

Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ собствСнный Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅; стандартный Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ совмСщСния.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅:

ΠšΠ»Π°ΡΡΡ‹

ΠœΠΎΠ΄ΡƒΠ»ΡŒ struct Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ:

  • struct.Struct class

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Struct ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

  • pack ()

  • pack_into ()

  • unpack ()

  • unpack_from ()

  • iter_unpack ()

  • format

  • size

Π’ΠΈΠΏ Β«ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности» IEEE 754 binary16 Π±Ρ‹Π» Π²Π²Π΅Π΄Π΅Π½ Π² Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΡŽ 2008 Π³ΠΎΠ΄Π° стандарта . Он ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π±ΠΈΡ‚, 5-Π±ΠΈΡ‚Π½ΡƒΡŽ экспонСнту ΠΈ 11-Π±ΠΈΡ‚Π½ΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ (с явно сохранСнными 10 Π±ΠΈΡ‚Π°ΠΌΠΈ) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ числа ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 6.1e-05 Π΄ΠΎ 6.5e+04 с ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΡˆΠΈΡ€ΠΎΠΊΠΎ Π½Π΅ поддСрТиваСтся компиляторами C: Π½Π° Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ машинС Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ сокращСниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для хранСния, Π½ΠΎ Π½Π΅ для матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π‘ΠΌ. страницу Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ ΠΎ для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ значСния x с использованиСм ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· цСлочислСнных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ('b', 'B', 'h', 'H', 'i', 'I', 'l', 'L', 'q', 'Q'), Ссли x находится Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для этого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ .

ИзмСнСно Π² вСрсии 3.1: Π² вСрсии 3.0 Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ цСлочислСнныС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ пСрСносили значСния, выходящиС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ DeprecationWarning вмСсто .

Π‘ΠΈΠΌΠ²ΠΎΠ» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 'p' ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Β«Pascal stringΒ», ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΡƒΡŽ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ строку ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽΡΡ Π² фиксированном количСствС Π±Π°ΠΉΡ‚ΠΎΠ², опрСдСляСмом счСтчиком. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ сохранСнный Π±Π°ΠΉΡ‚ - это Π΄Π»ΠΈΠ½Π° строки ΠΈΠ»ΠΈ 255, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ мСньшС. Π”Π°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π±Π°ΠΉΡ‚Ρ‹ строки. Если строка, пСрСданная Π² , слишком длинная (Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ count - 1), ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ Π±Π°ΠΉΡ‚Ρ‹ count - 1 строки. Если строка ΠΊΠΎΡ€ΠΎΡ‡Π΅, Ρ‡Π΅ΠΌ count - 1, ΠΎΠ½Π° дополняСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ использовалось Ρ€ΠΎΠ²Π½ΠΎ count Π±Π°ΠΉΡ‚ΠΎΠ² Π²ΠΎ всСх. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ для символ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° 'p' потрСбляСт количСство Π±Π°ΠΉΡ‚ΠΎΠ², Π½ΠΎ возвращаСмая строка Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ большС 255 Π±Π°ΠΉΡ‚ΠΎΠ².

ΠΌΠΎΠ΄ΡƒΠ»ΡŒ - ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠΌΠΎΠ΄ΡƒΠ»ΡŒ - ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΈ распаковка Π΄Π°Π½Π½Ρ‹Ρ… XDR

struct.pack ()
struct.unpack ()
IEEE 754
Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π½ΠΎΠΉ точности
struct.error
struct.error
pack ()
unpack ()
array
xdrlib