mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-02-14 21:38:07 +00:00
Fix type hints, validation errors
Add type hints and fix leading spaces issues.
This commit is contained in:
parent
a471d00d75
commit
93610d9744
|
@ -14,9 +14,9 @@ All parameters must be must be int >= 0, referred to as a 'bit integer'.
|
||||||
|
|
||||||
index:int
|
index:int
|
||||||
The offset into the bit position from right,
|
The offset into the bit position from right,
|
||||||
0b010111 -> list [1,1,1,0,1,0]. big-endian -> little-endian
|
0b010111 -> list [1,1,1,0,1,0]. big-endian -> little-endian
|
||||||
For inserts, index is the position to the right of index,
|
For inserts, index is the position to the right of index,
|
||||||
index 0 -> right of rightmost bit.
|
index 0 -> right of rightmost bit.
|
||||||
For gets, sets and removes, it is the position of the bit itself.
|
For gets, sets and removes, it is the position of the bit itself.
|
||||||
|
|
||||||
value:int
|
value:int
|
||||||
|
@ -24,7 +24,7 @@ All parameters must be must be int >= 0, referred to as a 'bit integer'.
|
||||||
|
|
||||||
bitlen:int
|
bitlen:int
|
||||||
The effective mask length, spec. leading zeros
|
The effective mask length, spec. leading zeros
|
||||||
( bitlen 4 value 1 -> 0001 )
|
( bitlen 4 value 1 -> 0001 )
|
||||||
|
|
||||||
The bitwise expressions may look convoluted, but basically, there are
|
The bitwise expressions may look convoluted, but basically, there are
|
||||||
just three parts: left-hand side, value, right-hand side.
|
just three parts: left-hand side, value, right-hand side.
|
||||||
|
@ -68,7 +68,7 @@ bit_length = int.bit_length
|
||||||
Anything like int(None) is going to cause a loud error. """
|
Anything like int(None) is going to cause a loud error. """
|
||||||
|
|
||||||
|
|
||||||
def bit_get(bint: int, index: int):
|
def bit_get(bint: int, index: int) -> int:
|
||||||
"""Get value of bit at index in bint.
|
"""Get value of bit at index in bint.
|
||||||
|
|
||||||
>>> bit_get(15, 0)
|
>>> bit_get(15, 0)
|
||||||
|
@ -86,7 +86,7 @@ def bit_get(bint: int, index: int):
|
||||||
return multibit_get(bint, index, 1)
|
return multibit_get(bint, index, 1)
|
||||||
|
|
||||||
|
|
||||||
def bit_set(bint: int, index: int, value: int = 1):
|
def bit_set(bint: int, index: int, value: int = 1) -> int:
|
||||||
"""Set bit at index to value 1 or 0, like set() or unset().
|
"""Set bit at index to value 1 or 0, like set() or unset().
|
||||||
|
|
||||||
>>> bit_set(15, 0, 0)
|
>>> bit_set(15, 0, 0)
|
||||||
|
@ -105,7 +105,7 @@ def bit_set(bint: int, index: int, value: int = 1):
|
||||||
return multibit_set(bint, index, 1, value)
|
return multibit_set(bint, index, 1, value)
|
||||||
|
|
||||||
|
|
||||||
def bit_insert(bint: int, index: int, value: int = 1):
|
def bit_insert(bint: int, index: int, value: int = 1) -> int:
|
||||||
"""Insert bit value before index.
|
"""Insert bit value before index.
|
||||||
|
|
||||||
>>> bit_insert(15, 0, 0)
|
>>> bit_insert(15, 0, 0)
|
||||||
|
@ -223,13 +223,14 @@ def multibit_remove(bint: int, index: int, bit_len: int) -> int:
|
||||||
2
|
2
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if bint < 0 or index < 0:
|
if bint < 0 or index < 0 or bit_len < 0:
|
||||||
return None # error
|
return None # error
|
||||||
|
|
||||||
return ((bint >> index + bit_len) << index) | bint & ((1 << index) - 1)
|
return ((bint >> index + bit_len) << index) | bint & ((1 << index) - 1)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
import doctest
|
import doctest
|
||||||
|
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user