Hướng dẫn python f string hex leading zeros - python f chuỗi hex số 0 đứng đầu

Sử dụng phương thức chuỗi

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
9 mới:

>>> "{0:#0{1}x}".format(42,6)
'0x002a'

Explanation:

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier

Nếu bạn muốn chữ cái HEX chữ số chữ hoa nhưng tiền tố có chữ thường 'X', bạn sẽ cần một cách giải quyết nhẹ:

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'

Bắt đầu với Python 3.6, bạn cũng có thể làm điều này:

>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'

Mã ở phía dưới thêm các số thập lục phân vào danh sách ở định dạng:

>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
0

Làm thế nào tôi có thể có các số thập lục phân một chữ số có số 0 hàng đầu, như thế này:

>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
1

Mật mã:

K = 256

keys = list(itertools.product([0, 1], repeat=8))
for poss in range(K):
    keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))

Tôi sẽ sử dụng một cái gì đó như thế này:

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)

Sử dụng

>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
2 làm mặc định và gán các mặc định thực sự sau này giúp cho việc hoàn thành chức năng dễ dàng hơn.

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2

Nếu

>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
3 chưa phải là
>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
4, hãy cố gắng chuyển đổi nó. Nó sẽ bị sặc nếu nó không phải là
>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
5,
>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
6 hoặc
>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
7. Chúng tôi cần kiểm tra loại vì
>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
8 sẽ bị nghẹt thở nếu
>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
3 đã là `int.

if not isinstance(word, int):
    word = int(word, 16)

Kiểm tra xem

>>> value = 42
>>> padding = 6
>>> f"{value:#0{padding}x}"
'0x002a'
3 sẽ không phá vỡ định dạng.

if word > 2**(8 * size) - 1:
    raise ValueError('word too great')

Cuối cùng, định dạng từ, sử dụng các từ khóa để tách chuỗi thành thứ tự đối số.

return '{prefix}{word:0{padding}X}'.format(
        prefix=prefix,
        word=word,
        padding=2 * size)

Bạn đã bao giờ có một chuỗi và muốn biến nó thành một độ dài nhất định bằng cách thêm số không vào nó? Bạn có thể gõ nó ra. Nhưng chúng tôi là lập trình viên, chúng tôi ghét gõ! Chắc chắn phải có một cách để viết mã này? & NBSP;

Hướng dẫn python f string hex leading zeros - python f chuỗi hex số 0 đứng đầu

Để pad zeros vào một chuỗi, hãy sử dụng phương thức

K = 256

keys = list(itertools.product([0, 1], repeat=8))
for poss in range(K):
    keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
1. Phải mất một đối số: Độ dài cuối cùng của chuỗi bạn muốn và đệm chuỗi với số không ở bên trái.

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
0

Nếu bạn nhập giá trị nhỏ hơn độ dài của chuỗi, nó sẽ trả về chuỗi không được sửa đổi.

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
1

Hãy cùng đi sâu vào một tổng quan chi tiết hơn về đệm chuỗi và các tùy chọn khác nhau mà bạn có.string padding and the different options you have.

Video

Chúng tôi khuyên bạn nên xem video cho bài viết này. Các ý tưởng có thể khó hiểu lúc đầu. Có Adam để hướng dẫn bạn làm cho nó dễ dàng hơn nhiều.

Python làm thế nào để chuyển số zeros vào một video chuỗi

Phương pháp đệm chuỗi python

Python có một số phương thức chuỗi tích hợp cho chuỗi pad. Bạn không giới hạn ở số không nhưng có thể đệm với bất kỳ ký tự nào. & NBSP;

Tên của họ rất dễ nhớ:

  • K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    2 - Chuỗi trả về trái chính đáng & nbsp;
  • K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    3 - Chuỗi trả về đúng
  • K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    4 - Chuỗi trả về trung tâm

Tất cả đều có cùng một cú pháp

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
2
  • Đối số đầu tiên là
    K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    5. Đó là độ dài của chuỗi bạn muốn quay lại. Nếu bạn nhập chiều rộng nhỏ hơn
    K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    6, Python sẽ trả về
    >>> value = 42
    >>> padding = 6
    >>> f"{value:#0{padding}x}"
    '0x002a'
    
    5 không được sửa đổi. & NBSP;length of the string you want to return. If you enter a width smaller than
    K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    6, Python returns
    >>> value = 42
    >>> padding = 6
    >>> f"{value:#0{padding}x}"
    '0x002a'
    
    5 unmodified. 
  • Đối số thứ hai,
    K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    8, là tùy chọn. Sử dụng là để chỉ định ký tự bạn muốn sử dụng để đệm chuỗi của bạn. Theo mặc định, nó là một không gian nhưng bạn có thể sử dụng bất cứ thứ gì. Nếu bạn vượt qua một chuỗi dài hơn một ký tự, Python sẽ tăng
    K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    9.character you want to use to pad your string. By default, it is a space but you can use anything. If you pass a string longer than one character, Python raises a
    K = 256
    
    keys = list(itertools.product([0, 1], repeat=8))
    for poss in range(K):
        keys[poss] = hex(int(''.join(map(str, keys[poss])), 2))
    
    9.

Bạn có muốn phát triển các kỹ năng của một Python Professional toàn diện trong khi được trả tiền trong quá trình này không? Trở thành một freelancer Python và đặt hàng cuốn sách của bạn rời khỏi cuộc đua chuột với Python trên Amazon (Kindle/Print)!well-rounded Python professional—while getting paid in the process? Become a Python freelancer and order your book Leaving the Rat Race with Python on Amazon (Kindle/Print)!

Hướng dẫn python f string hex leading zeros - python f chuỗi hex số 0 đứng đầu

Hãy cùng xem xét một số ví dụ cho mỗi phương pháp.

Ví dụ str.ljust ()

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
3

Ví dụ str.rjust ()

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
4

Ví dụ Str.Center

Lưu ý: Nếu giữa chuỗi của bạn không chính xác là giữa chiều rộng, Python sẽ hơi còn lại biện minh cho nó. Đây là trường hợp trong tất cả các ví dụ dưới đây sử dụng chiều rộng chẵn.

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
5

Phương pháp định dạng đệm chuỗi python

Nếu bạn đang sử dụng các câu lệnh

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
0 phức tạp, bạn sẽ muốn sử dụng F-Strings hoặc phương thức định dạng tại một số điểm. Rất may, chúng ta cũng có thể dễ dàng đệm dây theo cách này.

L-Strings được giới thiệu trong Python 3.6. Chúng là tiêu chuẩn de-facto cho định dạng chuỗi trong Python. Nhưng chúng tôi sẽ bao gồm phương pháp

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
1 để hoàn thiện. & NBSP;

Kiểm tra các tài liệu Python chính thức để biết tổng quan chi tiết. Cảnh báo, họ rất khó hiểu. Vì vậy, don lồng được đưa ra nếu bạn mất một lúc để hiểu chúng.

Python String Padding sử dụng F-String

F-Strings là vô cùng mạnh mẽ. Chúng tôi sẽ chỉ đề cập đến cách pad String nhưng hãy xem bài viết này để biết tổng quan chi tiết. & NBSP;how to pad strings but check out this article for a detailed overview. 

Bạn biểu thị các chuỗi F bằng cách đặt một

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
2 hoặc
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
3 trước một chuỗi. Tính năng chính của họ được gọi là trường thay thế. Nó được biểu thị bằng niềng răng xoăn
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
4. Bên trong niềng răng, bạn có thể đặt các biến, biểu thức hoặc thậm chí các hàm. Điều này cực kỳ hữu ích vì nó mang lại cho chuỗi của bạn rất nhiều sự linh hoạt. & NBSP;replacement field. It is denoted by curly braces
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
4. Inside the braces, you can put variables, expressions or even functions. This is incredibly helpful as it gives your strings lots of flexibility. 

Đối với bài viết này, chúng tôi sẽ tập trung vào việc gọi các biến trong các chuỗi, ví dụ:

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
6

Bạn có thể sửa đổi chuỗi bên trong trường thay thế. Bạn có thể đệm, căn chỉnh và thay đổi chiều dài của nó. Đây được gọi là đặc tả định dạng trong Python hoặc format_spec viết tắt. Trong một chuỗi F, bạn chỉ định điều này bằng cách sử dụng ruột

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
5. Tất cả mọi thứ sau đại tràng là một lựa chọn định dạng. Nó sẽ không được in lên màn hình. Hãy cùng nhìn vào cú pháp để pad, căn chỉnh và thay đổi độ dài của một chuỗi.format specification in Python, or format_spec for short. In an f-string, you specify this using a colon
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
5. Everything after the colon is a formatting option. It will not be printed to the screen. Let’s look at the syntax to pad, align and change the length of a string.

Chúng tôi gõ những điều sau theo thứ tự này, sau đại tràng

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
5

  • điền: ký tự để sử dụng để đệm & nbsp; character to use for padding 
  • Căn chỉnh: Sử dụng hoặc ^ để căn chỉnh bên trái, phải hoặc trung tâm use <, > or ^ to have left, right or center alignment
  • Chiều rộng: Giá trị số nguyên ghi rõ tổng chiều dài của chuỗi integer value stating total length of string

Ví dụ: Vì vậy, nếu chúng ta muốn đệm chuỗi của mình bằng số không, tức là điền 0, căn chỉnh phải và có chiều rộng 10, chúng ta sẽ sử dụng: So if we want to pad our string with zeros, i.e. fill 0, right align and have width 10, we would use

  • điền:
    def format_word(word, prefix=None, size=None):
        if prefix is None:
            prefix = '0x'
        if size is None:
            size = 2
        if not isinstance(word, int):
            word = int(word, 16)
        if word > 2**(8 * size) - 1:
            raise ValueError('word too great')
        return '{prefix}{word:0{padding}X}'.format(
                prefix=prefix,
                word=word,
                padding=2 * size)
    
    7
    def format_word(word, prefix=None, size=None):
        if prefix is None:
            prefix = '0x'
        if size is None:
            size = 2
        if not isinstance(word, int):
            word = int(word, 16)
        if word > 2**(8 * size) - 1:
            raise ValueError('word too great')
        return '{prefix}{word:0{padding}X}'.format(
                prefix=prefix,
                word=word,
                padding=2 * size)
    
    7
  • Đúng đúng:
    def format_word(word, prefix=None, size=None):
        if prefix is None:
            prefix = '0x'
        if size is None:
            size = 2
        if not isinstance(word, int):
            word = int(word, 16)
        if word > 2**(8 * size) - 1:
            raise ValueError('word too great')
        return '{prefix}{word:0{padding}X}'.format(
                prefix=prefix,
                word=word,
                padding=2 * size)
    
    8
    :
    def format_word(word, prefix=None, size=None):
        if prefix is None:
            prefix = '0x'
        if size is None:
            size = 2
        if not isinstance(word, int):
            word = int(word, 16)
        if word > 2**(8 * size) - 1:
            raise ValueError('word too great')
        return '{prefix}{word:0{padding}X}'.format(
                prefix=prefix,
                word=word,
                padding=2 * size)
    
    8
  • Chiều rộng:
    def format_word(word, prefix=None, size=None):
        if prefix is None:
            prefix = '0x'
        if size is None:
            size = 2
        if not isinstance(word, int):
            word = int(word, 16)
        if word > 2**(8 * size) - 1:
            raise ValueError('word too great')
        return '{prefix}{word:0{padding}X}'.format(
                prefix=prefix,
                word=word,
                padding=2 * size)
    
    9
    def format_word(word, prefix=None, size=None):
        if prefix is None:
            prefix = '0x'
        if size is None:
            size = 2
        if not isinstance(word, int):
            word = int(word, 16)
        if word > 2**(8 * size) - 1:
            raise ValueError('word too great')
        return '{prefix}{word:0{padding}X}'.format(
                prefix=prefix,
                word=word,
                padding=2 * size)
    
    9

Mã này hiển thị ví dụ chính xác này trong hành động:

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
7

Hãy để xem những gì xảy ra khi chúng ta thay đổi từng tùy chọn này. Đầu tiên, chúng tôi sẽ chọn một ký tự điền khác.fill character.

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
8

Bây giờ chúng tôi sẽ thay đổi sự liên kết. Các dấu hiệu chỉ ra theo hướng căn chỉnh, tức là

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
0 được căn chỉnh và lên trên
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
1 là căn chỉnh trung tâm.alignment. The sign points in the direction of alignment i.e.
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
0 is left align and upwards
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
1 is center align.

{   # Format identifier
0:  # first parameter
#   # use "0x" prefix
0   # fill with zeroes
{1} # to a length of n characters (including 0x), defined by the second parameter
x   # hexadecimal number, using lowercase letters for a-f
}   # End of format identifier
9

Cuối cùng, chúng tôi sẽ thay đổi độ dài chuỗi.length.

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
0

Để đệm nhiều chuỗi, sử dụng nhiều trường thay thế (niềng răng xoăn

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
4).

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
1

Đệm sử dụng .format ()

Đệm với

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
1 tương tự như F-Strings. & NBSP;

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
2

Bạn có thể chuyển chuỗi trực tiếp đến

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
4 nếu bạn thích:

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
3

Cú pháp định dạng_spec (mọi thứ sau đại tràng) đều giống nhau khi sử dụng f-string hoặc định dạng. Sự khác biệt là bạn vượt qua

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
5 đến
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
1 thay vì đặt nó trong trường thay thế
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
4. Hoặc bạn có thể nhập chuỗi trực tiếp vào ________ 51. & nbsp;

Đệm nhiều chuỗi có thể trở nên phức tạp hơn khi sử dụng

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
1. Hãy nói rằng bạn có hai trường thay thế và chuyển hai biến cho
if not isinstance(word, int):
    word = int(word, 16)
0. Sau đó
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
5 sẽ chuyển sang lần đầu tiên và
if not isinstance(word, int):
    word = int(word, 16)
2 đến lần thứ hai. & Nbsp;

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
4

Để rõ ràng hơn, bạn có thể tham khảo các đối số của định dạng với các chỉ mục bắt đầu từ 0. Điều này cho phép bạn gọi các biến theo bất kỳ thứ tự nào bạn muốn.

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
5

Cuối cùng, bạn không cần chỉ định các biến khi bạn sử dụng

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
4. Bạn có thể chuyển các chuỗi để thay thế trực tiếp.

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
6

Bạn nên chọn cái nào-Định dạng hoặc F-String?

Python đã giới thiệu các chuỗi F trong PEP 498. Một trong những lý do cho điều này là do cú pháp

def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
1 có thể là dòng chảy, chậm và khó đọc. F-Strings giải quyết tất cả những vấn đề này. Chúng đơn giản, rất nhanh và dễ đọc. Vì vậy, bạn phải luôn luôn sử dụng chúng thay vì
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
1. Tuy nhiên, rất hữu ích khi biết cú pháp
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
1 trong trường hợp bạn đọc nó trong mã người khác. & NBSP;

Python int để chuỗi với số không hàng đầu

Để chuyển đổi số nguyên

if not isinstance(word, int):
    word = int(word, 16)
7 thành một chuỗi với số 0 hàng đầu để nó bao gồm các ký tự
if not isinstance(word, int):
    word = int(word, 16)
8, hãy sử dụng chuỗi định dạng
if not isinstance(word, int):
    word = int(word, 16)
9. Cờ
if word > 2**(8 * size) - 1:
    raise ValueError('word too great')
0 trong biểu thức này xác định rằng kết quả là một giá trị thập phân.
if word > 2**(8 * size) - 1:
    raise ValueError('word too great')
1 hoàn thành quá trình chuyển đổi chuỗi giống nhau của một số nguyên với các số không hàng đầu.

Thử thách: Cho một số nguyên. Cách chuyển đổi nó thành một chuỗi bằng cách thêm các số không dẫn đầu để chuỗi có một số vị trí cố định.: Given an integer number. How to convert it to a string by adding leading zeros so that the string has a fixed number of positions.

Ví dụ: Đối với Integer 42, bạn muốn điền nó với số không dẫn đầu vào chuỗi sau với 5 ký tự:

if word > 2**(8 * size) - 1:
    raise ValueError('word too great')
2.: For integer 42, you want to fill it up with leading zeros to the following string with 5 characters:
if word > 2**(8 * size) - 1:
    raise ValueError('word too great')
2.

Trong tất cả các phương pháp, chúng tôi giả định rằng số nguyên có ít hơn 5 ký tự.

Phương pháp 1: Chuỗi định dạng

Phương thức đầu tiên sử dụng tính năng chuỗi định dạng trong Python 3+. Họ cũng được gọi là các lĩnh vực thay thế.

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
7

if not isinstance(word, int):
    word = int(word, 16)
9 đặt số nguyên i vào chuỗi mới được tạo. Tuy nhiên, nó cho biết ngôn ngữ định dạng sẽ điền vào chuỗi vào
if not isinstance(word, int):
    word = int(word, 16)
8 ký tự với các ____85 hàng đầu bằng hệ thống thập phân. Đây là cách pythonic nhất để thực hiện thử thách này.

Phương pháp 2: Zfill ()

Một cách khác có thể đọc được và pythonic để lấp đầy chuỗi với 0S hàng đầu là phương thức

if word > 2**(8 * size) - 1:
    raise ValueError('word too great')
6.

>>> '0x{0:0{1}X}'.format(42,4)
'0x002A'
8

Phương thức lấy một đối số và đó là số lượng vị trí của chuỗi kết quả. Mỗi mặc định, nó lấp đầy với 0s.

Bài viết liên quan: Python int to String với các số không hàng đầu Python Int to String with Leading Zeros

Bản tóm tắt

Trong bài viết này, bạn đã học được nhiều cách khác nhau mà bạn có thể đệm Zeros (và bất kỳ nhân vật nào khác) cho các chuỗi.

Nếu bạn chỉ muốn pad zeros ở bên trái của chuỗi, không có gì tốt hơn phương pháp

if word > 2**(8 * size) - 1:
    raise ValueError('word too great')
7. Nó được thiết kế để giải quyết vấn đề này.

Để pad các ký tự khác nhau, hãy sử dụng

if word > 2**(8 * size) - 1:
    raise ValueError('word too great')
8,
if word > 2**(8 * size) - 1:
    raise ValueError('word too great')
9 và
return '{prefix}{word:0{padding}X}'.format(
        prefix=prefix,
        word=word,
        padding=2 * size)
0. Hoặc bạn có thể sử dụng F-Strings hoặc phương thức
def format_word(word, prefix=None, size=None):
    if prefix is None:
        prefix = '0x'
    if size is None:
        size = 2
    if not isinstance(word, int):
        word = int(word, 16)
    if word > 2**(8 * size) - 1:
        raise ValueError('word too great')
    return '{prefix}{word:0{padding}X}'.format(
            prefix=prefix,
            word=word,
            padding=2 * size)
1. & NBSP;

Các phương pháp tích hợp dễ dàng hơn nhiều để học, đọc và thực hiện. Nhưng điều quan trọng là bạn biết tất cả. Bạn sẽ thấy mọi thứ trong tự nhiên!

Đi đâu từ đây

Bạn có muốn kiếm thêm tiền không? Bạn đang làm một công việc 9-5 ngõ cụt? Bạn có mơ ước phá vỡ miễn phí và mã hóa toàn thời gian nhưng không chắc chắn làm thế nào để bắt đầu không? & NBSP;

Trở thành một lập trình viên toàn thời gian là đáng sợ. Có rất nhiều thông tin mã hóa ngoài đó đến nỗi nó áp đảo. & NBSP;

Hầu hết các hướng dẫn đều dạy cho bạn Python và bảo bạn có được một công việc toàn thời gian. & NBSP;

Điều đó ok nhưng tại sao bạn lại muốn một công việc văn phòng khác?

Bạn có khao khát tự do? Bạn có muốn đi du lịch khắp thế giới không? Bạn có muốn dành nhiều thời gian hơn với bạn bè và gia đình của mình không?

Hầu như không có bất kỳ hướng dẫn nào dạy bạn Python và làm thế nào để trở thành ông chủ của chính bạn. Và không có ai dạy bạn cách thực hiện sáu con số mỗi năm.

Cho đến bây giờ. & Nbsp;

Tôi là một freelancer Python toàn thời gian. Tôi làm việc 4 giờ một ngày từ bất cứ nơi nào trên thế giới. Tôi đặt lịch trình của riêng tôi và tỷ lệ hàng giờ. Lịch của tôi được đặt trước vài tháng và tôi có một luồng khách hàng mới liên tục. & NBSP;

Nghe có vẻ quá tốt để trở thành sự thật, phải không?

Không có gì. Tôi muốn cho bạn thấy các bước chính xác tôi đã sử dụng để đến đây. Tôi muốn cho bạn một cuộc sống tự do. Tôi muốn bạn trở thành một lập trình viên sáu con số.

Nhấp vào liên kết bên dưới để xem hội thảo trên web có giá trị thuần túy của tôi. Tôi sẽ chỉ cho bạn các bước chính xác để đưa bạn từ nơi bạn đến với một freelancer Python toàn thời gian. Đây là những phương pháp đã được chứng minh, không BS giúp bạn kết quả nhanh chóng.

Không có vấn đề gì nếu bạn là một người mới làm quen hay Python Pro. Nếu bạn không thực hiện sáu con số/năm với Python ngay bây giờ, bạn sẽ học được điều gì đó từ hội thảo trên web này.

Hội thảo trên web này đã giành chiến thắng trực tuyến mãi mãi. Nhấp vào liên kết bên dưới trước khi các chỗ ngồi lấp đầy và tìm hiểu làm thế nào để trở thành một freelancer Python.

https://blog.finxter.com/webinar-freelancer/

Người giới thiệu

Các tài liệu Python chính thức cho định dạng chuỗi rất khó hiểu. Rất may, có rất nhiều tài nguyên tuyệt vời trực tuyến. Kiểm tra mục yêu thích của chúng tôi dưới đây.

  1. https://www.python.org/dev/peps/pep-0498/ 
  2. https://realpython.com/python-f-strings/
  3. https://docs.python.org/3.8/library/string.html#formatexamples 
  4. https://stackoverflow.com/questions/339007/how-to-pad-zeroes-to-a-string
  5. https://www.tutorialspoint.com/python/string_zfill.htm
  6. http://zetcode.com/python/fstring/
  7. https://pyformat.info/
  8. https://www.tutorialspoint.com/python/string_rjust.htm

Hướng dẫn python f string hex leading zeros - python f chuỗi hex số 0 đứng đầu

Chuyên gia nhà văn & người tạo nội dung - Khoa học dữ liệu & học máy. Tôi đã giúp các công ty giáo dục tạo ra blog và nội dung video hấp dẫn khoa học dữ liệu cho người mới bắt đầu. Không giống như các đối thủ cạnh tranh của tôi, tôi học các khái niệm mới mỗi ngày và vì vậy hãy hiểu những gì nó giống như là một sinh viên. Các bài viết của tôi là dễ hiểu, hiệu quả và thú vị để đọc. Video của tôi là lạc quan, hấp dẫn và chi tiết. “Để làm việc với tôi, xin vui lòng liên hệ với Upwork https://tinyurl.com/hire-adam-murphy
—–
I help education companies create engaging blog and video content teaching Data Science to beginners. Unlike my competitors, I learn new concepts every day and so understand what it’s like to be a student.
My articles are easy-to-understand, effective and enjoyable to read. My videos are upbeat, engaging and detailed.
—–
To work with me, please reach out on Upwork
https://tinyurl.com/hire-adam-murphy